WO2017202373A1 - 流媒体快速启动方法、装置和系统 - Google Patents

流媒体快速启动方法、装置和系统 Download PDF

Info

Publication number
WO2017202373A1
WO2017202373A1 PCT/CN2017/086012 CN2017086012W WO2017202373A1 WO 2017202373 A1 WO2017202373 A1 WO 2017202373A1 CN 2017086012 W CN2017086012 W CN 2017086012W WO 2017202373 A1 WO2017202373 A1 WO 2017202373A1
Authority
WO
WIPO (PCT)
Prior art keywords
media
push
client
media server
quick start
Prior art date
Application number
PCT/CN2017/086012
Other languages
English (en)
French (fr)
Inventor
许智敏
刘利
张行功
董振江
黄成�
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2017202373A1 publication Critical patent/WO2017202373A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors

Definitions

  • the present disclosure relates to the field of streaming media, and in particular, to a streaming media quick launch method, apparatus, and system.
  • HTTP dynamic adaptive streaming media system uses HTTP dynamic adaptive streaming media system to provide users with high-quality streaming media services.
  • the media content can be audio, video, text and Its combination and so on.
  • the HTTP Dynamic Adaptive Streaming (DASH) system not only supports multiple encoding and decoding technologies and standards, but also supports different media formats and media players. It also provides multiple viewing angles, bit rates, frame rates, and spatial resolution. Streaming media resources such as rates and their combinations.
  • the media content may include a Media Presentation Description File (MPD-Media Presentation Description) and a Media Segment (Segments) resource.
  • the media presentation description file is an XML-Extensible Markup Language document describing the media content, and includes description information of the media segment resource, such as presentation time, code rate, frame rate, spatial resolution, and uniform resource of the media segment.
  • the media content can be divided into multiple levels, including a period, an AdaptationSet, a representation, and a segment.
  • the client opens a streaming session by requesting a media presentation file from the server.
  • the client analyzes the media presentation description file, selects an adaptation set suitable for the client environment, and then selects a representation suitable for client bandwidth, decoding, and presentation in the adaptation set.
  • the client requests the initialization fragment suitable for the client environment from the server in the selected expression, and sequentially requests the sequence of the fragment corresponding to the initialization fragment through the corresponding description information of the MPD file, and then displays the media resource.
  • the client will request and cache a certain amount of media data before actually starting the presentation. Requests/Responses for each resource file and padding for the cache, etc., introduce a Startup Delay for the streaming session.
  • the Startup Delay refers to the time consumption value from the sending media presentation description file request to the display of the first resource picture, such as the first video frame, and the Round-trip,
  • the size of the cache is related to factors such as the size of the media resource fragment.
  • Full-duplex HTTP Dynamic Adaptive Streaming can be used to push initialization fragments and/or start media segments while the client requests the media presentation profile by using FDH Server Push technology.
  • FDH Server Push technology Compared to traditional methods that rely on parsing media to present description files, adopting the FDH server push policy will allow the client to display media resources as early as possible by reducing the Round-trip time.
  • the fragment request/response message may be sent through a full-duplex HTTP protocol such as WebSocket or HTTP/2. Based on this idea, many companies have proposed their own quick start. Fast Start program.
  • a Fast Start strategy is to send a request message to the server via a client to a media presentation file with a push fast-start directive to tell the server that the client wants to obtain media presentation. While describing the file, get some or all of the available Initialization Segments.
  • the fast-start directive has no parameters and consists only of fast-start information.
  • the server After receiving the above message, the server first sends a response message (response) corresponding to the media presentation file request of the quick start push instruction without parameters, so as to tell the client server to receive the quick start request, and Push some or all of the available initialization fragments to the client. The server then sends some or all of the available initialization fragments to the client.
  • Another Fast Start policy sends a request message to the server via a client to a media presentation file with a push fast-start directive, telling the server that the client wants to obtain a media presentation file.
  • the push-fast-start directive consists of fast-start and push parameters.
  • the server After receiving the above message, the server first sends a response message (response) containing a corresponding media presentation description file request of the quick start push instruction, so as to tell the client server to receive the quick start request, and push some or all of the request.
  • the available initialization fragments and quick-start push instructions specify the number of media segments that the server can push to the client.
  • the server then sends the client an initialization fragment and a sequence of fragments that the server can push in the specified number of quick-start push instructions.
  • the Fast Start policy is sent to the server through the client with a quick start.
  • a push-fast-start directive of the media presentation description request message tells the server client that it wants to obtain some or all of the available Initialization Segments while acquiring the media presentation description file.
  • the push-fast-start directive has no parameters and consists only of push-fast-start.
  • the server After receiving the above message, the server first sends a response message (response) corresponding to the media presentation file request of the quick start push instruction without parameters, so as to tell the client server to receive the quick start request, and Push some or all of the available initialization fragments to the client. The server then sends some or all of the available initialization fragments to the client.
  • response message response message
  • the definition in this CD is similar to the first one described above, the difference is only in the naming of instructions.
  • the client does not know how many initialization fragments the server will push, and does not know when the push will end, which causes the client and
  • the waste of time resources between servers is contrary to the design concept of the quick start strategy.
  • the second quick start strategy described above defines a lot of message parameters. Although it is more detailed, it is somewhat cumbersome. For example, if the audio resource does not exist in the MPD description file, the client blindly specifies the overhead of requesting the header resource. Contrary to DASH's design philosophy, and the strategy is The client-driven fast-start policy, the server determines the initialization segment to be pushed according to the client's preference. This obviously is contrary to the client's need to send the push preference information when the MPD file is requested.
  • the client does not know the MPD file when the client starts quickly. Describe the information, and secondly, even if it is based on experience, there will still be a case of a miss. If the quick-start policy is completely server-driven, as in the first and third quick-start strategies described above, not only does the client not know what the server pushes, but it does not know when the push ends, and there is no between the media client and the media server. Achieve good negotiation synchronization.
  • the present disclosure provides a method, an apparatus, and a system for quickly starting a streaming media, so as to at least solve the problem that the media client and the media server end do not achieve good negotiation synchronization in the related art.
  • a streaming media quick launch method including: a client sending a quick start type push instruction to a media server, wherein a quick start type push instruction is used to instruct a media server to push an initialization fragment sequence and/or The media segment sequence; the client receives the quick start type push confirmation command returned by the media server; the client obtains the information of the initialization segment and/or the media segment sequence to be pushed by the media server according to the quick start type push confirmation command.
  • a streaming media quick start method comprising: receiving, by a media server, a quick start type push instruction sent by a client, wherein the quick start type push instruction is used to instruct the media server to push the initialization fragment sequence And/or a sequence of media segments; the media server generates a quick start type push confirmation command according to the initialization segment and/or media segment sequence to be pushed; the media server sends a quick start type push confirmation command to the client.
  • a streaming media quick launching apparatus comprising: an access engine module configured to send a quick launch type push command to a media server, wherein the quick launch type push command is used to indicate a media server Pushing an initialization fragment sequence and/or a media fragment sequence; the first receiving module is configured to receive, by the client, a quick start type push confirmation instruction returned by the media server; and the control engine module is configured to: the client obtains the media server according to the quick start type push confirmation instruction Information about the initialization fragment and/or sequence of media segments to be pushed.
  • a streaming media quick launching apparatus including: a service module, configured to receive, by a media server, a request message sent by a client for acquiring a media presentation description file MPD, wherein the request information is at least
  • the method includes: a quick start type push instruction and an MPD request instruction; and a generation engine module, wherein the media server generates response information according to the request message, wherein the response message includes: a push confirmation instruction that determines that the client needs to be started quickly, and an MPD data that is obtained by responding to the MPD request instruction.
  • the parsing engine module is configured to: after the media server generates the predicted segment message, the media server pushes the predicted segment message and the response message to the client, so that the client obtains the media required by the client according to the predicted segment message and the MPD data.
  • the content, wherein the predicted segment message is a segment message that is actively pushed by the media server and corresponding to the push confirmation instruction.
  • a streaming media quick start system comprising: a client, generating a quick start push instruction, and sending a request message for acquiring a media presentation description file MPD to the media server to the media service
  • a request message for acquiring a media presentation description file MPD to the media server to the media service
  • the request information includes at least: a quick start type push instruction and an MPD request instruction
  • the predicted segment message is a media A fragment message that is actively pushed by the server and corresponding to the push confirmation command.
  • the media server communicates with the client, and is configured to receive a request message sent by the client for acquiring the media presentation description file MPD, and generate response information according to the request message, and after generating the predicted segment message, the predicted segment message and the response are generated. Information is pushed to the client.
  • a storage medium comprising a stored program, wherein the program is executed to perform the method of any of the above.
  • the client can be notified to the media server by generating the fast-start type push command, and the client expects the media server to push the segment sequence to start quickly; by using the K pushes received from the media server.
  • Fragment fragment message reduces the blind waiting time of the client, reduces the startup delay, and solves the problem that the media client and the media server do not reach a good negotiation synchronization, so that the media client can judge the expectation. Whether the resources are in the push list, in order to make the next decision as soon as possible, to achieve a better quick start effect.
  • FIG. 1 is a flowchart of a streaming media quick launch method according to an embodiment of the present disclosure
  • FIG. 2 is a schematic diagram of one embodiment of an FDH-DASH system architecture 100
  • FIG. 3 shows a schematic diagram of an embodiment of an FDH media client
  • Figure 4 shows a schematic diagram of an embodiment of an FDH media server
  • 5A-D are schematic diagrams showing the process of interacting with the NUMBER media presentation MPD and its request response, and the media client and the media server being an embodiment;
  • FIG. 6 is a flow chart of an embodiment in which a push parameter implemented by a client device is a NUMBER
  • FIGS 7A-D are diagrams showing the flow of the push parameter to the NUMBER media presentation MPD and its request response, and the media client and the media server are embodiments;
  • FIG. 8 is a flowchart of a streaming media quick launch method according to an embodiment of the present disclosure.
  • 9A-D are diagrams showing the flow of the push parameter to the URL_LIST method media presentation MPD and its request response, and the media client and the media server are embodiments;
  • 10A-D illustrate the push parameter for the URL_TEMPLATE method media presentation MPD and its request response, and
  • the media client and the media server are schematic diagrams of the interaction process of the embodiment
  • FIG. 11 is a flowchart of a streaming media quick launch method according to an embodiment of the present disclosure.
  • FIG. 12 is a flowchart of a streaming media quick launch method according to an embodiment of the present disclosure.
  • FIG. 13 is a schematic diagram of an embodiment of a computer system or network device 1200;
  • FIG. 14 is a flowchart of a streaming media quick launch method according to an embodiment of the present disclosure.
  • FIG. 15 is an optional streaming media quick start method according to an embodiment of the present application.
  • 16 is a flowchart of a streaming media quick start method according to an embodiment of the present disclosure
  • FIG. 17 is a schematic diagram of a streaming media quick launch device according to an embodiment of the present disclosure.
  • FIG. 18 is a schematic diagram of another streaming media quick launch device according to an embodiment of the present disclosure.
  • FIG. 19 is a schematic diagram of another streaming media quick launch system in accordance with an embodiment of the present disclosure.
  • DASH network particularly an FDH-DASH network
  • FDH-DASH network is not limited to the above fields.
  • FDH Full Duplex HTTP-compatible protocols
  • HTTP Simple Hyperplex HTTP-compatible protocols
  • full-duplex hypertext protocols for protocols such as WebSocket and HTTP/2.
  • DASH Dynamic Adaptive Streaming over HTTP
  • FDH-DASH Dynamic Adaptive Streaming over HTTP compatible protocols
  • FDH-DASH Dynamic Adaptive Streaming over HTTP compatible protocols
  • FIG. 1 is a flowchart of a quick start of streaming media according to an embodiment of the present disclosure. As shown in FIG. 1 , the process includes the following steps:
  • Step S102 the client sends a quick start type push instruction to the media server, where the quick start type
  • the push command is used to instruct the media server to push an initialization fragment sequence and/or a media segment sequence.
  • Step S104 The client receives a quick start type push confirmation instruction returned by the media server.
  • Step S106 The client acquires information of an initialization segment and/or a sequence of media segments to be pushed by the media server according to the quick start type push confirmation command.
  • the client generates a push-fast-start directive, and sends the quick-start type push command to the media server, where the quick-start type push command is used to notify the
  • the media server pushes an initialization fragment sequence and/or a media fragment sequence
  • the client obtains a quick start type push confirmation instruction push-fast-start acknowledge
  • the client obtains the server according to the quick start type push confirmation instruction Push initialization fragment and information about the sequence of media segments.
  • the foregoing method for quickly starting the streaming media may include the following steps:
  • the client generates a quick start push command.
  • the client sends a request message for obtaining the media presentation description file MPD to the media server, wherein the request information includes at least: a quick start push instruction and an MPD request instruction.
  • the request message may be an MPD fragment request message
  • the client generates a push-fast-start directive to send a media presentation description file (MPD) request message to the media server, where the media presentation description
  • MPD media presentation description file
  • the request for the file consists of the above-mentioned quick-start push command push-fast-start directive and the requested content.
  • the client receives the response message returned by the media server according to the request message, where the response message includes: a push confirmation instruction that determines that the client needs to be started quickly, and MPD data that is obtained in response to the MPD request instruction.
  • Step S108 After the client obtains the predicted segment message, obtain the media content required by the client according to the predicted segment message and the MPD data, where the predicted segment message is a segment corresponding to the push confirmation instruction actively pushed by the media server. Message.
  • the client receives a response from the media server in response to the fragment message, and an initialization fragment and/or a sequence of fragments actively pushed by the media server, wherein the quick-start push instruction push-fast-start directive is Quick start message and a series of parameters.
  • the streaming media client quickly initiates the push-fast-start directive to confirm the parameters in the command by parsing the received response information, and parses the parameter list, and quickly according to whether the content required in the next step is to push the fragment list on the media server. Determine the specific operation to be performed by the media client in the next step. If the media server pushes the hit (Miss), that is, the required content is no longer pushed into the list, the request corresponding to the required message can be immediately sent, or the media can be canceled. Push the server, otherwise get the required content directly.
  • the client can be used to tell the media server by generating the push-fast-start directive, the client expects the media server to push the sequence of fragments to start quickly; by using the K pushed from the media server to receive the server.
  • Fragment fragment message reduces the blind waiting time of the client, reduces the startup delay, and solves the problem that the media client and the media server do not reach a good negotiation synchronization, so that the media client can judge the expectation. Whether the resources are in the push list, in order to make the next decision as soon as possible, to achieve a better quick start effect.
  • the media server only needs to send a push confirmation instruction to the media client through the media server according to the fast-start information in the segment request message, and actively pushes a series of predicted segments determined by the server to the media client.
  • the media client parses the header information of the media response message, and obtains the number K of the media server push and the K to be pushed by parsing the push confirmation command in the message.
  • Content information of a fragment such as a URL.
  • the media client can determine whether the resources it expects are on the push list, so that the next decision can be made as soon as possible, to achieve a better quick start, and to support the Fast Start low latency design concept.
  • the media client generates a push-fast-start directive according to whether fast startup and MPD information are required, wherein the push-fast-start directive may not contain any parameters, and may also include some representations of client preferences. Parameters, such as the code rate of the client-preferred preference, the type of preferred media segment, the number of preferred media segments, etc., or the like, and the media server determines whether the received MPD file request contains a push-fast-start directive.
  • the client needs to start up quickly, and then the media server decides the number of fragments to push through local decisions (or by combining the push-fast-start directive parameters pushed by the media client, ie client preferences) and decides which specific fragments to push.
  • the media client is notified by the MPD response message push-fast-start acknowledge, wherein push-fast-start acknowledge is composed of fast-start information and parameters, and at the same time, the MPD file is sent, and the segment generated by the decision is pushed. sequence.
  • the media client parses and obtains the request-containing MPD file response header information whether it contains a push-fast-start acknowledge, and obtains the parameters therein, and queries the fragment sequence sent by the media server. Whether it meets the needs of the media client to quickly make the next decision.
  • the request corresponding to the required message can be immediately sent, or the push of the media server can be canceled, and the file required by the media client can be requested immediately, and the desired file can be directly obtained when hit.
  • the fast-starting strategy proposed by the present disclosure implements the transparency of the media client for pushing files, that is, the push-fast that the media client can send through the media server, compared with the fast-starting strategy in the FDH standard CD that has been proposed.
  • the parameters in the -start acknowledge and the sequence of fragments sent by the media server indicate whether the media server hits, and whether it should continue to wait for the arrival of the content pushed by the media server, to a certain extent, reduce the blind waiting time of the media client, and effectively support the quick start. Strategic design concept.
  • the FDH-DASH system 100 includes one or more media clients 110, including user devices or devices, such as set top boxes (STBs), desktop computers, notebook computers, tablets, smart phones, any other type of mobile device.
  • the device, personal device, or a combination of these devices, etc. the media client 110 supports Full Duplex Hypertext Transfer Protocol (FDH).
  • the FDH-DASH architecture 100 includes one or more media servers 120, which may be any suitable type of network server, such as a node of a content distribution network (CDN), a proxy server, a web server, or a combination of these servers, etc.
  • the media server 120 supports Full Duplex Hypertext Transfer Protocol (FDH).
  • FDH Full Duplex Hypertext Transfer Protocol
  • the media client 110 can establish an FDH connection with the media server 120 through any access network 130, including the Internet, a wireless local area network (WLAN), a WiFi network or hotspot, a cellular network, a cable architecture, Fiber backbone network, access network or a combination of these networks.
  • the media client 110 and the media server 120 are connected by FDH, and can exchange/receive request/response messages and send/receive media content.
  • FIG. 3 shows a schematic diagram of an embodiment of an FDH media client.
  • the media client 110 includes an FDH-DASH control engine 111, a generation engine 112, an FDH access engine 113, and a media engine 114.
  • the FDH-DASH control engine 111 can parse the MPD to obtain information about the media content, such as content timing, content or media availability, media type, resolution, minimum and maximum bandwidth, location of media content in the network, and other content.
  • Features such as media presentation timeline, media segment list, etc.; can determine the sequence of segments to be downloaded/pushed according to the processing capability of the user equipment, display capability, client cache change trend, and available bandwidth trends, for example, available
  • a high-quality fragment sequence can be selected; according to the parameters in the push-fast-start acknowledge sent by the server and the fragment information pushed by the server, whether the hit fails (Miss) can be determined. If the hit fails, the server push can be directly ignored. Fragments, you can also directly cancel (Cancel) server push, start a new fragment request, or wait for the required content.
  • the generating engine 112 generates a push-fast-start directive according to whether the client needs to start quickly, wherein the push-fast-start directive may not include any parameters, and may also include some parameters indicating client preferences, such as joining the client. a preferred code rate, a preferred media segment type, a preferred number of media segments, or the like; a push-template type push instruction, etc., the push-template type push instruction is used for a normal segment request, and the specific description is visible. FDH standard definition.
  • the FDH access engine 113 initiates and establishes an FDH connection channel; generates and sends an MPD request message according to whether the client needs to quickly initiate the generated push-fast-start directive, receives and parses the MPD response message, and acquires MPD data; and responds according to the MPD request.
  • the message acquires the push-fast-start acknowledge sent by the server and the parameters in the instruction; receives the sequence of fragments that are pushed.
  • the media engine 114 loads the decoded media segments and presents the streaming media.
  • FIG. 4 shows a schematic diagram of an embodiment of an FDH media server.
  • the media server 120 includes an FDH service module 121, a parsing engine 122, media content 130, and a media preparation unit 140.
  • the media content 130 may be generated or prepared by the media preparation unit 140, which may be located on the media server or elsewhere (eg, in a content provider).
  • the media content 130 can be in any feasible form, such as video, audio, text, combinations thereof, and the like.
  • the media content 130 may include a media presentation description (MPD) 131 and a plurality of segment resources, the MPD 131 being an XML document describing the media content, including description information of the media segment resource, such as a starting presentation time and a code of the media segment.
  • MPD media presentation description
  • the MPD may further include URL information of the segment resource and presentation time information (eg, initial presentation time, presentation duration, etc.), and the like, wherein the URL information may be provided by a segment template or a segment list (SegmentList).
  • the presentation time information of the segment resource may be given by a segment timeline (SegmentTimeline) or multiple segment base information (Multiple Segment Base Information) or the like.
  • the initial presentation time of the segment is a presentation time corresponding to the first frame data of the media segment, relative to a period start time (PeriodStart time) of the media segment (Period).
  • the MPD 131 may be located at the same network location as the segment resource of the media content 130, or may be located at other locations.
  • the media content 130 can include one or more time periods, and each time period can include one or more adaptation sets, and each adaptation set can include one or more representations.
  • the adaptation set 133 can include multiple representations, and the representation 134 can include multiple time periods.
  • the FDH service module 121 receives the FDH connection request, establishes an FDH connection channel, receives and parses the MPD request message, acquires an instruction of whether the media client needs to be started quickly, generates and sends an MPD response message, and the MPD response message includes MPD data, push -fast-start acknowledge, and parameters in push-fast-start acknowledge; receive and parse fragment request message; generate and send fragment response message; push the sequence of fragments actively predicted by the media server.
  • the parsing engine 122 is responsible for parsing the MPD request message, and obtaining an instruction of whether the media client needs to be started quickly.
  • the media client includes a push-fast-start directive, calculating the number of fragments to be pushed by the media server, and obtaining a push-fast-start A sequence of fragments specified in acknowledge; parsing the client's push instruction to obtain the sequence of fragments required by the client.
  • the MPD request message further includes: at least one request parameter, the information of the initialization segment and the media segment sequence to be pushed by the media server includes a fragment of the MPD request message
  • the client obtains the MPD response message from the media server by using any one or more of the following: an MP2 response message mode of HTTP/2 and a new_mpd message of a DASH sub-protocol in WebSocket, where The HTTP/2 MPD response packet carries the quick start type push confirmation command through the Push-Policy header; the new_mpd message of the WebSocketsDASH sub-protocol carries the quick start type push confirmation command through the JSON key-value pair form.
  • the receiving, by the client, the MPD response message returned by the media server, and the quick start type push confirmation instruction further include:
  • the MPD response message is received by a new_mpd message of the DASH sub-protocol in the WebSocket, where the JSON key-value pair of the new_mpd message carries a quick-start type push confirmation instruction.
  • the sending, by the client, the MPD request message to the media server, and the quick start type push instruction further includes:
  • the MPD request message is sent by a get_mpd message of the DASH sub-protocol in the WebSocket, where the JSON key value pair of the get_mpd message carries a quick start type push confirmation instruction.
  • the client sends the MPD request message by using any one or more of the following: an HTTP/2 request message mode and a get_mpd message of a DASH sub-protocol in a WebSocket, where The /2 request message carries the quick start type push instruction through the Accept-Push-Policy header; the get_mpd message of the DASH sub-protocol in the WebSockets carries the fast start type push instruction through the JSON key-value pair form.
  • the MPD request message further includes: at least one request parameter
  • the information of the initialization segment and the media segment sequence to be pushed by the server includes a fragment of the MPD request message.
  • Genus The client obtains, from the media server, the information of the initialization segment and the sequence of the media segment to be pushed by the server by any one or more of the following methods: push notification mode in HTTP/2 and push in WebSocket The content notification mode; the client sends the MPD request message in any one or more of the following manners: a key-value pair form of an extended header of an HTTP/2 request message and a JSON key-value pair form in a frame of a WebSocket.
  • the request information further includes: at least one request parameter, the predicted segment message includes an attribute of a segment requested by the request parameter; and the client passes any one of the following Obtaining the predicted segment message from the media server in one or more manners: a push notification manner in HTTP/2 and a push content notification manner in a WebSocket; the client sending by any one or more of the following manners
  • the request message a form of a key-value pair of an extended header of an HTTP/2 request message and a JSON key-value pair form in a frame of a WebSocket.
  • the client sends the quick start type push instruction to the media server by using an MPD request message.
  • sending the quick start type push instruction to the media server comprises: sending the quick start type push instruction to the media server by using an MPD request message, wherein the MPD request message is used to request the The media server sends an MPD response message, and the MPD response message should at least include MPD data and a quick start type push confirmation command.
  • the obtaining, by the client, the quick start type push confirmation instruction comprises: the client receiving the quick start type push confirmation instruction comprises: the client receiving the media server A returned MPD response message, the MPD response message including at least MPD data, and the quick start type push confirmation command.
  • the quick start type push confirmation instruction is obtained by acquiring and parsing an MPD response message, the MPD response message including at least MPD data and a quick start type push confirmation instruction.
  • the client obtains, according to the quick start type push confirmation instruction, information about an initialization segment and/or a sequence of media segments to be pushed by the server, including:
  • Step S1061 The quick start type push confirmation command carries a push parameter of a URL template type.
  • Step S1063 The client parses the URL template push parameter, and acquires information of an initialization segment sequence and/or a media segment sequence to be pushed by the media server.
  • the client obtains, according to the quick start type push confirmation instruction, information about an initialization segment and/or a sequence of media segments to be pushed by the server, including:
  • step S1065 the quick start type push confirmation command carries a push parameter of a numerical type.
  • Step S1067 the client parses the value push parameter K, and receives subsequent K push commitment PUSH_PROMISE frames, and acquires information of the initialization segment sequence and/or the media segment sequence to be pushed by the media server.
  • the client obtains, according to the quick start type push confirmation instruction, information about an initialization segment and/or a sequence of media segments to be pushed by the server, including:
  • Step S1069 The quick start type push confirmation command carries a push parameter of a URL list type
  • Step S1071 The client parses the URL list push parameter, and acquires information of an initialization segment sequence and/or a media segment sequence to be pushed by the media server.
  • the step of the client acquiring, according to the quick start type push confirmation instruction, the information of the initialization segment and the media segment sequence to be pushed by the server includes:
  • the client parses the URL template to obtain information of a push initialization segment sequence and/or a media segment sequence that the media server is to request.
  • the client obtains a push initialization fragment sequence and/or a media server to request by parsing the value K and the subsequent K push commitment PUSH_PROMISE frames. Information about the sequence of media segments.
  • the client parses the URL list to obtain information of a push initialization segment sequence and/or a media segment sequence that the media server is to request.
  • the foregoing method further includes:
  • Step S108 the client parses the MPD data to determine information of an initialization segment and/or a sequence of media segments that need to be pushed by the media server.
  • Step S1010 If the information of the initialization segment and/or the media segment sequence to be pushed by the obtained media server is equal to the determined information of the initialization segment and/or the media segment sequence that needs to be pushed by the media server, the client receives An initialization fragment sequence and/or a sequence of media segments pushed by the media server.
  • the foregoing method further includes:
  • Step S1012 The client parses the MPD data to determine information of an initialization segment and/or a sequence of media segments that need to be pushed by the media server.
  • the client sends a request to the media server to obtain the sequence of initialization segments and/or media segments that are determined to be pushed by the media server.
  • the client sends a request to the media server to obtain the sequence of initialization segments and/or media segments that are determined to be pushed by the media server.
  • the method further includes the client sending a request to the media server to obtain the sequence of initialization segments and/or media segments that are determined to be pushed by the media server.
  • the present application further provides a streaming media quick start method as shown in FIG. 5, the method comprising:
  • Step 161 Generate a push-fast-start directive according to whether the client needs to quickly start and present the description MPD.
  • Step 162 Send an MPD segment request message to the media server, where the MPD segment requests the next filming by the push-fast-start directive and the MPD request message instruction;
  • Step 163 Receive an MPD fragment in response to the MPD fragment request message from the media server, and parse the parameter in the push-fast-start directive in the response message header information.
  • step 164 the analysis determines whether the desired content is hit.
  • the client obtains the media by parsing the value K and the subsequent K push commitment PUSH_PROMISE frames.
  • the server will push information about the initialization fragment sequence and/or the media fragment sequence, including:
  • Step S1081 The client parses the parameter value K from the quick start type push instruction, and receives K fragment messages corresponding to the parameter value K pushed by the media server.
  • Step S1083 The client parses the MPD data to obtain media information of the media content required by the client.
  • Step S1085 The client detects whether the media information is hit in the K fragment messages, and the fragment message is a URL address.
  • Step S1087 if the media message is successfully hit in the K segment messages, the client acquires information of the initialization segment and the media segment sequence to be pushed by the media server.
  • the acquiring, by the client, the predicted segment message may include the following steps:
  • the client parses the parameter value K from the push confirmation command, and receives K fragment messages corresponding to the parameter value K pushed by the media server.
  • the media content required by the client is obtained according to the predicted segment message and the MPD data, including,
  • the client parses the MPD data to obtain media information of media content required by the client.
  • the client detects whether the media information is hit in the K segment messages, and the segment message is a URL address.
  • the client acquires a sequence of segments corresponding to the predicted segment message pushed by the media server, where the sequence of segments is the client The media content needed.
  • the client if the media message fails in the K segment message, the client initiates a request for acquiring the required media content, or cancels the media.
  • the server pushes the session for media content.
  • the format of the quick start push confirmation command parameter with parameter K can be defined as: fast_start indicates the push confirmation command, the parameter K specifies the type of the push confirmation command, and the K value constitutes the quick start confirmation command with the parameter K. Specific examples are combined as shown in FIGS. 5B to 5C.
  • the push-fast-start acknowledge parameter may be composed of fast-start information and a parameter K.
  • the media server first pushes the sequence of predicted segments. Pushing a sequence of messages, such as a URL, etc. (the pre-pushed sequence information may be in the form of a push promise in HTTP/2, and the push promise is sent by the media server to notify the media client.
  • the content information to be pushed, such as URL information, etc., is given to the media client, so that the media client can decide whether the media server end hits (Miss) as soon as possible by using the push-fast-start acknowledge parameter K and the information of the push segment sequence.
  • FIG. 6 is a flowchart of a streaming media quick startup method according to an embodiment of the present disclosure
  • FIG. 6 is a user terminal device according to an embodiment of the present disclosure.
  • the media client 110 is a schematic flowchart of the streaming media quick startup method 200. As shown in FIG. 6, the process includes the following steps:
  • Step 201 Generate a push-fast-start directive according to whether the client needs to quickly start and present the description MPD, wherein the push-fast-start directive may not include any parameters, and may also include some parameters indicating client preferences. For example, adding a code rate preferred by the client, a preferred media segment type, a preferred number of media segments, or the like, or the like;
  • Step 202 Send an MPD fragment request message to the media server, where the MPD fragment request message is composed of the push-fast-start directive and the MPD request message instruction.
  • Step 203 Receive an MPD fragment in response to the MPD fragment request message from the media server, and parse the parameter value K in the push-fast-start directive in the response message header information;
  • Step 204 Receive a fragment message of the K segments pushed by the server from the media server, determine whether the required content is hit, and wait for the content to be acquired if the hit is successful. If the hit fails, the request corresponding to the required message may be immediately sent, or may be cancelled ( Cancel) The push of the media server, directly start requesting the desired sequence of fragments.
  • the fragment request message may be specifically sent by using, but not limited to, the following form: HTTP/2 request report
  • the message sequence of the segment corresponding to the parameter K is synchronously pushed by the media server, and the sequence of segments corresponding to the parameter K is synchronously pushed by the media server (or other faster and fairer method push).
  • the media client can notify the media server by generating the push-fast-start directive, and the client expects the media server to push the sequence of segments to start quickly; by using the K pushed from the media server to receive the server.
  • the fragmented message of the fragment reduces the blind waiting time of the client and reduces the startup delay.
  • the method 200 is an exemplary embodiment, and the method 200 can be alternatively modified, and the steps can be combined and/or appended as needed.
  • the following is an exemplary embodiment to illustrate the streaming media quick launch method and parameter values K introduced herein, and their potential applications in some use cases.
  • FIG. 7A shows an exemplary MPD 400.
  • the MPD is taken from the sample files provided by the 2016 ICME Grand Challenge Competition Organizing Committee (MPD files can also be other standard types of DASH MPD files).
  • FIG. 7B shows an exemplary fragment request message 410.
  • the fragment request message 410 includes mpd_uri 411 and fast_start push instructions 412, without parameters.
  • FIG. 7B-1 shows an exemplary fragment request message 410-1.
  • the fragment request message 410-1 includes an mpd_uri 411-1 and a fast_start push instruction 412-1, which consists of fast-start information and push parameters.
  • FIG. 7C shows an exemplary fragment response message 420.
  • the fragment response message 420 includes an mpd_content 421 and a fast_start push confirmation command 412, including a parameter value K, that is, the number of segments that the media server is to push.
  • FIG. 7D illustrates an exemplary interaction flow of media client 110 and media server 120.
  • the interaction process begins in step 431.
  • the media client 110 sends an MPD request message to the media server 120 via the FDH access engine 113, requests the MPD 400, and tells the media server that a quick start is required.
  • the media server 120 acquires the number of predicted segments and the specific content through the FDH service module 121, and sends an MPD response message to the media client 110, where the MPD response message includes the MPD400 and the push-fast -start acknowledge422.
  • the media server 120 service module 121 generates predicted segment information based on the local prediction and MPD information, and generates a sequence of segments to be pushed.
  • the information of the segment to be pushed (the information such as the URL does not contain the specific data) is sent to the media client in parallel.
  • the media client 110 parses through the FDH-DASH control engine 111 whether the desired segment is in the segment message pushed by the server, if it is waiting to acquire the file content, otherwise, immediately requests the desired segment.
  • the media server transmits a segment request message to the media client 110 in parallel via the service module 121 in step 435.
  • the media client 110 normally sends a segment request. Steps 434 and 435 can be performed simultaneously to facilitate early decision by the media client.
  • the push prediction of the media server is carried in the push confirmation command.
  • the push segment list is the predicted segment message obtained by the parsing of the push confirmation command, wherein the client is acquired according to the predicted segment message and the MPD data.
  • Media content needed including,
  • Step S1067 the client parses the MPD data to obtain media information of the media content required by the client.
  • Step S1069 the client detects whether the media information is hit in the push segment list
  • Step S1071 If the media message is successfully hit in the push segment list, the client acquires a sequence of segments corresponding to the push segment list that is pushed by the media server, where the sequence of segments is the The media content required by the client.
  • the client if the media message fails to be hit in the K segment messages, the client initiates a request for acquiring the required media content and cancels the media server to push the media content. a session, or the client initiates a request to obtain the desired media content and stores information of a push initialization fragment sequence and/or a sequence of media segments that the media server is to.
  • the client if the hitting the media message fails in the push segment list, the client initiates a request to acquire the required media content, or cancels the media server to push the media content. Conversation.
  • the push segment list is a URL composition of a sequence of segments predicted by the media server.
  • the present disclosure introduces a new URL_LIST quick start push confirmation instruction parameter format, which can be defined as:
  • ATTRIBUTES ATTRIBUTE_LIST/ATTRIBUTE_ITEM
  • ATTRIBUTE_LIST ATTRIBUTE_ITEM";"ATTRIBUTE_LIST/ATTRIBUTE_ITEM
  • ATTRIBUTE_ITEM can be an initialization fragment, media type, language, bit rate, etc., and the value can be number, code rate, range, and the like.
  • Fast_start indicates a push confirmation command.
  • the parameter segment-list specifies the type of push confirmation command, and then keeps up with the URL of all segments.
  • the URL is separated by the symbol ";" to form a URL_LIST quick start confirmation command.
  • Figures 9B-C A specific example is shown in Figures 9B-C.
  • the client parses the URL list, and obtains a sequence of push initialization segments that the media server is to request. / or information about the sequence of media segments, including,
  • Step S1091 The client parses the MPD data to obtain media information of media content required by the client.
  • Step S1093 The client detects whether the information of the push initialization segment sequence and/or the media segment sequence that the media server wants to hit the media information.
  • Step S1095 If the information of the push initialization segment sequence and/or the media segment sequence that is to be hit by the media server hits the media message successfully, the information of the push initialization segment sequence and/or the media segment sequence that the media server wants is obtained.
  • the push-fast-start acknowledge parameter may consist of a fast-start and a push-to-send fragment list (URL_LIST), the URL_LIST being predicted by a series of media servers.
  • the sequence consists of URLs that can be separated by a semicolon ";" (or other representation) for resolution by the media client.
  • the media client can parse the number of push segments sent by the server and the specific push content through the push-fast-start directive parameter in the MPD request response header. In this way, the media client can make a decision as early as possible.
  • FIG. 8 is a flowchart of a streaming media quick startup method according to an embodiment of the present disclosure
  • FIG. 8 is a user terminal device according to an embodiment of the present disclosure.
  • the media client 110 is a schematic flowchart of a streaming media quick launch method 500. As shown in FIG. 8, the process includes the following steps:
  • Step 501 Generate a push-fast-start directive according to whether the client needs to quickly start and present the description MPD, where the push-fast-start directive may not include any parameters, and may also include some parameters indicating client preferences. For example, adding a code rate preferred by the client, a preferred media segment type, a preferred number of media segments, or the like, or the like;
  • Step 502 Send an MPD fragment request message to the media server, where the MPD fragment request message is composed of the push-fast-start directive and the MPD request message instruction.
  • Step 503 Receive an MPD fragment in response to the MPD fragment request message from the media server, and parse the URL_LIST parameter list in the push-fast-start directive in the response message header information. It is judged whether the fragment required by the media client exists in the parameter list, and if it exists, it waits for the content pushed by the media server, and if it does not exist, directly requests the required sequence of fragments.
  • the fragment request message may be specifically sent by, but not limited to, a key-value pair form of an extended header of an HTTP/2 request message, a JSON key-value pair form in a frame of a WebSocket, and the like.
  • the parameter URL_LIST parameter list is generated by a media server, and the list may be predicted according to a hit situation of a majority of media clients, or a specified configuration file may be implemented, or by combining the media client's push-fast-start directive. Parameter conditions, etc.
  • the media client can notify the media server by generating the push-fast-start directive, and the client expects the media server to push the sequence of fragments to start quickly; by using the push-push pushed from the media server.
  • the list of URL_LIST parameters in fast-start acknowledge reduces the blind waiting time of the client and reduces the startup delay.
  • the method 500 is an exemplary embodiment, and the method 500 can be alternatively modified, and the steps can be combined and/or appended as needed.
  • FIG. 9A shows an exemplary MPD 700.
  • the MPD is taken from the sample files provided by the 2016 ICME Grand Challenge Competition Organizing Committee (MPD files can also be other standard types of DASH MPD files).
  • FIG. 9B shows an exemplary fragment request message 710.
  • the fragment request message 710 includes mpd_uri 711 and fast_start push instructions 712, with no parameters.
  • FIG. 9B-1 shows an exemplary fragment request message 710-1.
  • the fragment request message 710-1 includes an mpd_uri 711-1 and a fast_start push instruction 712-1, which consists of fast-start information and push parameters.
  • FIG. 9C shows an exemplary fragment response message 720.
  • the fragment response message 720 includes an mpd_content 721 and a fast_start push confirmation command 712, including a parameter URL_LIST, that is, a list of information (such as a URL and the like, which does not contain specific data) that the media server wants to push the clip.
  • a parameter URL_LIST that is, a list of information (such as a URL and the like, which does not contain specific data) that the media server wants to push the clip.
  • FIG. 9D illustrates an exemplary interaction flow of media client 110 and media server 120.
  • the interaction process starts in step 731, and the media client 110 sends an MPD request message to the media server 120 through the FDH access engine 113, requests the MPD 700, and tells the media server that a quick start is required.
  • the media server 120 acquires the number of predicted segments and the specific content through the FDH service module 121, and sends an MPD response message to the media client 110, where the MPD response message includes the MPD400 and the push-fast -start acknowledge722.
  • step 733 the media client 110 parses through the FDH-DASH control engine 111 whether the desired segment is in the segment list pushed by the server, if it is waiting to acquire the file content, otherwise, immediately requests the desired segment.
  • the media server transmits a segment request message to the media client 110 in parallel via the service module 121 in step 734.
  • step 735 the media client 110 normally sends a segment request. Steps 733 and 734 can be performed simultaneously to facilitate early decision by the media client.
  • the client parses the URL template to obtain a sequence of push initialization fragments that the media server is to request. / or information about the sequence of media segments, including:
  • Step S1073 The client parses the MPD data to obtain media information of media content required by the client.
  • Step S1075 The client detects whether the information of the push initialization segment sequence and/or the media segment sequence that the media server wants to hit the media information.
  • Step S1077 If the information of the push initialization segment sequence and/or the media segment sequence that is to be hit by the media server hits the media message successfully, the information of the push initialization segment sequence and/or the media segment sequence that the media server is about to acquire is obtained.
  • the push segment information is the identifier obtained from the analysis of the push confirmation command.
  • a segmented message wherein the media content required by the client is obtained according to the predicted segment message and the MPD data, including,
  • the client parses the MPD data to obtain media information of media content required by the client;
  • the client detects whether the media information is hit in the push segment message
  • the client acquires a sequence of segments corresponding to the push segment message that is sent by the media server, where the sequence of segments is required by the client Media content.
  • the client if the media information of the push initialization fragment sequence and/or the media segment sequence that the media server is about to hit fails, the client initiates acquiring the required media content. Requesting and canceling the session in which the media server pushes the media content, or the client initiates a request to obtain the desired media content and stores information of the push initialization segment sequence and/or media segment sequence that the media server is to.
  • the client if the hitting of the media message fails in the push segment message, the client initiates a request to acquire the required media content, or cancels the media server to push the media content. Conversation.
  • the push segment column message is composed of one or more URL templates with parameterized traversal predicted by the media server and a compressed parameter list.
  • This disclosure describes a new URL_TEMPLATE fast-start push confirmation command parameter format, which can be defined as:
  • ATTRIBUTES ATTRIBUTE_LIST/ATTRIBUTE_ITEM
  • ATTRIBUTE_LIST ATTRIBUTE_ITEM";"ATTRIBUTE_LIST/ATTRIBUTE_ITEM
  • ATTRIBUTE_ITEM can be an initialization fragment, media type, language, bit rate, etc., and the value can be number, code rate, range, and the like.
  • Fast_start indicates the push confirmation command.
  • the parameter push-template specifies the type of push confirmation command, and then follows the standard push-template and some of the parameters described above to form the URL_TEMPLATE quick start confirmation command. Specific examples are shown in FIGS. 10B to 10C.
  • the push-fast-start acknowledge parameter may consist of a fast-start message and a push-to-send clip information (URL_TEMPLATE) consisting of a URL containing one or more variables to be parameterized.
  • the template is composed of a compressed list of parameters corresponding to the IETF RFC 6570 URI template Level 1, the variable is included in " ⁇ ", and the expression type is a string extension mode (see FDH URL_TEMPLATE definition), which is given to the media client. End parsing.
  • the media client can parse the number of push segments sent by the server and the specific push content through the push-fast-start directive parameter in the MPD request response header. In this way, the media client can make a decision as early as possible.
  • FIG. 11 is a flowchart of a streaming media quick startup method according to an embodiment of the present disclosure
  • FIG. 11 is a user terminal device according to an embodiment of the present disclosure.
  • the media client 110 is a schematic flowchart of a streaming media quick launch method 800. As shown in FIG. 11, the process includes the following steps:
  • Step 801 Generate a push-fast-start directive according to whether the client needs to quickly start and present the description MPD.
  • the push-fast-start directive may not include any parameters, and may also include some parameters indicating client preferences, such as a code rate that is added to the client preference, a preferred media segment type, a preferred number of media segments, or the like. Combination of these, etc.;
  • Step 802 Send an MPD fragment request message to the media server, where the MPD fragment request message is composed of the push-fast-start directive and the MPD request message instruction.
  • Step 803 Receive an MPD fragment in response to the MPD fragment request message from the media server, and parse the URL_TEMPLATE parameter in the push-fast-start directive in the response message header information. It is judged whether the fragment required by the media client exists in the parameter list, and if it exists, it waits for the content pushed by the media server, and if it does not exist, directly requests the required sequence of fragments.
  • the fragment request message may be specifically sent by, but not limited to, a key-value pair form of an extended header of an HTTP/2 request message, a JSON key-value pair form in a frame of a WebSocket, and the like.
  • the parameter URL_TEMPLATE parameter list is generated by the media server, and the list may be predicted according to the hit situation of most media clients, or a specified configuration file or the like may be implemented.
  • the media client can notify the media server by generating the push-fast-start directive, and the client expects the media server to push the sequence of fragments to start quickly; by using the push-push pushed from the media server.
  • the list of URL_TEMPLATE parameters in fast-start acknowledge reduces the blind waiting time of the client, reduces the startup delay, and makes a more reasonable compression transmission for push-fast-start acknowledge.
  • the method 800 is an exemplary embodiment, and the method 800 can be alternatively modified, and the steps can be combined and/or appended as needed.
  • FIG. 10A shows an exemplary MPD 1000.
  • the MPD is taken from the sample files provided by the 2016 ICME Grand Challenge Competition Organizing Committee (MPD files can also be other standard types of DASH MPD files).
  • FIG. 10B shows an exemplary fragment request message 1010.
  • Fragment request message 1010 includes mpd_uri 1011 and fast_start push instructions 1012, with no parameters.
  • FIG. 10B-1 shows an exemplary fragment request message 1010-1.
  • the fragment request message 1010-1 includes an mpd_uri 1011-1 and a fast_start push instruction 1012-1, which consists of fast-start information and push parameters.
  • FIG. 10C shows an exemplary fragment response message 1020.
  • the fragment response message 1020 includes an mpd_content 1021 and a fast_start push confirmation command 1012, including a parameter URL_TEMPLATE, that is, a form of information list compression of the media server to push the clip (here may be a defined format in the FDH-DASH standard, etc.).
  • a parameter URL_TEMPLATE that is, a form of information list compression of the media server to push the clip (here may be a defined format in the FDH-DASH standard, etc.).
  • FIG. 10D illustrates an exemplary interaction flow of media client 110 and media server 120.
  • the interaction process starts at step In step 1031, the media client 110 sends an MPD request message to the media server 120 through the FDH access engine 113, requests the MPD 1000, and tells the media server that a quick start is required.
  • step 1032 after receiving the MPD request message, the media server 120 acquires the number of predicted segments and the specific content through the FDH service module 121, and sends an MPD response message to the media client 110, where the MPD response message includes the MPD400 and the push-fast -start acknowledge1022.
  • step 1033 the media client 110 parses through the FDH-DASH control engine 111 whether the required segment is in the segment list pushed by the server, if it is waiting to acquire the file content, otherwise, immediately requests the desired segment.
  • step 1034 the media server sends a segment request message to the media client 110 in parallel via the service module 121.
  • step 1035 the media client 110 normally sends a segment request. Steps 1033 and 1034 can be performed simultaneously to facilitate early decision by the media client.
  • FIG. 13 is a schematic diagram of an embodiment of a computer system or network device 1200.
  • the network device 1200 can be implemented for any suitable device, such as a web server, a media server (eg, media server 120) or a client device (eg, media client 110), and the like.
  • the network device 1200 is capable of receiving, processing, and transmitting messages such as segment request messages/fragment response messages/fragments from and to the network.
  • the network device 1200 can include one or more ingress terminals 1210 coupled to a receiver 1211, wherein the receiver 1211 can be configured to receive MPDs and/or segments from other network nodes over an FDH channel.
  • the network device 1200 can also include one or more egress terminals 1230 coupled to the transmitter 1231, wherein the transmitter 1231 can transmit MPDs and/or segments to other network nodes via the FDH channel.
  • the network device 1200 can also include a processor 1220, wherein the processor 1220 is linked to the receiver 1211, configured to process the segment or determine to send the segment to that network node.
  • the processor 1220 can be implemented by hardware, software, and a combination thereof.
  • the processor 1220 can be implemented with one or more CPU chips, programmable gate arrays, application specific integrated circuits, and/or digital signal processors.
  • the process 1220 can be used to implement any of the functional modules or units described herein, for example, the FDH-DASH control engine 111, the FDH access engine 113, the media engine 112, the FDH service module 121, the parsing engine 122, the media player 1221, or the present Any other functional component known to those of ordinary skill in the art, or any combination thereof.
  • the media player 1221 can be an application running on the processor 1220, configured to decode and play the media segment.
  • the network device 1200 can also include at least one memory 1222.
  • the memory 1222 can be configured to store the MPD 1223 and the segment 1224.
  • the MPD 1223 and the segment 1224 can be stored and packaged in various forms as described above.
  • the MPD 1223 can be the MPD 300 (or other standard MPD file defined in MPEG-DASH).
  • the segment 1224 and the MPD 1223 may be stored as separate files or may be stored in a single file.
  • the network device 1200 there may be two-way traffic handled by the network device 1200, so some ports may both receive and send messages.
  • the inlet end 1210 and the outlet end 1230 can be co-located or can recognize different functions of the same port that begins with the transceiver connection.
  • One or more of the processor 1220, the memory 1222, the receiver 1211, and the transmitter 1231 may also be configured to at least partially implement or support any of the methods and implementations described above.
  • FIG. 14 is a flowchart of a method for quickly starting a streaming media according to an embodiment of the present disclosure. As shown in FIG. 14, the process includes the following steps:
  • Step S1401 The media server receives a quick start type push instruction sent by the client, where the quick start type push instruction is used to instruct the media server to push the initialization fragment sequence and/or the media segment sequence.
  • Step S1403 the media server generates a quick start type push confirmation instruction according to the initialization segment and/or the media segment sequence to be pushed.
  • Step S1405 The media server sends the quick start type push confirmation instruction to the client.
  • the step of the streaming media quick start method may include:
  • the media server obtains a quick start type push instruction push-fast-start directive; the media server generates a quick start type push confirmation command push-fast-start acknowledge, wherein the quick start type push confirmation command is used to notify the client that the push is to be pushed Pushing the initialization fragment sequence and/or the media fragment sequence; transmitting the quick start type push confirmation instruction to the client, pushing the initialization fragment sequence and/or the media fragment sequence to the client.
  • the media server receives an MPD request message sent by the client, where the MPD request message includes the quick start type push instruction.
  • the media server receiving the quick start type push instruction includes: the media server receiving an MPD request message sent by the client, where the MPD request message includes the quick start type push instruction.
  • the media server generates a quick start type push confirmation instruction, including:
  • Step S14031 the media server generates a push parameter of a URL template type according to the initialization segment sequence and/or the media segment sequence to be pushed.
  • step S14033 the quick start type push confirmation command carries the push parameter of the URL template type.
  • the media server generates a quick start type push confirmation instruction, including:
  • Step S14035 the media server generates a push parameter of a numeric type according to the initialization segment sequence and/or the media segment sequence to be pushed.
  • Step S14037 The quick start type push confirmation command carries the push parameter of the value type.
  • the media server generates a quick start type push confirmation instruction, including:
  • Step S14039 the media server generates a push parameter of a URL list type according to the initialization segment sequence and/or the media segment sequence to be pushed.
  • Step S14040 The quick start type push confirmation instruction carries the push parameter of the URL list type.
  • sending the quick start type push confirmation instruction includes:
  • the media server sends the quick start type push confirmation instruction to the client by using an MPD response message, wherein the MPD response message includes at least MPD data, and the quick start type push confirmation instruction.
  • the media server generates a quick start type push confirmation instruction, including:
  • the media server determines a push parameter carried in the quick start type push confirmation command according to a predetermined number of the client and/or a historical access result of the client.
  • the method further includes:
  • the media server pushes the segment sequence initialization segment and/or the media segment sequence indicated by the quick start type push confirmation instruction to the client.
  • the MPD request message further includes: the quick start push instruction carried in the MPD request message includes preference parameter information, and the preference parameter includes any one or more of the following attributes : Resolution range, code rate range, media properties, and language.
  • the MPD request message further includes: at least one request parameter, the information of the initialization segment and the media segment sequence includes attributes of a segment requested by the request parameter.
  • the media server receiving the MPD request message sent by the client, and the quick start type push instruction further includes:
  • the MPD request message is received by a get_mpd message of the DASH sub-protocol in the WebSocket, where the JSON key-value pair of the get_mpd message carries a quick-start type push confirmation instruction.
  • the media server sends an MPD response message to the client
  • the quick start type push confirmation instruction further includes:
  • the MPD response message is sent by a new_mpd message of the DASH sub-protocol in the WebSocket, where the JSON key-value pair of the new_mpd message carries a quick-start type push confirmation instruction.
  • the media server pushes information of the initialization segment and the media segment sequence by any one or more of the following: an HTTP/2 MPD response message mode and a new_mpd of the DASH sub-protocol in the WebSocket.
  • the message wherein the HTTP/2 MPD response message carries the quick start type push confirmation command through the Push-Policy header; the new_mpd message of the DASH sub-protocol in WebSockets carries the fast start type push confirmation instruction through the JSON key-value pair form.
  • the media server acquiring the quick start type push instruction push-fast-start directive includes: acquiring the quick start type push instruction by acquiring and parsing the MPD request message, where the MPD request message includes at least the MPD a URI and a quick start type push instruction; the media server generates a fast start type push confirmation command push-fast-start acknowledge.
  • the media server generates a quick start type push confirmation instruction according to the initialization fragment sequence and/or the media segment sequence to be pushed, wherein the push parameter of the quick start type push confirmation instruction may be For URL template URL_TEMPLATE type, and / or numeric NUMBER type, and / or URL list URL_LIST type.
  • the sending the quick start type push confirmation instruction to the client comprises: sending the quick start type push confirmation instruction to the client by using an MPD response message, wherein the MPD The response message is configured to send an MPD request message in response to the client, the MPD response message including at least MPD data and the quick start type push confirmation instruction.
  • the foregoing fast method for starting the streaming media includes:
  • the media server receives a request message sent by the client for acquiring the media presentation description file MPD, where the request information includes at least: a quick start push instruction and an MPD request instruction;
  • the media server generates response information according to the request message, where the response message includes: a push confirmation instruction that determines that the client needs to be started quickly, and MPD data that is obtained by responding to the MPD request instruction;
  • the media server After the media server generates the predicted segment message, the media server pushes the predicted segment message and the response message to the client, so that the client obtains the media content required by the client according to the predicted segment message and the MPD data, wherein the predicted segment The message is a segment message that is actively pushed by the media server and corresponding to the push confirmation command.
  • FIG. 15 is an optional streaming media quick start method according to an embodiment of the present application. As shown in FIG. 15, the method includes:
  • Step 171 Receive an MPD fragment request message from the media client, where the fragment request message includes an MPD request message and a push-fast-start directive.
  • Step 172 Generate a push-fast-start acknowledge parameter according to the prediction of the server, and send an MPD fragment corresponding message to the media client, where the fragment corresponding message includes a push-fast-start directive and an MPD fragment.
  • Step 173 Determine, according to the push-fast-start acknowledge parameter, a sequence of segments that the media client may expect.
  • Step 174 Push a sequence of predicted segments to the media client.
  • FIG. 9A shows an exemplary MPD 700.
  • the MPD was taken from the 2016 ICME Grand Challenge Competition Organizing Committee Sample files provided (MPD files can also be other standard types of DASH MPD files).
  • FIG. 9B shows an exemplary fragment request message 710.
  • the fragment request message 710 includes mpd_uri 711 and fast_start push instructions 712, with no parameters.
  • FIG. 9B-1 shows an exemplary fragment request message 710-1.
  • the fragment request message 710-1 includes an mpd_uri 711-1 and a fast_start push instruction 712-1, which consists of fast-start information and push parameters.
  • FIG. 9C shows an exemplary fragment response message 720.
  • the fragment response message 720 includes an mpd_content 721 and a fast_start push confirmation command 712, including a parameter URL_LIST, that is, a list of information (such as a URL and the like, which does not contain specific data) that the media server wants to push the clip.
  • a parameter URL_LIST that is, a list of information (such as a URL and the like, which does not contain specific data) that the media server wants to push the clip.
  • FIG. 9D illustrates an exemplary interaction flow of media client 110 and media server 120.
  • the interaction process starts in step 731, and the media client 110 sends an MPD request message to the media server 120 through the FDH access engine 113, requests the MPD 700, and tells the media server that a quick start is required.
  • the media server 120 acquires the number of predicted segments and the specific content through the FDH service module 121, and sends an MPD response message to the media client 110, where the MPD response message includes the MPD400 and the push-fast -start acknowledge722.
  • step 733 the media client 110 parses through the FDH-DASH control engine 111 whether the desired segment is in the segment list pushed by the server, if it is waiting to acquire the file content, otherwise, immediately requests the desired segment.
  • the media server transmits a segment request message to the media client 110 in parallel via the service module 121 in step 734.
  • step 735 the media client 110 normally sends a segment request. Steps 733 and 734 can be performed simultaneously to facilitate early decision by the media client.
  • a quick start type push is generated according to the initialization segment sequence and/or the media segment sequence to be pushed.
  • Confirmation instructions including:
  • the media server determines a value K in conjunction with a predetermined number of media clients and/or historical access results of the client, and determines K segment messages corresponding to the value K.
  • the media server loads the value K to the quick start type push confirmation command
  • the media server pushing the initialization fragment sequence and/or the media segment sequence to the client includes: the media server pushing the value K and the K segment messages corresponding to the value K to the Said client.
  • the push confirmation command carries the parameter value K predicted by the media server
  • the predicted segment message is K segment messages
  • the media server generates response information according to the request message, including:
  • the media server loads the predicted parameter value K to the push confirmation instruction, the response information is obtained;
  • the media server pushing the predicted segment message and the response information to the client includes: the media server pushing the parameter value K and K segment messages corresponding to the parameter value K To the client.
  • FIG. 16 is a flowchart of a streaming media quick start method according to an embodiment of the present disclosure
  • FIG. 16 is a network server according to an embodiment of the present disclosure.
  • the media server 120 is a schematic flowchart of the streaming media quick start method 300. As shown in FIG. 16, the process includes the following steps:
  • Step 301 Receive an MPD fragment request message from the media client, where the fragment request message includes MPD request information and a push-fast-start directive;
  • Step 302 Generate a push-fast-start acknowledge parameter value K according to the prediction of the server, and send an MPD fragment response message to the media client, where the fragment response message includes a push-fast-start acknowledge and an MPD fragment.
  • Step 303 Determine, according to the push-fast-start acknowledge parameter value K, a sequence of K segments that the media client may desire to push;
  • Step 304 Push the segment message and the sequence of segments of the K segment sequence to the media client.
  • the push-fast-start acknowledge parameter value K may be predicted according to the prediction result of all the clients of the server. If most of the predictions are successful, the threshold is appropriately lowered. If most of the predictions fail, the threshold is appropriately increased, otherwise It is unchanged (can also be specified by initialization and is not limited to the introduced K value generation method, or combined with parameter decision in the media client push-fast-start directive, etc.).
  • the parameter value K segment sequence guaranteed by the push-fast-start acknowledge may be predicted according to the prediction result of all the clients of the server (may also be specified by initialization and not limited to the K segment sequence specified) method).
  • the fragment message of the K fragment sequence is used to notify the client of the fragment message to be pushed, such as the fragment URL, etc. (or may be notified by other means, such as the push notification method in HTTP/2). Push promises and push notifications in WebSocket, etc.).
  • the media server only needs to push the number K and the K segment sequences in the server according to the push-fast-start directive, and only needs to push-fast-start acknowledge and K segment sequence messages.
  • the method 300 is an exemplary embodiment and can be modified as needed.
  • the following is an exemplary embodiment to illustrate the streaming media quick launch method and parameter values K introduced herein, and their potential applications in some use cases.
  • FIG. 7A shows an exemplary MPD 400.
  • the MPD is taken from the sample files provided by the 2016 ICME Grand Challenge Competition Organizing Committee (MPD files can also be other standard types of DASH MPD files).
  • FIG. 7B shows an exemplary fragment request message 410.
  • the fragment request message 410 includes mpd_uri 411 and fast_start push instructions 412, without parameters.
  • FIG. 7B-1 shows an exemplary fragment request message 410-1.
  • the fragment request message 410-1 includes an mpd_uri 411-1 and a fast_start push instruction 412-1, which consists of fast-start information and push parameters.
  • FIG. 7C shows an exemplary fragment response message 420.
  • the fragment response message 420 includes an mpd_content 421 and a fast_start push confirmation command 412, including a parameter value K, that is, the number of segments that the media server is to push.
  • FIG. 7D illustrates an exemplary interaction flow of media client 110 and media server 120.
  • the interaction process begins in step 431.
  • the media client 110 sends an MPD request message to the media server 120 via the FDH access engine 113, requests the MPD 400, and tells the media server that a quick start is required.
  • the media server 120 acquires the number of predicted segments and the specific content through the FDH service module 121, and sends an MPD response message to the media client 110, where the MPD response message includes the MPD400 and the push-fast -start acknowledge422.
  • the media server 120 service module 121 generates predicted segment information based on the local prediction and MPD information, and generates a sequence of segments to be pushed.
  • the information of the segment to be pushed (the information such as the URL does not contain the specific data) is sent to the media client in parallel.
  • the media client 110 parses through the FDH-DASH control engine 111 whether the desired segment is in the segment message pushed by the server, if it is waiting to acquire the file content, otherwise, immediately requests the desired segment.
  • the media server transmits a segment request message to the media client 110 in parallel via the service module 121 in step 435.
  • the media client 110 normally sends a segment request. Steps 434 and 435 can be performed simultaneously to facilitate early decision by the media client.
  • a quick start type push confirmation is generated according to the initialization segment sequence and/or the media segment sequence to be pushed. Instructions, including:
  • the media server determines an initialization segment sequence and/or a media segment sequence in conjunction with a predetermined number of media clients and/or historical access results of the client.
  • the media server pushing the initialization fragment sequence and/or the media segment sequence to the client comprises: the media server pushing the quick start type push confirmation instruction to the client.
  • the push segment list is the one obtained from the analysis of the push confirmation command.
  • a predicted segment message wherein the media server generates response information according to the request message, including,
  • the pushing, by the media server, the predicted segment message and the response information to the client includes: the media server pushing the push segment list to the client.
  • a quick start type push confirmation is generated according to the initialization segment sequence and/or the media segment sequence to be pushed. Instructions, including:
  • the media server determines an initialization segment sequence and/or a media segment sequence in conjunction with a predetermined number of media clients and/or historical access results of the client.
  • the pushing, by the media server, the sequence of initialization segments and/or the sequence of media segments to the client comprises: the media server pushing a quick start type push confirmation command to the client.
  • the method further includes:
  • the media server will continue to push the sequence of segments corresponding to the information of the initialization segment and the sequence of media segments to the client, wherein the sequence of segments is the media content required by the client.
  • the MPD request message further includes: at least one request parameter, the information of the initialization segment and the media segment sequence includes attributes of a segment requested by the request parameter.
  • the media server pushes information of the initialization segment and the media segment sequence by any one or more of the following: a push notification manner in HTTP/2 and a push content notification manner in the WebSocket .
  • the push segment list is a URL composition of a sequence of segments predicted by the media server.
  • the push segment information is the identifier obtained from the analysis of the push confirmation command.
  • the predicted segment message wherein the media server generates response information according to the request message, including:
  • the media server loads the push segment information to the push confirmation command, the response information is obtained;
  • the pushing, by the media server, the predicted segment message and the response information to the client includes: the media server pushing the push segment information to the client.
  • the push segment column message is composed of one or more URL templates with parameterized traversal predicted by the media server and a compressed parameter list.
  • the method further includes:
  • the media server will continue to push the sequence of segments corresponding to the segment message to the client, where the sequence of segments is the media content required by the client.
  • the predicted segment message includes an attribute of a segment requested by the request parameter.
  • the media server pushes the predicted segment message to the media server by any one or more of the following: a push notification manner in HTTP/2 and a push content in a WebSocket Inform the way.
  • FIG. 15 is a flowchart of a streaming media quick start method according to an embodiment of the present disclosure
  • FIG. 15 is a network server according to an embodiment of the present disclosure.
  • the media server 120 is a schematic flowchart of the streaming media quick start method 600. As shown in FIG. 15, the process includes the following steps:
  • Step 601 Receive an MPD fragment request message from the media client, where the fragment request message includes MPD request information and a push-fast-start directive;
  • Step 602 Generate a push-fast-start acknowledge parameter sement_list according to the prediction of the server, and send an MPD fragment response message to the media client, where the fragment response message includes a push-fast-start acknowledge and an MPD fragment.
  • Step 603 Push the predicted sequence of segments to the media client.
  • the push-fast-start acknowledge parameter URL_LIST may be predicted according to all client client prediction results (may also be specified by initialization and is not limited to the introduced segment sequence designation method).
  • the media server only needs to specify a push segment sequence in the media server according to the push-fast-start directive, and only needs to pass the parameter URL_LIST list in the push-fast-start acknowledge to enable the client to quickly make decisions and reduce
  • the blindness of the server driver and the irrationality of the client driver realize the transparency of the FDH-DASH to the media client, and achieve the purpose of fast startup.
  • the method 600 is an exemplary embodiment and can be modified as needed.
  • FIG. 12 is a flowchart of a streaming media quick startup method according to an embodiment of the present disclosure
  • FIG. 12 is a network server according to an embodiment of the present disclosure.
  • the media server 120 is a schematic flowchart of the streaming media quick start method 900. As shown in FIG. 12, the process includes the following steps:
  • Step 901 Receive an MPD fragment request message from the media client, where the fragment request message includes MPD request information and a push-fast-start directive.
  • Step 902 Generate a push-fast-start acknowledge parameter URL_TEMPLATE according to the prediction of the server end (or by combining the push-fast-start directive parameter pushed by the media client, that is, the client preference), and send the URL_TEMPLATE to the media client.
  • An MPD fragment response message wherein the fragment response message includes a push-fast-start acknowledge and an MPD fragment;
  • Step 903 Push the predicted sequence of fragments to the media client.
  • the push-fast-start acknowledge parameter URL_TEMPLATE may be predicted according to all client client prediction results (may also be specified by initialization and is not limited to the introduced segment sequence designation method).
  • the media server only needs to specify a push segment sequence in the media server according to the push-fast-start directive, and only needs to pass the parameter URL_TEMPLATE list in the push-fast-start acknowledge to enable the client to quickly make decisions and reduce
  • the blindness of the server driver, the irrationality of the client driver, the transparency of the FDH-DASH to the media client, the goal of fast startup is well achieved, and the push-fast-start acknowledge is more reasonable.
  • Compressed transmission making the transmission parameters more in line with the specifications.
  • the method 900 is an exemplary embodiment and can be modified as needed.
  • FIG. 9A shows an exemplary MPD 1000.
  • the MPD is taken from the sample files provided by the 2016 ICME Grand Challenge Competition Organizing Committee (MPD files can also be other standard types of DASH MPD files).
  • FIG. 9B shows an exemplary fragment request message 1010.
  • Fragment request message 1010 includes mpd_uri 1011 and fast_start push instructions 1012, with no parameters.
  • FIG. 9B-1 shows an exemplary fragment request message 1010-1.
  • the fragment request message 1010-1 includes an mpd_uri 1011-1 and a fast_start push instruction 1012-1, which consists of fast-start information and push parameters.
  • FIG. 9C shows an exemplary fragment response message 1020.
  • the fragment response message 1020 includes an mpd_content 1021 and a fast_start push confirmation command 1012, including a parameter URL_TEMPLATE, that is, a form of information list compression of the media server to push the clip (here may be a defined format in the FDH-DASH standard, etc.).
  • a parameter URL_TEMPLATE that is, a form of information list compression of the media server to push the clip (here may be a defined format in the FDH-DASH standard, etc.).
  • FIG. 9D illustrates an exemplary interaction flow of media client 110 and media server 120.
  • the interaction process starts in step 1031, and the media client 110 sends an MPD request message to the media server 120 through the FDH access engine 113, requests the MPD 1000, and tells the media server that a quick start is required.
  • the media server 120 acquires the number of predicted segments and the specific content through the FDH service module 121 to the media client. 110 sends an MPD response message, the MPD response message including MPD 400 and push-fast-start acknowledge 1022.
  • step 1033 the media client 110 parses through the FDH-DASH control engine 111 whether the required segment is in the segment list pushed by the server, if it is waiting to acquire the file content, otherwise, immediately requests the desired segment.
  • step 1034 the media server sends a segment request message to the media client 110 in parallel via the service module 121.
  • step 1035 the media client 110 normally sends a segment request. Steps 1033 and 1034 can be performed simultaneously to facilitate early decision by the media client.
  • FIG. 13 is a schematic diagram of an embodiment of a computer system or network device 1200.
  • the network device 1200 can be implemented for any suitable device, such as a web server, a media server (eg, media server 120) or a client device (eg, media client 110), and the like.
  • the network device 1200 is capable of receiving, processing, and transmitting messages such as segment request messages/fragment response messages/fragments from and to the network.
  • the network device 1200 can include one or more ingress terminals 1210 coupled to a receiver 1211, wherein the receiver 1211 can be configured to receive MPDs and/or segments from other network nodes through the FDH channel.
  • the network device 1200 can also include one or more egress terminals 1230 coupled to the transmitter 1231, wherein the transmitter 1231 can transmit MPDs and/or segments to other network nodes via the FDH channel.
  • the network device 1200 can also include a processor 1220, wherein the processor 1220 is linked to the receiver 1211, configured to process the segment or determine to send the segment to that network node.
  • the processor 1220 can be implemented by hardware, software, and a combination thereof.
  • the processor 1220 can be implemented with one or more CPU chips, programmable gate arrays, application specific integrated circuits, and/or digital signal processors.
  • the process 1220 can be used to implement any of the functional modules or units described herein, for example, the FDH-DASH control engine 111, the FDH access engine 113, the media engine 112, the FDH service module 121, the parsing engine 122, the media player 1221, or the present Any other functional component known to those of ordinary skill in the art, or any combination thereof.
  • the media player 1221 can be an application running on the processor 1220, configured to decode and play the media segment.
  • the network device 1200 can also include at least one memory 1222.
  • the memory 1222 can be configured to store the MPD 1223 and the segment 1224.
  • the MPD 1223 and the segment 1224 can be stored and packaged in various forms as described above.
  • the MPD 1223 can be the MPD 300 (or other standard MPD file defined in MPEG-DASH).
  • the segment 1224 and the MPD 1223 may be stored as separate files or may be stored in a single file.
  • the network device 1200 there may be two-way traffic handled by the network device 1200, so some ports may both receive and send messages.
  • the inlet end 1210 and the outlet end 1230 can be co-located or can recognize different functions of the same port that begins with the transceiver connection.
  • One or more of the processor 1220, the memory 1222, the receiver 1211, and the transmitter 1231 may also be configured to at least partially implement or support any of the methods and implementations described above.
  • portions of the technical solutions of the present disclosure that contribute substantially or to the prior art may be embodied in the form of a software product stored in a storage medium (eg, ROM/RAM, disk, CD-ROM, including a number of instructions to make a terminal device (can be a mobile phone, a computer, The server, or network device, etc.) performs the methods described in various embodiments of the present disclosure.
  • a storage medium eg, ROM/RAM, disk, CD-ROM, including a number of instructions to make a terminal device (can be a mobile phone, a computer, The server, or network device, etc.) performs the methods described in various embodiments of the present disclosure.
  • a streaming media quick-starting device is also provided, which is used to implement the above-mentioned embodiments and preferred embodiments, and has not been described again.
  • the term “module” may implement a combination of software and/or hardware of a predetermined function.
  • the apparatus described in the following embodiments is preferably implemented in software, hardware, or a combination of software and hardware, is also possible and contemplated.
  • FIG. 17 is a structural block diagram of a streaming media quick-starting apparatus according to an embodiment of the present disclosure. As shown in FIG. 17, the apparatus includes:
  • the access engine module 170 is configured to send a quick start type push instruction to the media server, wherein the quick start type push instruction is used to instruct the media server to push the initialization fragment sequence and/or the media segment sequence.
  • the first receiving module 172 is configured to receive, by the client, a quick start type push confirmation instruction returned by the media server.
  • the control engine module 174 is configured to obtain, by the client, information of an initialization segment and/or a sequence of media segments to be pushed by the media server according to the quick start type push confirmation command.
  • the streaming media quick-starting device includes: a generating engine module configured to generate a quick-type push instruction push-fast-start directive, and an access engine module configured to send to the media server a quick start type push instruction, wherein the quick start type push instruction is used to notify the media server to push an initialization segment sequence and/or a media segment sequence; and the first receiving module is configured to obtain the quick start type push by the client Confirm the command push-fast-start acknowledge.
  • a control engine module configured to: the client obtains information about an initialization segment and a sequence of media segments to be pushed by the server according to the quick start type push confirmation command.
  • the streaming media quick launch device includes: generating an engine module, configured to generate a quick start push command by the client: the access engine module, configured to send the client to obtain a media presentation description file MPD
  • the request message to the media server, wherein the request information at least includes: a quick start push instruction and an MPD request instruction; and a receiving module configured to receive, by the client, a response message returned by the media server according to the request message, where The response message includes: a push confirmation instruction that the client needs to be started quickly, MPD data obtained in response to the MPD request instruction; and a control engine module configured to: after the client obtains the predicted fragment message, Acquiring the media content required by the client according to the predicted segment message and the MPD data, wherein the predicted segment message is a segment message that is actively pushed by the media server and corresponding to the push confirmation instruction.
  • the foregoing generation engine module may be the generation engine in the method embodiment, and the access engine module may be the access engine module in the method embodiment, and the control engine module may be the control engine in the method embodiment.
  • the foregoing first receiving module further includes:
  • the first receiving submodule is configured to receive, by the client, an MPD response message returned by the media server, where the MPD response message includes at least MPD data, and the quick start type push confirmation instruction.
  • control engine module includes:
  • a first confirmation module configured to carry a push parameter of a URL template URL_TEMPLATE type in the quick start type push confirmation instruction
  • the first obtaining module is configured to parse the URL template push parameter by the client, and obtain information about an initialization segment sequence and/or a media segment sequence to be pushed by the media server.
  • control engine module includes:
  • a second confirmation module configured to carry a push parameter of a value NUMBER in the quick start type push confirmation command
  • the second obtaining module is configured to parse the value push parameter K of the client, and receive the subsequent K push commitment PUSH_PROMISE frames, and acquire information of the initialization segment sequence and/or the media segment sequence to be pushed by the media server.
  • control engine module includes:
  • a third confirmation module configured to carry a push parameter of a URL list URL_LIST type in the quick start type push confirmation instruction
  • the third obtaining module is configured to parse the URL list push parameter by the client, and obtain information about an initialization segment sequence and/or a media segment sequence to be pushed by the media server.
  • the device further includes:
  • a fourth confirmation module configured to parse the MPD data by the client, and determine information about an initialization segment and/or a sequence of media segments that the media server needs to push;
  • a second receiving module configured to: if the information of the initialization segment and/or the media segment sequence to be pushed by the acquired media server is equal to the determined information of the initialization segment and/or the media segment sequence that the media server needs to push,
  • the client receives an initialization fragment sequence and/or a sequence of media segments pushed by the media server.
  • control engine module includes: in addition to all the modules shown in FIG. 17, the control engine module includes:
  • a sending module configured to send the quick start type push instruction to the media server by using an MPD request message, where the MPD request message is used to request the media server to send an MPD response message, where the MPD response message at least includes MPD data and quick start type push confirmation instructions.
  • the engine module includes: an confirming module, configured to: when the push confirmation command carries the parameter value K predicted by the media server, the client confirms from the push The parameter value K is parsed in the instruction, and the K segment messages corresponding to the parameter value K pushed by the media server are received.
  • the first receiving module further includes: a first acquiring module, configured to acquire the quick start type push confirmation command by acquiring and parsing an MPD response message, where the MPD response message includes at least an MPD Data and quick start type push confirmation instructions.
  • the foregoing control engine module includes:
  • An initialization module configured to initialize information of a sequence of segments and/or a sequence of media segments
  • a second obtaining module configured to: when the push parameter PUSH_PARAMS of the quick start type push command is of a value NUMBER type, the client obtains a media server by parsing the value K and the subsequent K push commitment PUSH_PROMISE frames Pushing information of the initialization fragment sequence and/or the media fragment sequence;
  • a third obtaining module configured to: when the push parameter PUSH_PARAMS of the quick start type push command is of a URL list URL_LIST type, the client parses the URL list, and obtains a push initialization segment sequence and/or a media segment that the media server wants Sequence information.
  • a first obtaining module configured to acquire the quick start type push confirmation instruction by acquiring and parsing an MPD response message, where the MPD response message includes at least MPD data and a quick start type push confirmation instruction
  • control engine module further includes:
  • a first parsing engine module configured to parse the MPD data by the client, to obtain media information of media content required by the client;
  • a first detecting module configured to detect, by the client, whether the media information is hit in the K segment messages, where the segment message is a URL address;
  • a first obtaining module configured to: if the media message is successfully hit in the K segment messages, the client acquires a sequence of segments corresponding to the predicted segment message that is sent by the media server, where The sequence of fragments is the media content required by the client.
  • the foregoing second obtaining module includes:
  • a second receiving module configured to: the client parses the parameter value K from the quick start type push command, and receives K segment messages corresponding to the parameter value K pushed by the media server;
  • a second parsing engine module configured to parse the MPD data by the client, to obtain media information of media content required by the client;
  • a second detecting module configured to detect, by the client, whether the media information is hit in the K fragment message, where the fragment message is a URL address;
  • a fourth obtaining module configured to: if the media message is successfully hit in the K segment messages, the client acquires information of an initialization segment and a sequence of media segments to be pushed by the media server.
  • the client if the media message fails in the K segment message, the client initiates a request to acquire the required media content, or cancels the media server to push the media content. Conversation.
  • the push segment list is the one obtained from the analysis of the push confirmation command.
  • the control engine module includes:
  • the client parses the MPD data to obtain media information of media content required by the client;
  • a second detecting module configured to: the client detects whether the media information is hit in the push segment list;
  • a second obtaining module configured to: if the media message is successfully hit in the push segment list, the client acquires a sequence of segments corresponding to the push segment list that is pushed by the media server, where the segment The sequence is the media content required by the client.
  • FIG. 18 is a structural block diagram of a streaming media quick-starting apparatus according to an embodiment of the present disclosure. As shown in FIG. 18, the apparatus includes:
  • the service module 180 is configured to receive, by the media server, a quick start type push instruction sent by the client.
  • the generation engine module 182 is configured to generate, by the media server, a quick start type push confirmation command based on the initialization segment and/or the media segment sequence to be pushed.
  • the first pushing module 184 is configured to send, by the media server, the quick start type push confirmation instruction to the client.
  • the apparatus includes: a service module configured to obtain a quick start type push instruction push-fast-start directive, and a generation engine module configured to generate a quick start type push confirmation for the media server The push-fast-start acknowledge command, wherein the quick-start type push confirmation command is used to notify the client of the push initialization segment sequence and/or the media segment sequence to be pushed; the first push module is configured to send to the client The quick start type push confirmation command.
  • the streaming media quick-starting device may include: a service module, configured to receive, by the media server, a request message sent by the client for acquiring the media presentation description file MPD, where the request information is at least
  • the method includes: a quick start push instruction and an MPD request instruction; a generation engine module, wherein the media server generates response information according to the request message, wherein the response message includes: a push confirmation instruction that determines that the client needs to be started quickly
  • the parsing engine module is configured to: after the media server generates the predicted segment message, the media server pushes the predicted segment message and the response information to the Determining, by the client, the media content required by the client according to the predicted segment message and the MPD data, where the predicted segment message is actively pushed by the media server Push the segment message corresponding to the confirmation command.
  • the service module may be the service module in the method embodiment, and the generation engine module may be the generation engine in the method embodiment, and the analysis engine module may be the analysis engine in the method embodiment.
  • a streaming media quick-start system is also provided, which is configured to implement the foregoing embodiments and preferred embodiments, and has not been described again.
  • FIG. 19 is a structural block diagram of a streaming media quick-start system according to an embodiment of the present disclosure. As shown in FIG. 19, the system includes:
  • the client 190 is configured to send the quick start type push instruction to the media server, and receive a quick start type push confirmation instruction returned by the media server, and obtain an initialization fragment to be pushed by the server according to the quick start type push confirmation instruction. And/or information of a sequence of media segments, wherein the quick start type push instruction is used to instruct the media server to push a sequence of initialization segments and/or a sequence of media segments;
  • the media server 192 is configured to receive, by the client, the quick start type push instruction sent by the client, generate a quick start type push confirmation instruction, and send the quick start type push to the client. Acknowledging the instruction and pushing the initialization fragment sequence and/or the media fragment sequence to the client.
  • the system includes: a client configured to generate a fast-start type push-push-fast-start directive, and send the quick-start type push command to the media server to obtain a quick start
  • the fast-start type push confirmation command acquires information of the initialization segment and the media segment sequence to be pushed by the server, wherein the quick-start type push command is used to notify the
  • the media server pushes an initialization fragment sequence and/or a media fragment sequence
  • the media server communicates with the client, and is configured to receive the quick start type push instruction sent by the client, and send the location to the client
  • the quick start type pushes the confirmation command and pushes the initialization fragment sequence and/or the media segment sequence to the client.
  • the streaming media quick start system includes: a client, generating a quick start push instruction, and sending a request message for acquiring the media presentation description file MPD to the media server to the media server, After the predicted segment message, acquiring the required media content according to the predicted segment message and the MPD data, wherein the request information at least includes: a quick start push instruction and an MPD request instruction, the predicted segment message a segment message that is actively pushed by the media server and corresponding to the push confirmation command.
  • a media server configured to receive, by the client, a request message for acquiring a media presentation description file MPD sent by the client, and generating response information according to the request message, after generating the predicted segment message, The predicted segment message and the response information are pushed to the client.
  • each of the above modules may be implemented by software or hardware.
  • the foregoing may be implemented by, but not limited to, the foregoing modules are all located in the same processor; or, the modules are located in multiple In the processor.
  • Embodiments of the present disclosure also provide a storage medium including a stored program, wherein the program runs to perform the method of any of the above.
  • the foregoing storage medium may be configured to store program code for performing the following steps:
  • the client sends a quick start type push instruction to the media server, where the quick start type push instruction is used to instruct the media server to push the initialization fragment sequence and/or the media segment sequence.
  • the client receives a quick start type push confirmation instruction returned by the media server.
  • the client acquires information about an initialization segment and/or a sequence of media segments to be pushed by the media server according to the quick start type push confirmation command.
  • the storage medium is further configured to store program code for performing the step of: the client transmitting the quick start type push instruction to the media server comprises: the client transmitting the fast to the media server by using an MPD request message Start type push command.
  • the storage medium is further configured to store program code for performing the following steps: the client receiving the quick start type push confirmation instruction comprises: the client receiving an MPD response message returned by the media server, The MPD response message includes at least MPD data, and the quick start type push confirmation command.
  • the storage medium is further configured to store program code for performing the step of: obtaining, by the client, the information of the initialization segment and/or the sequence of media segments to be pushed by the server according to the quick start type push confirmation instruction.
  • the method includes: the fast start type push confirmation command carries a push parameter of a URL template type; the client parses the URL template push parameter, and acquires information of an initialization segment sequence and/or a media segment sequence to be pushed by the media server.
  • the storage medium is further configured to store program code for performing the step of: obtaining, by the client, the information of the initialization segment and/or the sequence of media segments to be pushed by the server according to the quick start type push confirmation instruction.
  • the method includes: the fast start type push confirmation command carries a push parameter of a numeric type; the client parses the value push parameter K, and receives the subsequent K push promise PUSH_PROMISE frames, and acquires an initialization segment to be pushed by the media server Information about sequences and/or sequence of media segments.
  • the storage medium is further configured to store program code for performing the step of: obtaining, by the client, the information of the initialization segment and/or the sequence of media segments to be pushed by the server according to the quick start type push confirmation instruction.
  • the method includes: the quick start type push confirmation command carries a push parameter of a URL list type; the client parses the URL list push parameter, and acquires information of an initialization segment sequence and/or a media segment sequence to be pushed by the media server.
  • the storage medium is further configured to store program code for performing the step of: the client parsing the MPD data, determining information of an initialization segment and/or a sequence of media segments that need to be pushed by the media server; And the information of the initialization segment and/or the media segment sequence to be pushed by the obtained media server is equivalent to the determined information of the initialization segment and/or the sequence of the media segment that is required to be pushed by the media server, and the client receives the media server. Pushed initialization fragment sequence and/or media fragment sequence.
  • the storage medium is further configured to store program code for performing the step of: the client parsing the MPD data, determining information of an initialization segment and/or a sequence of media segments that need to be pushed by the media server;
  • the information of the initialization segment and/or the media segment sequence to be pushed by the obtained media server is different from the determined information of the initialization segment and/or the media segment sequence that needs to be pushed by the media server, and the client cancels the media server.
  • Pushed initialization fragment sequence and/or media fragment sequence are further configured to store program code for performing the step of: the client parsing the MPD data, determining information of an initialization segment and/or a sequence of media segments that need to be pushed by the media server;
  • the information of the initialization segment and/or the media segment sequence to be pushed by the obtained media server is different from the determined information of the initialization segment and/or the media segment sequence that needs to be pushed by the media server, and the client cancels the media server.
  • the storage medium is further configured to store program code for performing the following steps: the client to the medium
  • the body server sends a request to determine the sequence of initialization fragments and/or media segments that need to be pushed by the media server.
  • the storage medium is further configured to store program code for performing the following steps: the quick start push instruction carried in the MPD request message includes preference parameter information, and the preference parameter includes any one or more of the following attributes : Resolution range, code rate range, media properties, and language.
  • the storage medium is further configured to store program code for: receiving, by the client, the MPD response message returned by the media server, and the quick start type push confirmation instruction, further comprising: The /2 packet mode receives the MPD response message, where the Accept-Push-Policy header of the HTTP/2 packet carries a quick start type push confirmation instruction; or receives the new_mpd message of the DASH sub-protocol in the WebSocket.
  • the MPD response message wherein the JSON key value pair of the new_mpd message carries a quick start type push confirmation command.
  • the storage medium is further configured to store program code for performing the step of: the client transmitting an MPD request message to the media server, and the quick start type push instruction, further comprising: Sending the MPD request message in a packet manner, where the Accept-Push-Policy header of the HTTP/2 packet carries a quick start type push instruction; or the MPD request message is sent through a get_mpd message of a DASH sub-protocol in a WebSocket
  • the JSON key value pair of the get_mpd message carries a quick start type push confirmation instruction.
  • the storage medium is further configured to store program code for performing the following steps: the client obtains the MPD response message from the media server by any one or more of the following: HTTP/2 The MPD response packet mode and the new_mpd message of the DASH sub-protocol in the WebSocket, wherein the HTTP/2 MPD response packet carries the quick-start type push confirmation command through the Push-Policy header; the new_mpd message of the DASH sub-protocol in the WebSockets passes the JSON key value.
  • the form carries a quick start type push confirmation command.
  • the storage medium is further configured to store program code for performing the following steps: the client sends the MPD request message by any one or more of the following: HTTP/2 request message mode and WebSocket
  • HTTP/2 request message mode and WebSocket
  • the get_mpd message of the DASH sub-protocol wherein the HTTP/2 request message carries the quick start type push instruction through the Accept-Push-Policy header
  • the get_mpd message of the DASH sub-protocol in WebSockets carries the fast start type push instruction through the JSON key-value pair form.
  • the storage medium is further configured to store program code for performing the following steps: the media server receives a quick start type push instruction sent by the client, wherein the quick start type push instruction is used to indicate the media server push Initializing a sequence of segments and/or a sequence of media segments; the media server generating a quick start type push confirmation command according to an initialization segment and/or a sequence of media segments to be pushed; the media server transmitting the quick start type to the client Push confirmation command.
  • the storage medium is further configured to store program code for performing the following steps: the media server receiving the quick start type push instruction comprises: the media server receiving an MPD request message sent by the client, the MPD request message The quick start type push instruction is included in the middle.
  • the storage medium is further configured to store program code for performing the step of: the media server generating a quick start type push confirmation instruction, comprising: the media server according to an initialization fragment sequence and/or media segment to be pushed The sequence generates a push parameter of a URL template type; the quick start type push confirmation command carries a push parameter of the URL template type.
  • the storage medium is further configured to store program code for performing the step of: the media server generating a quick start type push confirmation instruction, comprising: the media server according to an initialization fragment sequence and/or media segment to be pushed The sequence generates a push parameter of a numeric type; the push-type confirmation command carries the push parameter of the numeric type.
  • the storage medium is further configured to store program code for performing the step of: the media server generating a quick start type push confirmation instruction, comprising: the media server according to an initialization fragment sequence and/or media segment to be pushed The sequence generates a push parameter of a URL list type; the quick start type push confirmation command carries a push parameter of the URL list type.
  • the storage medium is further configured to store program code for performing the following steps: transmitting the quick start type push confirmation instruction comprises: the media server transmitting the quick start type to the client by using an MPD response message Pushing an acknowledgement instruction, wherein the MPD response message includes at least MPD data, and the quick start type push confirmation command.
  • the storage medium is further configured to store program code for performing the step of: the media server generating a quick start type push confirmation instruction, comprising: the media server according to a predetermined number of the client and/or the The result of the historical access of the client determines the push parameter carried in the quick start type push confirmation command.
  • the storage medium is further configured to store program code for performing the following steps: after the media server sends the quick start type push confirmation instruction to the client, the method further comprises: the media server A segment sequence initialization segment and/or a media segment sequence indicated by the quick start type push confirmation command is pushed to the client.
  • the storage medium is further configured to store program code for performing the following steps: the quick start push instruction carried in the MPD request message includes preference parameter information, and the preference parameter includes any one or more of the following attributes : Resolution range, code rate range, media properties, and language.
  • the storage medium is further configured to store program code for performing the following steps: the media server pushes information of the initialization segment and the sequence of media segments by any one or more of the following: an HTTP/2 MPD response report The new_mpd message of the DASH sub-protocol in the text mode and the WebSocket, wherein the HTTP/2 MPD response message carries the quick start type push confirmation command through the Push-Policy header; the new_mpd message of the DASH sub-protocol in the WebSockets is carried by the JSON key-value pair Quick start type push confirmation command.
  • the storage medium is further configured to store program code for performing the following steps: the media server receiving the MPD request message sent by the client, and the quick start type push instruction, further comprising: The packet mode receives the MPD request message, where the Accept-Push-Policy header of the HTTP/2 packet carries the fast The quick start type push instruction; or, the MPD request message is received by a get_mpd message of the DASH sub-protocol in the WebSocket, wherein the JSON key value pair of the get_mpd message carries a quick start type push confirmation instruction.
  • the storage medium is further configured to store program code for: transmitting, by the media server, the MPD response message to the client, and the quick start type push confirmation instruction, further comprising: Sending the MPD response message in the packet mode, where the Accept-Push-Policy header of the HTTP/2 packet carries a quick start type push confirmation instruction; or the MPD is sent by a new_mpd message of the DASH sub-protocol in the WebSocket And a response message, wherein the JSON key value pair of the new_mpd message carries a quick start type push confirmation instruction.
  • the storage medium is further configured to store program code for performing the following steps: the client generates a quick start type push instruction push-fast-start directive; and sends the quick start type push instruction to the media server, where The quick start type push instruction is used to notify the media server to push an initialization fragment sequence and/or a media segment sequence; the client obtains a quick start type push confirmation instruction push-fast-start acknowledge; the client is according to the fast
  • the startup type push confirmation command acquires information of the initialization segment and the media segment sequence to be pushed by the server.
  • the storage medium is further configured to store program code for performing the following steps: the obtaining, by the client, the quick start type push confirmation instruction comprises: obtaining the quick start type push confirmation by acquiring and parsing an MPD response message The instruction, the MPD response message includes at least MPD data and a quick start type push confirmation instruction.
  • the storage medium is further configured to store program code for performing the step of: obtaining, by the client, information of the initialization segment and the sequence of media segments to be pushed by the server according to the quick start type push confirmation instruction:
  • the push parameter PUSH_PARAMS of the quick start type push instruction is of the URL template URL_TEMPLATE type
  • the client parses the URL template, and obtains information about the push initialization fragment sequence and/or the media segment sequence that the media server is to be
  • the push parameter PUSH_PARAMS of the start type push instruction is of the value NUMBER type
  • the client obtains the push initialization fragment sequence and/or the media segment sequence of the media server by parsing the value K and the subsequent K push commitment PUSH_PROMISE frames.
  • the client parses the URL list to obtain information of a push initialization segment sequence and/or a media segment sequence that the media server is to request.
  • the storage medium is further configured to store program code for performing the following steps: in the case where the push parameter PUSH_PARAMS of the quick start type push instruction is of the value NUMBER type, the client parses the value K and subsequent The K push commitment PUSH_PROMISE frames, the information of the push initialization segment sequence and/or the media segment sequence that the media server is to be obtained, including: the client parsing the parameter value K from the quick start type push instruction, and Receiving K fragment messages corresponding to the parameter value K pushed by the media server; the client parsing the MPD data to obtain media information of the media content required by the client; the client detecting the Whether the media information is hit in the K segment messages, the segment message is a URL address; if the media message is successfully hit in the K segment messages, the client acquires an initialization segment to be pushed by the media server And information about the sequence of media fragments.
  • the storage medium is further configured to store program code for performing the step of: if the media message fails to hit the K segment message, the client initiates a request to obtain the required media content And canceling the session in which the media server pushes the media content, or the client initiates a request to acquire the required media content and stores information of a sequence of push initialization segments and/or a sequence of media segments that the media server is to request.
  • the storage medium is further configured to store program code for performing the following steps: in a case where the push parameter PUSH_PARAMS of the quick start type push instruction is of a URL template URL_TEMPLATE type, the client parses the URL template, and obtains
  • the information that the media server will push the initialization fragment sequence and/or the media segment sequence includes: the client parses the MPD data to obtain media information of the media content required by the client; and the client detects the media Whether the server initiates the information of the initialization fragment sequence and/or the media fragment sequence to hit the media information; if the information of the push initialization fragment sequence and/or the media fragment sequence that the media server is about to hit the media message succeeds, obtain The media server will push the information of the initialization fragment sequence and/or the media fragment sequence.
  • the storage medium is further configured to store program code for performing the step of: if the information of the push initialization fragment sequence and/or the sequence of media segments to be hit by the media server fails to hit the media message, the client Ending a request to acquire the required media content and canceling a session in which the media server pushes the media content, or the client initiates a request to acquire the required media content and stores a sequence of push initialization segments that the media server is to request And/or information about the sequence of media segments.
  • the storage medium is further configured to store program code for performing the following steps: in a case where the push parameter PUSH_PARAMS of the quick start type push instruction is of a URL list URL_LIST type, the client parses the URL list, and obtains The media server will push information of the initialization fragment sequence and/or the media segment sequence, including: the client parses the MPD data to obtain media information of the media content required by the client; the client detects the media Whether the server initiates the information of the initialization fragment sequence and/or the media fragment sequence to hit the media information; if the information of the push initialization fragment sequence and/or the media fragment sequence that the media server is about to hit the media message succeeds, obtain The media server will push the information of the initialization fragment sequence and/or the media fragment sequence.
  • the storage medium is further configured to store program code for performing the step of: if the information of the push initialization fragment sequence and/or the sequence of media segments to be hit by the media server fails to hit the media message, the client Ending a request to acquire the required media content and canceling a session in which the media server pushes the media content, or the client initiates a request to acquire the required media content and stores a sequence of push initialization segments that the media server is to request And/or information about the sequence of media segments.
  • the storage medium is further configured to store program code for performing the following steps: in the case where the MPD request message further includes: at least one request parameter, the initialization segment and the sequence of media segments to be pushed by the server
  • the information includes attributes of the segments of the MPD request message.
  • the storage medium is further configured to store program code for performing the following steps: the client is as follows
  • the information of the initialization segment and the sequence of media segments to be pushed by the server is obtained from the media server in any one or more manners: a push notification manner in HTTP/2 and a push content notification method in WebSocket.
  • the storage medium is further configured to store program code for performing the step of: the client transmitting the MPD request message by any one or more of the following: an extension header of the HTTP/2 request message The key-value pair form and the JSON key-value pair form in the WebSocket's frame.
  • the above storage medium may be configured to store program code for performing the following steps: the media server obtains a quick start type push instruction push-fast-start directive; the media server generates a quick start type push confirmation instruction push-fast-start acknowledge,
  • the quick start type push confirmation command is used to notify the client of the push initialization segment sequence and/or the media segment sequence to be pushed; send the quick start type push confirmation command to the client; and push the client to the client Initialize the sequence of fragments and/or sequences of media fragments.
  • the storage medium is further configured to store program code for performing the following steps: the media server obtaining the quick start type push instruction push-fast-start directive includes: obtaining the quick start type push by acquiring and parsing the MPD request message The instruction, the MPD request message includes at least an MPD URI and a quick start type push instruction.
  • the storage medium is further configured to store program code for performing the following steps: the media server generates a quick start type push confirmation command push-fast-start acknowledge: the media server is based on the sequence of initialization segments to be pushed and And/or the media segment sequence, generating a quick start type push confirmation instruction, wherein the push parameter of the quick start type push confirmation instruction may be a URL template URL_TEMPLATE type, and/or a value NUMBER type, and/or a URL list URL_LIST type.
  • the storage medium is further configured to store program code for performing the following steps: in the case where the push parameter of the quick start type push confirmation instruction is of the value NUMBER type, according to the sequence of initialization segments to be pushed and/or a media segment sequence, generating a quick start type push confirmation instruction, comprising: the media server determining a value K according to a predetermined number of media clients and/or a history access result of the client, and determining K corresponding to the value K a fragment message; the media server loading the value K to the quick start type push confirmation instruction; wherein the media server pushing the initialization fragment sequence and/or the media fragment sequence to the client comprises: The media server pushes the value K and the K segment messages corresponding to the value K to the client.
  • the storage medium is further arranged to store program code for performing the following steps: in case the push parameter of the quick start type push confirmation instruction is a URL template, according to the initialization fragment sequence and/or media to be pushed a sequence of fragments, generating a quick start type push confirmation instruction, comprising: determining, by the media server, a sequence of initialization segments and/or a sequence of media segments in conjunction with a predetermined number of media clients and/or historical access results of the client; the media server The initialization fragment sequence and/or the media fragment sequence is loaded to the quick start type push confirmation instruction; wherein the media server pushing the initialization fragment sequence and/or the media fragment sequence to the client comprises: Media service The server pushes the quick start type push confirmation command to the client.
  • the storage medium is further configured to store program code for performing the following steps: in case the push parameter of the quick start type push confirmation instruction is a URL list, according to the initialization fragment sequence and/or media to be pushed a sequence of fragments, generating a quick start type push confirmation instruction, comprising: determining, by the media server, a sequence of initialization segments and/or a sequence of media segments in conjunction with a predetermined number of media clients and/or historical access results of the client; the media server The initialization fragment sequence and/or the media fragment sequence is loaded to the quick start type push confirmation instruction; wherein the media server pushing the initialization fragment sequence and/or the media fragment sequence to the client comprises: The media server pushes a quick launch type push confirmation command to the client.
  • the storage medium is further configured to store program code for performing the following steps: after the media server pushes the information of the initialization segment and the sequence of media segments to the client, the method further includes: The media server will continue to push the sequence of segments corresponding to the information of the initialization segment and the sequence of media segments to the client, wherein the sequence of segments is the media content required by the client.
  • the storage medium is further configured to store program code for performing the following steps: in the case that the MPD request message further includes: at least one request parameter, the information of the initialization segment and the media segment sequence includes a request parameter The attribute of the requested fragment.
  • the storage medium is further configured to store program code for performing the step of: pushing the information of the initialization segment and the sequence of media segments by any one or more of the following: push notification in HTTP/2 The way and the way to tell the push content in WebSocket.
  • the storage medium is further arranged to store program code for performing the steps of: the client parsing the parameter value K from the push confirmation command and receiving K fragment messages corresponding to the parameter value K pushed by the media server.
  • the storage medium is further configured to store program code for performing the following steps: the client parses the MPD data to obtain media information of the media content required by the client; and the client detects whether the K segment message hits the media information, The fragment message is a URL address; if the hit media message succeeds in the K segment messages, the client obtains a sequence of segments corresponding to the predicted segment message pushed by the media server, wherein the segment sequence is the media content required by the client.
  • the storage medium is further configured to store program code for performing the steps of: if the hit media message fails in the K segment messages, the client initiates a request to obtain the required media content, or cancels the media server to push the media content Conversation.
  • the storage medium is further configured to store program code for performing the following steps: in the case that the push confirmation instruction carries the push segment list predicted by the media server, the push segment list is obtained from the analysis of the push confirmation instruction.
  • the predicted segment message wherein the media content required by the client is obtained according to the predicted segment message and the MPD data, including: the client parses the MPD data, and obtains media information of the media content required by the client; and the client detects the push segment list. Whether to hit the media information; if the hit media message succeeds in the push segment list, the client obtains a sequence of segments corresponding to the push segment list pushed by the media server, wherein the segment sequence is the media content required by the client.
  • the storage medium is further arranged to store program code for performing the following steps: if the list of push segments is The hit media message fails, the client initiates a request to obtain the required media content, or cancels the session of the media server to push the media content.
  • the storage medium is further arranged to store program code for performing the step of: the push segment list is a URL composition of the sequence of segments predicted by the media server.
  • the storage medium is further configured to store program code for performing the following steps: in the case that the push confirmation instruction carries the push segment information predicted by the media server, the push segment information is obtained from the analysis of the push confirmation instruction.
  • the predicted segment message wherein the media content required by the client is obtained according to the predicted segment message and the MPD data, including: the client parses the MPD data, and obtains media information of the media content required by the client; and the client detects the push segment message.
  • the client detects the push segment message.
  • the client detects the push segment message.
  • the client obtains a sequence of segments corresponding to the push segment message pushed by the media server, wherein the sequence of segments is the media content required by the client.
  • the storage medium is further configured to store program code for performing the steps of: if the hit media message fails in the push segment message, the client initiates a request to obtain the desired media content, or cancels the media server to push the media content Conversation.
  • the storage medium is further configured to store program code for performing the step of: the push segment column message consisting of one or more URL templates with parameterized traversal predicted by the media server and a compressed parameter list.
  • the storage medium is further arranged to store program code for performing the step of: in case the request information further comprises: at least one request parameter, the predicted segment message comprises an attribute of the segment requested by the request parameter.
  • the storage medium is further configured to store program code for performing the following steps: the client obtains the predicted segment message from the media server by any one or more of the following: a push notification manner in HTTP/2 and The way to tell the push content in WebSocket.
  • the storage medium is further configured to store a program code client for performing the following steps: sending the request message by any one or more of the following: a key-value pair form of the extended header of the HTTP/2 request message and the WebSocket The JSON key-value pair form in the frame.
  • Embodiments of the present disclosure also provide another storage medium.
  • the foregoing storage medium may be configured to store program code for performing the following steps:
  • the media server receives a request message sent by the client for acquiring the media presentation description file MPD, where the request information includes at least: a quick start push instruction and an MPD request instruction;
  • the media server generates response information according to the request message, where the response message includes: a push confirmation instruction that determines that the client needs to be started quickly, and MPD data that is obtained by responding to the MPD request instruction;
  • the media server pushes the predicted segment message and the response message to the client, so that the client obtains the media content required by the client according to the predicted segment message and the MPD data, where the prediction is performed.
  • the fragment message is a fragment message that is actively pushed by the media server and corresponding to the push confirmation instruction.
  • the foregoing storage medium may include, but not limited to, a USB flash drive, a Read-Only Memory (ROM), a Random Access Memory (RAM), a mobile hard disk, and a magnetic memory.
  • ROM Read-Only Memory
  • RAM Random Access Memory
  • a mobile hard disk e.g., a hard disk
  • magnetic memory e.g., a hard disk
  • modules or steps of the present disclosure described above can be implemented by a general-purpose computing device that can be centralized on a single computing device or distributed across a network of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein.
  • the steps shown or described are performed, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof are fabricated as a single integrated circuit module. As such, the disclosure is not limited to any specific combination of hardware and software.
  • the present disclosure relates to the field of streaming media, and provides a method, device and system for quickly starting a streaming media.
  • the client can tell the media server by generating the fast-start type push command, and the client expects the media server to push the segment sequence.
  • the segment message of the K segments pushed by the server from the media server By using the segment message of the K segments pushed by the server from the media server, the blind waiting time of the client is reduced, the startup delay is reduced, and the media client and the media server are not reached very much.
  • the problem of good negotiation synchronization has reached the point where the media client can judge whether the resources it expects are in the push list, so as to make the next decision as soon as possible, and achieve a better quick start effect.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了一种流媒体快速启动方法、装置和系统。其中,该方法包括:客户端向媒体服务器发送快速启动类型推送指令,其中,快速启动类型推送指令用于指示媒体服务器推送初始化片段序列和/或媒体片段序列;客户端接收媒体服务器返回的快速启动类型推送确认指令;客户端根据快速启动类型推送确认指令获取媒体服务器将要推送的初始化片段和/或媒体片段序列的信息。通过本公开,解决了媒体客户端与媒体服务器端之间没有达到很好的协商同步的问题,进而达到了媒体客户端可以判断自己期望的资源是否在推送列表,以便尽早做出下一步决策,实现更好的快速启动的效果。

Description

流媒体快速启动方法、装置和系统 技术领域
本公开涉及流媒体领域,具体而言,涉及一种流媒体快速启动方法、装置和系统。
背景技术
随着网络的发展和HTTP流媒体技术的普及,越来越多的媒体内容提供者采用HTTP动态自适应流媒体系统为用户提供高质量的流媒体服务,媒体内容可为音频、视频、文本及其组合等。HTTP动态自适应流媒体(DASH)系统不仅可以支持多种编码、解码技术及标准,还可以支持不同的媒体格式和媒体播放器,同时还可以提供多种视角、码率、帧率、空间分辨率及其组合等的流媒体资源。
在HTTP动态自适应流媒体(DASH)系统中,媒体内容可包括媒体呈现描述文件(MPD-Media Presentation Description)和媒体片段(Segments)资源。媒体呈现描述文件是描述媒体内容的可扩展标记语言(XML-Extensible Markup Language)文档,其中包含媒体片段资源的描述信息,比如媒体片段的呈现时间、码率、帧率、空间分辨率、统一资源定位符、以及所在的时段、适配集、表述等信息。媒体内容可以分为多个层级,包括时段(Period)、适配集(AdaptationSet)、表述(Representation)以及片段(Segment)。
在HTTP动态自适应流媒体系统中,客户端通过向服务器端请求媒体呈现描述文件来开启一个流媒体会话(Streaming Session)。当收到媒体呈现描述文件之后,客户端会分析媒体呈现描述文件文件,选择一个适合客户端环境的适配集,然后在该适配集中选择一个适合客户端带宽、解码和展示的表述。最后,客户端会在选定的表述中向服务器请求适合客户端环境的初始化片段,并通过MPD文件的对应描述信息来依次请求初始化片段对应的片段序列,然后展示媒体资源。需要注意的是,客户端会在真正开始展示前请求并缓存一定数量的媒体数据。而每个资源文件的请求/响应(Requests/Responses)和缓存的填充等都会为流媒体会话引入启动延迟(Startup Delay)。一方面,这给用户带来了不好的观看体验,比如在一个直播中,存在很大的直播延迟,影响观看体验。另一方面,给媒体内容提供者带来了流失客户的风险,比如客户在还没有观看媒体内容提供者提供的资源时,就离开了媒体内容提供者提供的服务。所述启动延迟(Startup Delay)指的是从发送媒体呈现描述文件请求到展示第一个资源画面,比如第一个视频帧,之间的时间消耗值,它与网络回环(Round-trip)、缓存大小和媒体资源片段的大小等因素有关。
全双工HTTP动态自适应流媒体(FDH-DASH)通过利用FDH服务器推送(Server Push)技术,可以在客户端请求媒体呈现描述文件的同时,用来推送初始化片段和/或起始媒体片段。相比于传统的依赖于解析媒体呈现描述文件的方式,采用FDH服务器推送策略将允许客户端通过减少回环(Round-trip)时间,来尽早的展示媒体资源。所述片段请求/响应消息可通过WebSocket或HTTP/2等全双工HTTP协议发送。基于这种思想很多公司提出了自己的快速启 动(Fast Start)方案。
一种快速启动(Fast Start)策略是通过客户端向服务器发送带有快速启动推送指令(push fast-start directive)的媒体呈现描述文件的请求(request)消息,告诉服务器客户端希望在获取媒体呈现描述文件的同时,获取一些或者全部可用的初始化片段(Initialization Segments)。所述fast-start directive不带参数,仅由快速启动信息(fast-start)组成。服务器收到上述消息后,首先发送包含不带参数的快速启动推送指令的对应媒体呈现描述文件请求(request)的响应消息(response),以此来告诉客户端服务器接收快速启动的请求,并且会推送一些或者全部可用的初始化片段给客户端。然后,服务器给客户端发送一些或者全部可用的初始化片段。
另一种快速启动(Fast Start)策略通过客户端向服务器发送带有快速启动推送指令(push fast-start directive)的媒体呈现描述文件的请求消息,告诉服务器客户端希望在获取媒体呈现描述文件的同时,获取一些或者全部可用的初始化片段(Initialization Segments),或者一些或者全部可用的初始化片段和指定类型(Video或Audio)、指定数量L(亦可不指定)的媒体片段,或者一些或者全部可用的初始化片段、指定数量M(亦可不指定)的Video媒体片段和指定数量N(亦可不指定)的Audio媒体片段等,在指定的同时还可指定语言(Language),比如’lang=ja’。所述push-fast-start directive由快速启动信息(fast-start)和推送参数组成。所述推送参数有多种,可以为video=M、audio=N、init-only或者他们相互组合(video、audio数目亦可不指定)。服务器收到上述消息后,首先发送包含快速启动推送指令的对应媒体呈现描述文件请求(request)的响应消息(response),以此来告诉客户端服务器接收快速启动的请求,并且会推送一些或者全部可用的初始化片段和快速启动推送指令指定数量中,服务器可以推送的媒体片段给客户端。然后,服务器给客户端发送初始化片段和快速启动推送指令指定数量中服务器可以推送的片段序列。
在DASH P6标准(Information Technology–Dynamic adaptive streaming over HTTP(DASH)–Part 6:DASH with Server Push and WebSockets)CD中,采用的快速启动(Fast Start)策略是通过客户端向服务器发送带有快速启动推送指令(push-fast-start directive)的媒体呈现描述文件的请求(request)消息,告诉服务器客户端希望在获取媒体呈现描述文件的同时,获取一些或者全部可用的初始化片段(Initialization Segments)。所述push-fast-start directive不带参数,仅由快速启动信息(push-fast-start)组成。服务器收到上述消息后,首先发送包含不带参数的快速启动推送指令的对应媒体呈现描述文件请求(request)的响应消息(response),以此来告诉客户端服务器接收快速启动的请求,并且会推送一些或者全部可用的初始化片段给客户端。然后,服务器给客户端发送一些或者全部可用的初始化片段。该CD中的定义类似于以上所述的第一种方案,区别仅在指令的命名。
上述的第一种、第二种与第三种快速启动(Fast Start)策略,客户端不知道服务器会确切的推送多少个初始化片段,也不知道何时会结束推送,这造成了客户端和服务器之间,时间资源的浪费,与快速启动策略的设计理念相悖。而上述的第二种快速启动策略,定义了很多消息参数,虽然比较详细,但是有些累赘,比如如果MPD描述文件中根本不存在audio资源,客户端盲目指定会造成请求头部资源的开销,这与DASH的设计理念相悖,而且,该策略为 客户端驱动的快速启动策略,服务器根据客户端的偏好,决定所推送的初始化片段,这显然与客户端需要在MPD文件请求时发送推送偏好信息相悖,首先,快速启动时客户端不知道MPD文件具体描述信息,其次即使根据经验,也还是会有命中失败(Miss)的情况发生。如果快速启动策略完全由服务器驱动,正如上述第一种和第三种快速启动策略,不仅客户端不知道服务器推送哪些内容,更不知道何时推送结束,媒体客户端与媒体服务器端之间没有达到很好的协商同步。
发明内容
本公开提供了一种流媒体快速启动方法、装置及系统,以至少解决相关技术中媒体客户端与媒体服务器端之间没有达到很好的协商同步的问题。
根据本公开的一个方面,提供了一种流媒体快速启动方法,包括:客户端向媒体服务器发送快速启动类型推送指令,其中,快速启动类型推送指令用于指示媒体服务器推送初始化片段序列和/或媒体片段序列;客户端接收媒体服务器返回的快速启动类型推送确认指令;客户端根据快速启动类型推送确认指令获取媒体服务器将要推送的初始化片段和/或媒体片段序列的信息。
根据本公开的另一个方面,还提供了一种流媒体快速启动方法,包括:媒体服务器接收客户端发送的快速启动类型推送指令,其中,快速启动类型推送指令用于指示媒体服务器推送初始化片段序列和/或媒体片段序列;媒体服务器根据将要推送的初始化片段和/或媒体片段序列,生成快速启动类型推送确认指令;媒体服务器向客户端发送快速启动类型推送确认指令。
根据本公开的又一方面,提供了一种流媒体快速启动装置,包括:访问引擎模块,设置为客户端向媒体服务器发送快速启动类型推送指令,其中,快速启动类型推送指令用于指示媒体服务器推送初始化片段序列和/或媒体片段序列;第一接收模块,设置为客户端接收媒体服务器返回的快速启动类型推送确认指令;控制引擎模块,设置为客户端根据快速启动类型推送确认指令获取媒体服务器将要推送的初始化片段和/或媒体片段序列的信息。
根据本公开的再一方面,还提供了一种流媒体快速启动装置,包括:服务模块,设置为媒体服务器接收客户端发送的用于获取媒体呈现描述文件MPD的请求消息,其中,请求信息至少包括:快速启动类型推送指令和MPD请求指令;生成引擎模块,媒体服务器根据请求消息生成响应信息,其中,响应消息包括:确定客户端需要快速启动的推送确认指令、响应MPD请求指令得到的MPD数据;解析引擎模块,设置为在媒体服务器生成预测的片段消息之后,媒体服务器将预测的片段消息和响应信息推送至客户端,使得客户端根据预测的片段消息和MPD数据,获取客户端需要的媒体内容,其中,预测的片段消息为媒体服务器主动推送的与推送确认指令对应的片段消息。
根据本公开的第五个方面,还提供了一种流媒体快速启动系统,包括:客户端,生成快速启动推动指令,并向媒体服务器发送用于获取媒体呈现描述文件MPD的请求消息至媒体服 务器,在获取到预测的片段消息之后,根据预测的片段消息和MPD数据,获取需要的媒体内容,其中,请求信息至少包括:快速启动类型推送指令和MPD请求指令,预测的片段消息为媒体服务器主动推送的与推送确认指令对应的片段消息。媒体服务器,与客户端通信,设置为接收客户端发送的用于获取媒体呈现描述文件MPD的请求消息,并根据请求消息生成响应信息,在生成预测的片段消息之后,将预测的片段消息和响应信息推送至客户端。
根据本公开的第六个方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的方法。
通过本公开,采用客户端通过生成所述fast-start类型推送指令,即可告诉媒体服务器,客户端期待媒体服务器推送片段序列,以快速启动;通过使用从所述媒体服务器接收服务器推送的K个片段的片段消息,减少了客户端盲目等待的时间,降低了启动延迟,解决了媒体客户端与媒体服务器端之间没有达到很好的协商同步的问题,进而达到了媒体客户端可以判断自己期望的资源是否在推送列表,以便尽早做出下一步决策,实现更好的快速启动的效果。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是根据本公开实施例的一种流媒体快速启动方法的流程图;
图2是FDH-DASH系统架构100的一个实施例的示意图;
图3示出了一个FDH媒体客户端的实施例的示意图;
图4示出了一个FDH媒体服务器的实施例的示意图;
图5A-D示出了推送参数为NUMBER媒体呈现MPD与其请求响应,以及媒体客户端与媒体服务器是实施例交互流程示意图;
图6是由用户端设备实现的推送参数为NUMBER实施例的流程图;
图7A-D示出了推送参数为NUMBER媒体呈现MPD与其请求响应,以及媒体客户端与媒体服务器是实施例交互流程示意图;
图8是根据本公开实施例的一种流媒体快速启动方法的流程图;
图9A-D示出了推送参数为URL_LIST方法媒体呈现MPD与其请求响应,以及媒体客户端与媒体服务器是实施例交互流程示意图;
图10A-D示出了推送参数为URL_TEMPLATE方法媒体呈现MPD与其请求响应,以及 媒体客户端与媒体服务器是实施例交互流程示意图;
图11是根据本公开实施例的一种流媒体快速启动方法的流程图;
图12是根据本公开实施例的一种流媒体快速启动方法的流程图;
图13是计算机系统或网络设备1200的实施例的示意图;
图14是根据本公开实施例的一种流媒体快速启动方法的流程图;
图15是根据本申请实施例的一种可选的流媒体快速启动方法;
图16是根据本公开实施例的一种流媒体快速启动方法的流程图;
图17是根据本公开实施例的一种流媒体快速启动装置的示意图;
图18是根据本公开实施例的另一种流媒体快速启动装置的示意图;以及
图19是根据本公开实施例的另一种流媒体快速启动系统的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本公开。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
还需要说明的是,该公开可用于DASH网络,特别是FDH-DASH网络,且不限于上述领域。
需要说明的是,下文中“快速启动推送指令”和“快速启动类型推送指令”指的均是“类型”字段为fast_start的推送指令。
下面对于实施例中出现的专业术语进行解释:
FDH(Full Duplex HTTP-compatible protocols)是指与HTTP 1.1标准兼容,且支持全双工通信的协议,比如WebSocket和HTTP/2等协议的全双工超文本协议。
DASH(Dynamic Adaptive Streaming over HTTP)是基于HTTP的媒体内容流传输的通信标准。FDH-DASH(DASH over Full Duplex HTTP compatible protocols)即基于全双工超文本协议的DASH技术标准。
在本实施例中提供了一种流媒体快速启动方法,图1是根据本公开实施例的一种流媒体快速启动的流程图,如图1所示,该流程包括如下步骤:
步骤S102,客户端向媒体服务器发送快速启动类型推送指令,其中,所述快速启动类型 推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列。
步骤S104,所述客户端接收所述媒体服务器返回的快速启动类型推送确认指令。
步骤S106,所述客户端根据所述快速启动类型推送确认指令获取所述媒体服务器将要推送的初始化片段和/或媒体片段序列的信息。
在一种可选的实施例中,客户端生成快速启动类型推送指令push-fast-start directive,向媒体服务器发送所述快速启动类型推送指令,其中,所述快速启动类型推送指令用于通知所述媒体服务器推送初始化片段序列和/或媒体片段序列,所述客户端获取快速启动类型推送确认指令push-fast-start acknowledge,所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和媒体片段序列的信息。
在一种可选的实施例中,上述流媒体快速启动方法开可以包括如下步骤:
客户端生成快速启动推动指令。
客户端发送用于获取媒体呈现描述文件MPD的请求消息至媒体服务器,其中,请求信息至少包括:快速启动推送指令和MPD请求指令。
在上述步骤中,请求消息可以为MPD片段请求消息,客户端生成快速启动推送指令push-fast-start directive,向媒体服务器发送媒体呈现描述文件(MPD)的请求消息,其中,所述媒体呈现描述文件的请求由上述快速启动推送指令push-fast-start directive和请求内容组成。
客户端接收媒体服务器根据请求消息返回的响应消息,其中,响应消息包括:确定客户端需要快速启动的推送确认指令、响应MPD请求指令得到的MPD数据。
步骤S108,在客户端获取到预测的片段消息之后,根据预测的片段消息和MPD数据,获取客户端需要的媒体内容,其中,预测的片段消息为媒体服务器主动推送的与推送确认指令对应的片段消息。
在上述步骤中,客户端从所述媒体服务器接收响应所述片段消息的响应,以及媒体服务器主动推送的初始化片段和/或片段序列,其中,所述快速启动推送指令push-fast-start directive由快速启动消息和一系列参数组成。流媒体客户端通过解析接收到的响应信息快速启动推送指令push-fast-start directive确认指令中的参数,并对参数列表进行解析,根据下一步所需内容是否在媒体服务器推送片段列表,来快速决定下一步媒体客户端要做的具体操作,如果媒体服务器推送命中失败(Miss),亦即所需内容不再推送列表中,可以立即发送对应所需消息的请求,也可以取消(Cancel)媒体服务器的推送,否则直接获取所需内容。
通过本公开,采用客户端通过生成所述push-fast-start directive,即可告诉媒体服务器,客户端期待媒体服务器推送片段序列,以快速启动;通过使用从所述媒体服务器接收服务器推送的K个片段的片段消息,减少了客户端盲目等待的时间,降低了启动延迟,解决了媒体客户端与媒体服务器端之间没有达到很好的协商同步的问题,进而达到了媒体客户端可以判断自己期望的资源是否在推送列表,以便尽早做出下一步决策,实现更好的快速启动的效果。
通过以上步骤,媒体服务器只需根据片段请求消息中的快速启动(fast-start)信息,通过媒体服务器向媒体客户端发送推送确认指令,并主动推送由服务器驱动决策的一系列预测片段给媒体客户端,媒体客户端在收到媒体呈现描述文件的响应消息之后,会解析媒体响应消息的头部信息,通过对该消息中的推送确认指令的解析,获取媒体服务器推送数目K和要推送的K个片段的内容信息,比如URL等信息。通过这些信息,媒体客户端可以判断自己期望的资源是否在推送列表,以便尽早做出下一步决策,实现更好的快速启动,支持快速启动(Fast Start)低延迟的设计理念。
在本公开介绍的实施例中,媒体客户端根据是否需要快速启动和MPD信息生成push-fast-start directive,其中的push-fast-start directive可以不包含任何参数,也可以包含一些表示客户端偏好的参数,比如加入客户端偏好的码率,偏好的媒体片段类型,偏好的媒体片段个数等或这些的组合等,媒体服务器根据收到的MPD文件请求中是否包含push-fast-start directive确定客户端需要快速启动,然后媒体服务器通过本地决策(或者通过结合媒体客户端推送的push-fast-start directive参数,亦即客户端偏好来决策)推送的片段数目,并决策要推送的具体片段。并通过MPD响应消息push-fast-start acknowledge来通知媒体客户端,其中push-fast-start acknowledge由快速启动信息(fast-start)和参数组成,同时在发送MPD文件的同时,推送决策生成的片段序列。媒体客户端在收到push-fast-start acknowledge后,解析获取所请求的MPD文件响应头部信息中是否含有push-fast-start acknowledge,并获取其中的参数,通过查询媒体服务器发送过来的片段序列是否符合媒体客户端的需求,来快速进行下一步决策。命中失败(Miss)时,可以立即发送对应所需消息的请求,也可以取消(Cancel)媒体服务器的推送,立即请求媒体客户端需要的文件,命中时,直接获取所需的文件。
需要明白的一点是,所有快速启动策略均在媒体客户端请求MPD文件时进行,命中失败(Miss)的情形均可能发生。本公开所提快速启动策略,相比于已经提出的与FDH标准CD中的快速启动策略,实现了媒体客户端对于推送文件的透明性,亦即媒体客户端可以通过媒体服务器发送的push-fast-start acknowledge中的参数与媒体服务器发送的片段序列明确媒体服务器是否命中,以及是否该继续等待媒体服务器推送内容的到达,从一定程度上,减少了媒体客户端盲目等待时间,有效的支持快速启动策略设计理念。
图2是FDH-DASH系统架构100的一个实施例的示意图。FDH-DASH系统100包括一个或多个媒体客户端110,所述媒体客户端110包括用户设备或装置,如机顶盒(STB)、台式电脑、笔记本电脑、平板电脑、智能手机、任意其它类型的移动设备、个人设备或这些设备的组合等,所述媒体客户端110支持全双工超文本传输协议(FDH)。FDH-DASH架构100包括一个或多个媒体服务器120,所述媒体服务器可以是任何合适类型的网络服务器,如内容分发网络(CDN)的一个节点、代理服务器、Web服务器、或这些服务器的组合等,所述媒体服务器120支持全双工超文本传输协议(FDH)。所述媒体客户端110可以通过任意接入网130与所述媒体服务器120建立FDH连接,所述接入网130包括互联网、无线局域网(WLAN)、WiFi网络或热点、蜂窝网、线缆架构、光纤骨干网、接入网或这些网络的组合等。所述媒体客户端110与所述媒体服务器120通过FDH连接,它们之间可以交换请求/响应消息,发送/接收媒体内容。
图3示出了一个FDH媒体客户端的实施例的示意图。如图3所示,所述媒体客户端110包括FDH-DASH控制引擎111、生成引擎112、FDH访问引擎113和媒体引擎114。
FDH-DASH控制引擎111,可以解析MPD,获得关于所述媒体内容的信息,如内容时序、内容或媒体可用性、媒体类型、分辨率、最小及最大带宽、媒体内容在网络中的位置及其它内容特征,如媒体呈现时间线、媒体片段列表等;可以根据用户设备的处理能力、显示能力和客户端缓存变化趋势、可用带宽的变化趋势,决定所需下载/推送的片段序列,例如,在可用带宽大时可选择高质量的片段序列;可以根据服务器端发送的push-fast-start acknowledge中的参数和服务器推送的片段信息决定是否命中失败(Miss),如果命中失败,可以直接忽略服务器推送的片段,也可以直接取消(Cancel)服务器推送,启动新的片段请求,否则等待获取所需内容。
生成引擎112,根据客户端是否需要快速启动生成push-fast-start directive,其中,所述push-fast-start directive可以不包含任何参数,也可以包含一些表示客户端偏好的参数,比如加入客户端偏好的码率,偏好的媒体片段类型,偏好的媒体片段个数等或这些的组合等;生成push-template类型推送指令等,所述push-template类型推送指令用于正常片段请求,具体描述可见FDH标准定义。
FDH访问引擎113,发起并建立FDH连接通道;根据客户端是否需要快速启动生成的push-fast-start directive生成并发送MPD请求消息,接收并解析MPD响应消息,获取MPD数据;根据MPD请求的响应消息获取服务器端发送的push-fast-start acknowledge以及该指令中的参数;接收被推送的片段序列。
媒体引擎114,负载解码媒体片段,呈现流媒体。
图4示出了一个FDH媒体服务器的实施例的示意图。如图4所示,所述媒体服务器120包括FDH服务模块121、解析引擎122、媒体内容130和媒体准备单元140。所述媒体内容130可以由媒体准备单元140生成或准备,所述媒体准备单元140可以位于所述媒体服务器上或在其他地方(如,位于内容提供者中)。所述媒体内容130可以是任何可行的形式,如视频、音频、文本及其组合等。所述媒体内容130可以包括媒体呈现描述(MPD)131和多个片段资源,所述MPD 131为描述媒体内容的XML文档,包含媒体片段资源的描述信息,如媒体片段的起始呈现时间、码率、帧率、空间分辨率、统一资源定位符、以及所在的时段、适配集、表述等等信息。所述MPD还可以包括片段资源的URL信息和呈现时间信息(如,起始呈现时间、呈现时长等)等,其中,所述URL信息可通过片段模板(SegmentTemplate)或片段列表(SegmentList)提供,所述片段资源的呈现时间信息可通过片段时间线(SegmentTimeline)或多片段基信息(MultipleSegmentBaseInformation)等给出。所述片段的起始呈现时间是该媒体片段的第一帧数据对应的呈现时间,相对于该媒体片段所在时段(Period)的时段起始时间(PeriodStart time)。所述MPD 131可以与所述媒体内容130的片段资源位于相同的网络位置,也可以位于其他位置。所述媒体内容130可以包括一个或多个时段,且每个时段可以包括一个或多个适配集,且每个适配集可以包括一个或多个表述。例如,在第一时段132内,适配集133可以包含多个表述,表述134可以包含多个时段。
FDH服务模块121,接收FDH连接请求,建立FDH连接通道;接收并解析MPD请求消息,获取媒体客户端是否需要快速启动的指令;生成并发送MPD响应消息,所述MPD响应消息包含MPD数据,push-fast-start acknowledge,以及push-fast-start acknowledge中的参数;接收并解析片段请求消息;生成并发送片段响应消息;推送媒体服务器主动预测的片段序列。
解析引擎122,负责解析MPD请求消息,获取媒体客户端是否需要快速启动的指令,当媒体客户端包含push-fast-start directive时,计算媒体服务端要推送的片段多少,获取push-fast-start acknowledge中所指定数目的片段序列;解析客户端的推送指令,获取客户端需要的片段序列。
可选地,根据本申请上述实施例,所述MPD请求消息还包括:至少一个请求参数的情况下,所述媒体服务器将要推送的初始化片段和媒体片段序列的信息包括所述MPD请求消息的片段的属性;所述客户端通过如下任意一种或多种方式从所述媒体服务器获取到所述MPD响应消息:HTTP/2的MPD响应报文方式和WebSocket中DASH子协议的new_mpd消息,其中,HTTP/2的MPD响应报文通过Push-Policy首部携带快速启动类型推送确认指令;WebSocketsDASH子协议的new_mpd消息通过JSON键值对形式携带快速启动类型推送确认指令。
可选地,在本申请上述实施例中,所述客户端接收所述媒体服务器返回的MPD响应消息,以及所述快速启动类型推送确认指令,进一步包括:
通过HTTP/2报文方式接收所述MPD响应消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送确认指令;或者,
通过WebSocket中DASH子协议的new_mpd消息接收所述MPD响应消息,其中,所述new_mpd消息的JSON键值对携带快速启动类型推送确认指令。
可选地,在本申请上述实施例中,所述客户端向所述媒体服务器发送MPD请求消息,以及所述快速启动类型推送指令,进一步包括:
通过HTTP/2报文方式发送所述MPD请求消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送指令;或者,
通过WebSocket中DASH子协议的get_mpd消息发送所述MPD请求消息,其中,所述get_mpd消息的JSON键值对携带快速启动类型推送确认指令。
在一种可选的实施例中,所述客户端通过如下任意一种或多种方式发送所述MPD请求消息:HTTP/2请求报文方式和WebSocket中DASH子协议的get_mpd消息,其中,HTTP/2请求报文通过Accept-Push-Policy首部携带快速启动类型推送指令;WebSockets中DASH子协议的get_mpd消息通过JSON键值对形式携带快速启动类型推送指令。
在另一种可选的实施例中,在所述MPD请求消息还包括:至少一个请求参数的情况下,所述服务器将要推送的初始化片段和媒体片段序列的信息包括所述MPD请求消息的片段的属 性;所述客户端通过如下任意一种或多种方式从所述媒体服务器获取到所述服务器将要推送的初始化片段和媒体片段序列的信息:HTTP/2中的推送告知方式和WebSocket中的推送内容告知方式;所述客户端通过如下任意一种或多种方式发送所述MPD请求消息:HTTP/2请求报文的扩展首部的键值对形式和WebSocket的帧中的JSON键值对形式。
在又一种可选的实施例中,所述请求信息还包括:至少一个请求参数的情况下,所述预测的片段消息包括请求参数所请求的片段的属性;所述客户端通过如下任意一种或多种方式从所述媒体服务器获取到所述预测的片段消息:HTTP/2中的推送告知方式和WebSocket中的推送内容告知方式;所述客户端通过如下任意一种或多种方式发送所述请求消息:HTTP/2请求报文的扩展首部的键值对形式和WebSocket的帧中的JSON键值对形式。
可选地,根据本申请上述实施例,所述客户端通过MPD请求消息向所述媒体服务器发送所述快速启动类型推送指令。
在一种可选的实施例中,向媒体服务器发送快速启动类型推送指令包括:通过MPD请求消息向所述媒体服务器发送所述快速启动类型推送指令,其中,所述MPD请求消息用于请求所述媒体服务器发送MPD响应消息,所述MPD响应消息至少应包含MPD数据和快速启动类型推送确认指令。
可选地,根据本申请上述实施例,所述客户端获取所述快速启动类型推送确认指令包括:所述客户端接收所述快速启动类型推送确认指令包括:所述客户端接收所述媒体服务器返回的MPD响应消息,所述MPD响应消息至少包含MPD数据,以及所述快速启动类型推送确认指令。
在一种可选的实施例中,通过获取并解析MPD响应消息获取所述快速启动类型推送确认指令,所述MPD响应消息至少包含MPD数据和快速启动类型推送确认指令。
可选地,根据本申请上述实施例,所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:
步骤S1061,所述快速启动类型推送确认指令中携带URL模板类型的推送参数。
步骤S1063,所述客户端解析URL模板推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
可选地,根据本申请上述实施例,所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:
步骤S1065,所述快速启动类型推送确认指令中携带数值类型的推送参数。
步骤S1067,所述客户端解析数值推送参数K,并接收后续的K个推送承诺PUSH_PROMISE帧,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
可选地,根据本申请上述实施例,所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:
步骤S1069,所述快速启动类型推送确认指令中携带URL列表类型的推送参数;
步骤S1071,所述客户端解析URL列表推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
在一种可选的实施例中,所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和媒体片段序列的信息的步骤包括:
在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL模板URL_TEMPLATE类型的情况下,所述客户端解析URL模板,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
在所述快速启动类型推送指令的推送参数PUSH_PARAMS为数值NUMBER类型的情况下,所述客户端通过解析数值K和后续的K个推送承诺PUSH_PROMISE帧,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL列表URL_LIST类型的情况下,所述客户端解析URL列表,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
可选地,根据本申请上述实施例,上述方法还包括:
步骤S108,所述客户端解析所述MPD数据,确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的信息。
步骤S1010,若所述获取的媒体服务器将要推送的初始化片段和/或媒体片段序列的信息等同于所述确定的需要媒体服务器推送的初始化片段和/或媒体片段序列的信息,所述客户端接收所述媒体服务器推送的初始化片段序列和/或媒体片段序列。
可选地,根据本申请上述实施例,上述方法还包括:
步骤S1012,所述客户端解析所述MPD数据,确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的信息。
步骤所述客户端向所述媒体服务器发送获取所述确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的请求。
所述客户端向所述媒体服务器发送获取所述确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的请求。
所述客户端向所述媒体服务器发送获取所述确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的请求。
S1014,若所述获取的媒体服务器将要推送的初始化片段和/或媒体片段序列的信息不同于所述确定的需要媒体服务器推送的初始化片段和/或媒体片段序列的信息,所述客户端取消所述媒体服务器推送的初始化片段序列和/或媒体片段序列。
可选地,在本申请上述实施例中,上述方法还包括所述客户端向所述媒体服务器发送获取所述确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的请求。
在一种可选的实施例中,本申请还提供了如图5所示的一种流媒体快速启动方法,该方法包括:
步骤161,根据客户端是否需要快速启动和呈现描述MPD,生成push-fast-start directive;
步骤162,向媒体服务器发送MPD片段请求消息,其中,所述MPD片段请求下拍戏由上述push-fast-start directive与MPD请求消息指令组成;
步骤163,从所述媒体服务器接收响应MPD片段请求消息的MPD片段,并解析响应消息头部信息中push-fast-start directive中的参数;
步骤164,分析判断所需内容是否命中。
在一种可选的实施例中,在所述快速启动类型推送指令的推送参数PUSH_PARAMS为数值NUMBER类型的情况下,所述客户端通过解析数值K和后续的K个推送承诺PUSH_PROMISE帧,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息,包括:
步骤S1081,所述客户端从所述快速启动类型推送指令中解析得到所述参数值K,并接收所述媒体服务器推送的与所述参数值K对应的K个片段消息。
步骤S1083,所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息。
步骤S1085,所述客户端检测所述K个片段消息中是否命中所述媒体信息,所述片段消息为URL地址。
步骤S1087,如果在所述K个片段消息中命中所述媒体消息成功,所述客户端获取所述媒体服务器将要推送的初始化片段和媒体片段序列的信息。
在一种可选的实施例中,在所述推送确认指令中携带所述媒体服务器预测的参数值K的情况下,所述客户端获取到预测的片段消息可以包括如下步骤:
所述客户端从所述推送确认指令中解析得到所述参数值K,并接收所述媒体服务器推送的与所述参数值K对应的K个片段消息。
在一种可选的实施例中,根据所述预测的片段消息和所述MPD数据,获取所述客户端需要的媒体内容,包括,
所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息。
所述客户端检测所述K个片段消息中是否命中所述媒体信息,所述片段消息为URL地址。
如果在所述K个片段消息中命中所述媒体消息成功,所述客户端获取所述媒体服务器推送的与所述预测的片段消息所对应的片段序列,其中,所述片段序列为所述客户端需要的媒体内容。
可选地,根据本申请上述实施例提供的方法,如果在所述K个片段消息中命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求,或取消所述媒体服务器推送媒体内容的会话。
提供的带参数K的快速启动推送确认指令参数格式,可以定义为:fast_start指示推送确认指令,由参数K指定推送确认指令的类型,由K值组成带参数K的快速启动确认指令。具体示例结合如图5B至图5C所示。
在一种可选的实施例中,所述push-fast-start acknowledge参数可以由快速启动信息(fast-start)和一个参数K组成,除此以外,媒体服务器在推送预测片段序列的同时会先推送片段序列的消息,如URL等信息(该事先推送的片段序列信息的方式可以为HTTP/2中的push promise等方式,所述push promise指的是由媒体服务器发送,用来通知媒体客户端要推送的内容信息,比如URL信息等),给媒体客户端,以便于媒体客户端通过push-fast-start acknowledge参数K和推送片段序列的信息来尽早决策媒体服务器端是否命中失败(Miss)。
本公开实施例提供了一种流媒体快速启动方法,图6是根据本公开实施例的一种流媒体快速启动方法的流程图,图6是根据本公开实施例的一种可以由用户端设备(如,媒体客户端110)实现的流媒体快速启动方法200的流程示意图,如图6所示,该流程包括以下步骤:
步骤201,根据客户端是否需要快速启动和呈现描述MPD,生成push-fast-start directive,其中,所述push-fast-start directive可以不包含任何参数,也可以包含一些表示客户端偏好的参数,比如加入客户端偏好的码率,偏好的媒体片段类型,偏好的媒体片段个数等或这些的组合等;
步骤202,向媒体服务器发送MPD片段请求消息,其中,所述MPD片段请求消息由上述push-fast-start directive与MPD请求消息指令组成;
步骤203,从所述媒体服务器接收响应MPD片段请求消息的MPD片段,并解析响应消息头部信息中push-fast-start directive中的参数值K;
步骤204,从所述媒体服务器接收服务器推送的K个片段的片段消息,判断所需内容是否命中,命中的话等待获取内容,命中失败的话,可以立即发送对应所需消息的请求,也可以取消(Cancel)媒体服务器的推送,直接开始请求所需片段序列。
所述步骤202中,所述片段请求消息具体可通过且不限于以下形式发送:HTTP/2请求报 文的扩展首部的键值对形式、WebSocket的帧中的JSON键值对形式等。
所述步骤204中,所述参数K对应的片段序列的消息被媒体服务器同步推送,所述参数K对应的片段序列被媒体服务器同步推送(或者其他更加快速,公平的方法推送)。
基于以上步骤,媒体客户端通过生成所述push-fast-start directive,即可告诉媒体服务器,客户端期待媒体服务器推送片段序列,以快速启动;通过使用从所述媒体服务器接收服务器推送的K个片段的片段消息,减少了客户端盲目等待的时间,降低了启动延迟。
所述方法200为示例性实施例,可以对所述方法200进行替代性修改,且可以根据需要合并和/或附加步骤。
下文是一个示例性实施例,用以说明在此介绍的流媒体快速启动方法和参数值K,及其在一些用例中的潜在应用。
图7A示出了示例性MPD 400。该MPD取自2016ICME Grand Challenge竞赛组委会提供的示例文件(MPD文件亦可以是其他标准类型的DASH MPD文件)。
图7B示出了示例性片段请求消息410。片段请求消息410包括了mpd_uri 411和fast_start推送指令412,不含参数。
图7B-1示出了示例性片段请求消息410-1。片段请求消息410-1包括了mpd_uri 411-1和fast_start推送指令412-1,该指令由快速启动信息(fast-start)和推送参数组成。所述推送参数有多种,可以为video=V、audio=A、init-only、biterate=B或者它们相互组合(video、audio、biterate数值或者范围亦可不指定)。
图7C示出了示例性片段响应消息420。片段响应消息420包括了mpd_content 421和fast_start推送确认指令412,包含参数值K,亦即媒体服务器欲推送片段的个数。
图7D示出了媒体客户端110与媒体服务器120的示例性交互流程。交互流程起始于步骤431,媒体客户端110通过FDH访问引擎113向所述媒体服务器120发送MPD请求消息,请求MPD400,并告诉媒体服务器需要快速启动。在步骤432中,媒体服务器120接收到MPD请求消息后,通过FDH服务模块121获取预测片段的数目以及具体内容,向媒体客户端110发送MPD响应消息,所述MPD响应消息包含MPD400与push-fast-start acknowledge422。在步骤433中,媒体服务器120服务模块121根据本地预测和MPD信息生成预测片段信息,并生成要推送的片段序列。同时向媒体客户端并行发送要推送片段的信息(URL等信息,不包含具体数据)。在步骤434中,所述媒体客户端110通过FDH-DASH控制引擎111解析,所需片段是否在服务器推送的片段消息中,如果在等待获取文件内容,否则,立马请求所需片段。媒体服务器在步骤435中,通过服务模块121向所述媒体客户端110并行发送片段请求消息。在步骤436中,所述媒体客户端110正常发送片段请求。步骤434和步骤435可以同时进行,以便于媒体客户端尽早决策。
可选地,根据本申请上述实施例,在所述推送确认指令中携带所述媒体服务器预测的推 送片段列表的情况下,所述推送片段列表为从所述推送确认指令这种解析得到的所述预测的片段消息,其中,根据所述预测的片段消息和所述MPD数据,获取所述客户端需要的媒体内容,包括,
步骤S1067,所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息;
步骤S1069,所述客户端检测所述推送片段列表中是否命中所述媒体信息;
步骤S1071,如果在所述推送片段列表中命中所述媒体消息成功,所述客户端获取所述媒体服务器推送的与所述推送片段列表所对应的片段序列,其中,所述片段序列为所述客户端需要的媒体内容。
可选地,根据本申请上述实施例,如果在所述K个片段消息中命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求并取消所述媒体服务器推送媒体内容的会话,或所述客户端发起获取所述需要的媒体内容的请求并存储所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
在一种可选的实施例中,如果在所述推送片段列表中命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求,或取消所述媒体服务器推送媒体内容的会话。
可选地,根据本申请上述实施例,所述推送片段列表为所述媒体服务器预测的片段序列的URL组成。
本公开介绍一种新的URL_LIST快速启动推送确认指令参数格式,可以定义为:
ATTRIBUTES=ATTRIBUTE_LIST/ATTRIBUTE_ITEM
ATTRIBUTE_LIST=ATTRIBUTE_ITEM”;”ATTRIBUTE_LIST/ATTRIBUTE_ITEM
ATTRIBUTE_ITEM可以为初始化片段,媒体类型,语言,比特率等,值可以为数目,码率,范围等。
fast_start指示推送确认指令,由参数segment-list指定推送确认指令的类型,然后跟上所有片段的URL,URL由符号“;”分割组成URL_LIST快速启动确认指令。具体示例如图9B-C所示。
可选地,根据本申请上述实施例,在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL列表URL_LIST类型的情况下,所述客户端解析URL列表,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息,包括,
步骤S1091,所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息。
步骤S1093,所述客户端检测所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息是否命中所述媒体信息。
步骤S1095,如果在所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息命中所述媒体消息成功,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
在一种可选的实施例中,所述push-fast-start acknowledge参数可以由快速启动信息(fast-start)和即将推送片段列表(URL_LIST)组成,所述URL_LIST由一系列媒体服务器预测的片段序列的URL组成,这些URL列表可以由分号“;”分割(或者其他表现形式),交给媒体客户端解析。媒体客户端可以通过MPD请求响应消息头中的push-fast-start directive参数,解析获取服务器推送片段的多少,以及具体推送的内容,通过这种方式,媒体客户端可以尽早的做出决策。
本公开实施例提供了一种流媒体快速启动方法,图8是根据本公开实施例的一种流媒体快速启动方法的流程图,图8是根据本公开实施例的一种可以由用户端设备(如,媒体客户端110)实现的流媒体快速启动方法500的流程示意图,如图8所示,该流程包括以下步骤:
步骤501,根据客户端是否需要快速启动和呈现描述MPD,生成push-fast-start directive,其中,所述push-fast-start directive可以不包含任何参数,也可以包含一些表示客户端偏好的参数,比如加入客户端偏好的码率,偏好的媒体片段类型,偏好的媒体片段个数等或这些的组合等;
步骤502,向媒体服务器发送MPD片段请求消息,其中,所述MPD片段请求消息由上述push-fast-start directive与MPD请求消息指令组成;
步骤503,从所述媒体服务器接收响应MPD片段请求消息的MPD片段,并解析响应消息头部信息中push-fast-start directive中的URL_LIST参数列表。判断媒体客户端需要的片段是否存在于参数列表,存在的话则等待获取媒体服务器推送的内容,不存在的话(Miss),直接请求所需片段序列。
所述步骤502中,所述片段请求消息具体可通过且不限于以下形式发送:HTTP/2请求报文的扩展首部的键值对形式、WebSocket的帧中的JSON键值对形式等。
所述步骤504中,所述参数URL_LIST参数列表由媒体服务器生成,该列表可以根据多数媒体客户端的命中情况来预测,或者实现指定配置文件,或者通过结合媒体客户端push-fast-start directive中的参数情况等。
基于以上步骤,媒体客户端通过生成所述push-fast-start directive,即可告诉媒体服务器,客户端期待媒体服务器推送片段序列,以快速启动;通过使用从所述媒体服务器接收服务器推送的push-fast-start acknowledge中的URL_LIST参数列表,减少了客户端盲目等待的时间,降低了启动延迟。所述方法500为示例性实施例,可以对所述方法500进行替代性修改,且可以根据需要合并和/或附加步骤。
下文是一个示例性实施例,用以说明在此介绍的流媒体快速启动方法和参数URL_LIST,及其在一些用例中的潜在应用。
图9A示出了示例性MPD 700。该MPD取自2016ICME Grand Challenge竞赛组委会提供的示例文件(MPD文件亦可以是其他标准类型的DASH MPD文件)。
图9B示出了示例性片段请求消息710。片段请求消息710包括了mpd_uri 711和fast_start推送指令712,不含参数。
图9B-1示出了示例性片段请求消息710-1。片段请求消息710-1包括了mpd_uri 711-1和fast_start推送指令712-1,该指令由快速启动信息(fast-start)和推送参数组成。所述推送参数有多种,可以为video=V、audio=A、init-only、biterate=B或者它们相互组合(video、audio、biterate数值或者范围亦可不指定)。
图9C示出了示例性片段响应消息720。片段响应消息720包括了mpd_content 721和fast_start推送确认指令712,包含参数URL_LIST,亦即媒体服务器欲推送片段的信息列表(URL等,不包含具体数据)。
图9D示出了媒体客户端110与媒体服务器120的示例性交互流程。交互流程起始于步骤731,媒体客户端110通过FDH访问引擎113向所述媒体服务器120发送MPD请求消息,请求MPD700,并告诉媒体服务器需要快速启动。在步骤732中,媒体服务器120接收到MPD请求消息后,通过FDH服务模块121获取预测片段的数目以及具体内容,向媒体客户端110发送MPD响应消息,所述MPD响应消息包含MPD400与push-fast-start acknowledge722。在步骤733中,所述媒体客户端110通过FDH-DASH控制引擎111解析,所需片段是否在服务器推送的片段列表中,如果在等待获取文件内容,否则,立马请求所需片段。媒体服务器在步骤734中,通过服务模块121向所述媒体客户端110并行发送片段请求消息。在步骤735中,所述媒体客户端110正常发送片段请求。步骤733和步骤734可以同时进行,以便于媒体客户端尽早决策。
可选地,根据本申请上述实施例,在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL模板URL_TEMPLATE类型的情况下,所述客户端解析URL模板,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息,包括:
步骤S1073,所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息。
步骤S1075,所述客户端检测所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息是否命中所述媒体信息。
步骤S1077,如果在所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息命中所述媒体消息成功,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
在一种可选的实施例中,在所述推送确认指令中携带所述媒体服务器预测的推送片段信息的情况下,所述推送片段信息为从所述推送确认指令这种解析得到的所述预测的片段消息,其中,根据所述预测的片段消息和所述MPD数据,获取所述客户端需要的媒体内容,包括,
所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息;
所述客户端检测所述推送片段消息中是否命中所述媒体信息;
如果在所述推送片段消息中命中所述媒体消息成功,所述客户端获取所述媒体服务器推送的与所述推送片段消息所对应的片段序列,其中,所述片段序列为所述客户端需要的媒体内容。
可选地,根据本申请上述实施例,如果在所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求并取消所述媒体服务器推送媒体内容的会话,或所述客户端发起获取所述需要的媒体内容的请求并存储所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
在一种可选的实施例中,如果在所述推送片段消息中命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求,或取消所述媒体服务器推送媒体内容的会话。
可选地,根据本申请上述实施例,所述推送片段列消息为所述媒体服务器预测的一个或多个带参数化遍历的URL模板和压缩后的参数列表组成。
本公开介绍一种新的URL_TEMPLATE快速启动推送确认指令参数格式,可以定义为:
ATTRIBUTES=ATTRIBUTE_LIST/ATTRIBUTE_ITEM
ATTRIBUTE_LIST=ATTRIBUTE_ITEM”;”ATTRIBUTE_LIST/ATTRIBUTE_ITEM
ATTRIBUTE_ITEM可以为初始化片段,媒体类型,语言,比特率等,值可以为数目,码率,范围等。
fast_start指示推送确认指令,由参数push-template指定推送确认指令的类型,然后跟上标准push-template以及上述描述的一些参数组成URL_TEMPLATE快速启动确认指令。具体示例如图10B至图10C所示。
在一实施例中,所述push-fast-start acknowledge参数可以由快速启动信息(fast-start)和即将推送片段信息(URL_TEMPLATE)组成,所述URL_TEMPLATE由包含一个或多个待参数化变量的URL模板和压缩后的参数列表组成,所述URL模板对应于IETF RFC 6570URI template Level 1,变量包含于“{}”,表达式类型为字符串扩展模式(详见FDH URL_TEMPLATE定义),交给媒体客户端解析。媒体客户端可以通过MPD请求响应消息头中的push-fast-start directive参数,解析获取服务器推送片段的多少,以及具体推送的内容,通过这种方式,媒体客户端可以尽早的做出决策。
本公开实施例提供了一种流媒体快速启动方法,图11是根据本公开实施例的一种流媒体快速启动方法的流程图,图11是根据本公开实施例的一种可以由用户端设备(如,媒体客户端110)实现的流媒体快速启动方法800的流程示意图,如图11所示,该流程包括以下步骤:
步骤801,根据客户端是否需要快速启动和呈现描述MPD,生成push-fast-start directive, 其中,所述push-fast-start directive可以不包含任何参数,也可以包含一些表示客户端偏好的参数,比如加入客户端偏好的码率,偏好的媒体片段类型,偏好的媒体片段个数等或这些的组合等;
步骤802,向媒体服务器发送MPD片段请求消息,其中,所述MPD片段请求消息由上述push-fast-start directive与MPD请求消息指令组成;
步骤803,从所述媒体服务器接收响应MPD片段请求消息的MPD片段,并解析响应消息头部信息中push-fast-start directive中的URL_TEMPLATE参数。判断媒体客户端需要的片段是否存在于参数列表,存在的话则等待获取媒体服务器推送的内容,不存在的话(Miss),直接请求所需片段序列。
所述步骤802中,所述片段请求消息具体可通过且不限于以下形式发送:HTTP/2请求报文的扩展首部的键值对形式、WebSocket的帧中的JSON键值对形式等。
所述步骤804中,所述参数URL_TEMPLATE参数列表由媒体服务器生成,该列表可以根据多数媒体客户端的命中情况来预测,或者实现指定配置文件等。
基于以上步骤,媒体客户端通过生成所述push-fast-start directive,即可告诉媒体服务器,客户端期待媒体服务器推送片段序列,以快速启动;通过使用从所述媒体服务器接收服务器推送的push-fast-start acknowledge中的URL_TEMPLATE参数列表,减少了客户端盲目等待的时间,降低了启动延迟,并且对于push-fast-start acknowledge进行了更加合理的压缩传输。所述方法800为示例性实施例,可以对所述方法800进行替代性修改,且可以根据需要合并和/或附加步骤。
下文是一个示例性实施例,用以说明在此介绍的流媒体快速启动方法和参数URL_TEMPLATE,及其在一些用例中的潜在应用。
图10A示出了示例性MPD 1000。该MPD取自2016ICME Grand Challenge竞赛组委会提供的示例文件(MPD文件亦可以是其他标准类型的DASH MPD文件)。
图10B示出了示例性片段请求消息1010。片段请求消息1010包括了mpd_uri 1011和fast_start推送指令1012,不含参数。
图10B-1示出了示例性片段请求消息1010-1。片段请求消息1010-1包括了mpd_uri 1011-1和fast_start推送指令1012-1,该指令由快速启动信息(fast-start)和推送参数组成。所述推送参数有多种,可以为video=V、audio=A、init-only、biterate=B或者它们相互组合(video、audio、biterate数值或者范围亦可不指定)。
图10C示出了示例性片段响应消息1020。片段响应消息1020包括了mpd_content 1021和fast_start推送确认指令1012,包含参数URL_TEMPLATE,亦即媒体服务器欲推送片段的信息列表压缩形式(此处可以为FDH-DASH标准中的定义格式等)。
图10D示出了媒体客户端110与媒体服务器120的示例性交互流程。交互流程起始于步 骤1031,媒体客户端110通过FDH访问引擎113向所述媒体服务器120发送MPD请求消息,请求MPD1000,并告诉媒体服务器需要快速启动。在步骤1032中,媒体服务器120接收到MPD请求消息后,通过FDH服务模块121获取预测片段的数目以及具体内容,向媒体客户端110发送MPD响应消息,所述MPD响应消息包含MPD400与push-fast-start acknowledge1022。在步骤1033中,所述媒体客户端110通过FDH-DASH控制引擎111解析,所需片段是否在服务器推送的片段列表中,如果在等待获取文件内容,否则,立马请求所需片段。媒体服务器在步骤1034中,通过服务模块121向所述媒体客户端110并行发送片段请求消息。在步骤1035中,所述媒体客户端110正常发送片段请求。步骤1033和步骤1034可以同时进行,以便于媒体客户端尽早决策。
图13是计算机系统或网络设备1200的实施例的示意图。所述网络设备1200可以为任意合适的设备予以实现,如,网络服务器、媒体服务器(如,媒体服务器120)或用户端设备(如,媒体客户端110)等等。所述网络设备1200能够接收、处理和发送去向以及来自网络的片段请求消息/片段响应消息/片段等消息。所述网络设备1200可以包括与接收器1211连接的一个或多个入口端1210,其中,所述接收器1211可用于通过FDH通道从其他网络节点接收MPD和/或片段。所述网络设备1200还可以包括与发送器1231连接的一个或多个出口端1230,其中,所述发送器1231可以通过FDH通道向其他网络节点发送MPD和/或片段。所述网络设备1200还可以包括处理器1220,其中,所述处理器1220与所述接收器1211链接,设置为处理所述片段或者确定向那个网络节点发送所述片段。
所述处理器1220可以通过硬件、软件及其组合来实现。所述处理器1220可用一个或多个CPU芯片、可编程门阵列、专用集成电路和/或数字信号处理器予以实现。所述处理1220可用于实现在此描述的任意功能模块或单元,例如,FDH-DASH控制引擎111、FDH访问引擎113、媒体引擎112、FDH服务模块121、解析引擎122、媒体播放器1221或者本领域普通技术人员熟知的其他任何功能组件,或者其任何组合。所述媒体播放器1221可以为在所述处理器1220上运行的应用程序,设置为解码播放所述媒体片段。
所述网络设备1200还可以包括至少一个存储器1222。所述存储器1222可设置为存储MPD1223和片段1224。所述MPD1223和所述片段1224可以通过以上所述的各种形式进行存储和打包。例如,所述MPD1223可以为所述MPD300(或者其他在MPEG-DASH中定义的标准MPD文件)。如图13所示,所述片段1224和所述MPD1223可以作为单独的文件进行存储,也可以将其存储在单个文件中。
在实践中,可能存在所述网络设备1200处理的双向流量,因此,一些端口可既接收也发送报文。在这种情况下,所述入口端1210和出口端1230可以是共设在一起的或者可以认识始于收发器连接的相同端口的不同功能。所述处理器1220、所述存储器1222、所述接收器1211和所述发送器1231中的一个或多个也可以设置为至少部分实现或支持上文描述的任意方法和实现方式。
在本实施例中还提供了另一种流媒体快速启动方法,图14是根据本公开实施例的一种流媒体快速启动方法的流程图,如图14所示,该流程包括如下步骤:
步骤S1401,媒体服务器接收客户端发送的快速启动类型推送指令,其中,所述快速启动类型推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列。
步骤S1403,所述媒体服务器根据将要推送的初始化片段和/或媒体片段序列,生成快速启动类型推送确认指令。
步骤S1405,所述媒体服务器向所述客户端发送所述快速启动类型推送确认指令。
在一种可选的实施例中,上述流媒体快速启动方法的步骤可以包括:
媒体服务器获取快速启动类型推送指令push-fast-start directive;所述媒体服务器生成快速启动类型推送确认指令push-fast-start acknowledge,其中,所述快速启动类型推送确认指令用于通知客户端将要推送的推送初始化片段序列和/或媒体片段序列;向所述客户端发送所述快速启动类型推送确认指令,向所述客户端推送初始化片段序列和/或媒体片段序列。
可选地,在本申请上述实施例中,所述媒体服务器接收所述客户端发送的MPD请求消息,所述MPD请求消息中包含所述快速启动类型推送指令。
可选地,在本申请上述实施例中,媒体服务器接收快速启动类型推送指令包括:所述媒体服务器接收所述客户端发送的MPD请求消息,所述MPD请求消息中包含所述快速启动类型推送指令。
可选地,在本申请上述实施例中,所述媒体服务器生成快速启动类型推送确认指令,包括:
步骤S14031,所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成URL模板类型的推送参数。
步骤S14033,所述快速启动类型推送确认指令中携带所述URL模板类型的推送参数。
可选地,在本申请上述实施例中,所述媒体服务器生成快速启动类型推送确认指令,包括:
步骤S14035,所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成数值类型的推送参数。
步骤S14037,所述快速启动类型推送确认指令中携带所述数值类型的推送参数。
可选地,在本申请上述实施例中,所述媒体服务器生成快速启动类型推送确认指令,包括:
步骤S14039,所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成URL列表类型的推送参数。
步骤S14040,所述快速启动类型推送确认指令中携带所述URL列表类型的推送参数。
可选地,在本申请上述实施例中,发送所述快速启动类型推送确认指令包括:
所述媒体服务器通过MPD响应消息向所述客户端发送所述快速启动类型推送确认指令,其中,所述MPD响应消息至少包含MPD数据,以及所述快速启动类型推送确认指令。
可选地,在本申请上述实施例中,所述媒体服务器生成快速启动类型推送确认指令,包括:
所述媒体服务器根据所述客户端的预定数量和/或所述客户端的历史访问结果,确定所述快速启动类型推送确认指令中携带的推送参数。
可选地,在本申请上述实施例中,所述媒体服务器向所述客户端发送所述快速启动类型推送确认指令之后,上述方法还包括:
所述媒体服务器向所述客户端推送所述快速启动类型推送确认指令指示的片段序列初始化片段和/或媒体片段序列。
可选地,在本申请上述实施例中,所述MPD请求消息还包括:所述MPD请求消息中携带的快速启动推送指令包含偏好参数信息,所述偏好参数包括如下任意一种或多种属性:分辨率范围、码率范围、媒体属性和语言。
在一种可选的实施例中,所述MPD请求消息还包括:至少一个请求参数的情况下,所述初始化片段和媒体片段序列的信息包括请求参数所请求的片段的属性。
可选地,在本申请上述实施例中,所述媒体服务器接收所述客户端发送的MPD请求消息,以及所述快速启动类型推送指令,进一步包括:
通过HTTP/2报文方式接收所述MPD请求消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送指令;或者,
通过WebSocket中DASH子协议的get_mpd消息接收所述MPD请求消息,其中,所述get_mpd消息的JSON键值对携带快速启动类型推送确认指令。
可选地,在本申请上述实施例中,所述媒体服务器向所述客户端发送MPD响应消息,以及所述快速启动类型推送确认指令,进一步包括:
通过HTTP/2报文方式发送所述MPD响应消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送确认指令;或者,
通过WebSocket中DASH子协议的new_mpd消息发送所述MPD响应消息,其中,所述new_mpd消息的JSON键值对携带快速启动类型推送确认指令。
在一种可选的实施例中,所述媒体服务器通过如下任意一种或多种方式推送初始化片段和媒体片段序列的信息:HTTP/2的MPD响应报文方式和WebSocket中DASH子协议的new_mpd消息,其中,HTTP/2的MPD响应报文通过Push-Policy首部携带快速启动类型推送确认指令;WebSockets中DASH子协议的new_mpd消息通过JSON键值对形式携带快速启动类型推送确认指令。
在一种可选的实施例中,媒体服务器获取快速启动类型推送指令push-fast-start directive包括:通过获取并解析MPD请求消息获取所述快速启动类型推送指令,所述MPD请求消息至少包含MPD URI和快速启动类型推送指令;所述媒体服务器生成快速启动类型推送确认指令push-fast-start acknowledge。
在一种可选的实施例中,所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成快速启动类型推送确认指令,其中,所述快速启动类型推送确认指令的推送参数可为URL模板URL_TEMPLATE类型,和/或数值NUMBER类型,和/或URL列表URL_LIST类型。
在一种可选的实施例中,向所述客户端发送所述快速启动类型推送确认指令包括:通过MPD响应消息向所述客户端发送所述快速启动类型推送确认指令,其中,所述MPD响应消息用于响应所述客户端发送MPD请求消息,所述MPD响应消息至少包含MPD数据和所述快速启动类型推送确认指令。
在一种可选的实施例中,上述流媒体快速启动方法包括:
媒体服务器接收客户端发送的用于获取媒体呈现描述文件MPD的请求消息,其中,请求信息至少包括:快速启动推送指令和MPD请求指令;
媒体服务器根据请求消息生成响应信息,其中,响应消息包括:确定客户端需要快速启动的推送确认指令、响应MPD请求指令得到的MPD数据;
在媒体服务器生成预测的片段消息之后,媒体服务器将预测的片段消息和响应信息推送至客户端,使得客户端根据预测的片段消息和MPD数据,获取客户端需要的媒体内容,其中,预测的片段消息为媒体服务器主动推送的与推送确认指令对应的片段消息。
图15是根据本申请实施例的一种可选的流媒体快速启动方法,结合图15所示,该方法包括:
步骤171,从所述媒体客户端接收MPD片段请求消息,其中,所述片段请求消息包含MPD请求消息和push-fast-start directive。
步骤172,根据服务器的预测,生成push-fast-start acknowledge参数,向所述媒体客户端发送MPD片段相应消息,其中,所述片段相应消息包含push-fast-start directive和MPD片段。
步骤173,根据所述push-fast-start acknowledge参数,确定所述媒体客户端可能期望的片段序列。
步骤174,向所述媒体客户端推送预测片段序列。
下文是一个示例性实施例,用以说明在此介绍的流媒体快速启动方法和参数URL_LIST,及其在一些用例中的潜在应用。
图9A示出了示例性MPD 700。该MPD取自2016ICME Grand Challenge竞赛组委会提 供的示例文件(MPD文件亦可以是其他标准类型的DASH MPD文件)。
图9B示出了示例性片段请求消息710。片段请求消息710包括了mpd_uri 711和fast_start推送指令712,不含参数。
图9B-1示出了示例性片段请求消息710-1。片段请求消息710-1包括了mpd_uri 711-1和fast_start推送指令712-1,该指令由快速启动信息(fast-start)和推送参数组成。所述推送参数有多种,可以为video=V、audio=A、init-only、biterate=B或者它们相互组合(video、audio、biterate数值或者范围亦可不指定)。
图9C示出了示例性片段响应消息720。片段响应消息720包括了mpd_content 721和fast_start推送确认指令712,包含参数URL_LIST,亦即媒体服务器欲推送片段的信息列表(URL等,不包含具体数据)。
图9D示出了媒体客户端110与媒体服务器120的示例性交互流程。交互流程起始于步骤731,媒体客户端110通过FDH访问引擎113向所述媒体服务器120发送MPD请求消息,请求MPD700,并告诉媒体服务器需要快速启动。在步骤732中,媒体服务器120接收到MPD请求消息后,通过FDH服务模块121获取预测片段的数目以及具体内容,向媒体客户端110发送MPD响应消息,所述MPD响应消息包含MPD400与push-fast-start acknowledge722。在步骤733中,所述媒体客户端110通过FDH-DASH控制引擎111解析,所需片段是否在服务器推送的片段列表中,如果在等待获取文件内容,否则,立马请求所需片段。媒体服务器在步骤734中,通过服务模块121向所述媒体客户端110并行发送片段请求消息。在步骤735中,所述媒体客户端110正常发送片段请求。步骤733和步骤734可以同时进行,以便于媒体客户端尽早决策。
可选地,根据本申请上述实施例,在所述快速启动类型推送确认指令的推送参数为数值NUMBER类型的情况下,根据将要推送的初始化片段序列和/或媒体片段序列,生成快速启动类型推送确认指令,包括:
所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定数值K,并确定与所述数值K对应的K个片段消息。
所述媒体服务器将所述数值K加载至所述快速启动类型推送确认指令,
其中,所述媒体服务器将所述初始化片段序列和/或媒体片段序列推送至所述客户端包括:所述媒体服务器将所述数值K以及与所述数值K对应的K个片段消息推送至所述客户端。
可选地,在一种可选的实施例中,在所述推送确认指令中携带所述媒体服务器预测的参数值K的情况下,所述预测的片段消息为K个片段消息,其中,所述媒体服务器根据所述请求消息生成响应信息,包括:
所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定预测的参数值K,并确定与所述参数值K对应的K个片段消息;
所述媒体服务器将所述预测的参数值K加载至所述推送确认指令之后,得到所述响应信息;
其中,所述媒体服务器将所述预测的片段消息和所述响应信息推送至所述客户端包括:所述媒体服务器将所述参数值K以及与所述参数值K对应的K个片段消息推送至所述客户端。
本公开实施例中提供了一种流媒体快速启动方法,图16是根据本公开实施例的一种流媒体快速启动方法的流程图,图16是根据本公开实施例的一种可以由网络服务器(如,媒体服务器120)实现的流媒体快速启动方法300的流程示意图,如图16所示,该流程包括如下步骤:
步骤301,从所述媒体客户端接收MPD片段请求消息,其中,所述片段请求消息包含MPD请求信息和push-fast-start directive;
步骤302,根据服务器端的预测,生成push-fast-start acknowledge参数值K,向所述媒体客户端发送MPD片段响应消息,其中,所述片段响应消息包含push-fast-start acknowledge和MPD片段;
步骤303,根据所述push-fast-start acknowledge参数值K,确定所述媒体客户端可能期望推送的K个片段序列;
步骤304,向所述媒体客户端推送上述K个片段序列的片段消息和片段序列。
所述步骤302中,所述push-fast-start acknowledge参数值K可以根据服务器所有客户端预测结果来进行预测,如果大部分预测成功,适当降低阈值,如果大部分预测失败,适当提高阈值,否则不变(亦可以通过初始化指定且不限于所介绍的K值生成方法,或者结合媒体客户端push-fast-start directive中的参数决策等)。
所述步骤303中,所述push-fast-start acknowledge保证的参数值K个片段序列可以根据服务器所有客户端预测结果来进行预测(亦可以通过初始化指定且不限于所介绍的K个片段序列指定方法)。
所述步骤304中,所述K个片段序列的片段消息,用来通知客户端要推送的片段消息,比如片段URL等(或者可以通过其他告知方式,比如HTTP/2中的推送告知方式——push promise和WebSocket中的推送内容告知方式等)。
基于以上步骤,媒体服务器只需根据所述push-fast-start directive,在服务器指定推送个数K以及K个片段序列,仅需通过push-fast-start acknowledge和K个片段序列的消息,即可让客户端快速决策,减少了服务器驱动的盲目性,客户端驱动的不合理性,实现了FDH-DASH对媒体客户端的透明性,很好的达到了快速启动的目的。所述方法300为示例性实施例,可以根据需要进行修改。
下文是一个示例性实施例,用以说明在此介绍的流媒体快速启动方法和参数值K,及其在一些用例中的潜在应用。
图7A示出了示例性MPD 400。该MPD取自2016ICME Grand Challenge竞赛组委会提供的示例文件(MPD文件亦可以是其他标准类型的DASH MPD文件)。
图7B示出了示例性片段请求消息410。片段请求消息410包括了mpd_uri 411和fast_start推送指令412,不含参数。
图7B-1示出了示例性片段请求消息410-1。片段请求消息410-1包括了mpd_uri 411-1和fast_start推送指令412-1,该指令由快速启动信息(fast-start)和推送参数组成。所述推送参数有多种,可以为video=V、audio=A、init-only、biterate=B或者它们相互组合(video、audio、biterate数值或者范围亦可不指定)。
图7C示出了示例性片段响应消息420。片段响应消息420包括了mpd_content 421和fast_start推送确认指令412,包含参数值K,亦即媒体服务器欲推送片段的个数。
图7D示出了媒体客户端110与媒体服务器120的示例性交互流程。交互流程起始于步骤431,媒体客户端110通过FDH访问引擎113向所述媒体服务器120发送MPD请求消息,请求MPD400,并告诉媒体服务器需要快速启动。在步骤432中,媒体服务器120接收到MPD请求消息后,通过FDH服务模块121获取预测片段的数目以及具体内容,向媒体客户端110发送MPD响应消息,所述MPD响应消息包含MPD400与push-fast-start acknowledge422。在步骤433中,媒体服务器120服务模块121根据本地预测和MPD信息生成预测片段信息,并生成要推送的片段序列。同时向媒体客户端并行发送要推送片段的信息(URL等信息,不包含具体数据)。在步骤434中,所述媒体客户端110通过FDH-DASH控制引擎111解析,所需片段是否在服务器推送的片段消息中,如果在等待获取文件内容,否则,立马请求所需片段。媒体服务器在步骤435中,通过服务模块121向所述媒体客户端110并行发送片段请求消息。在步骤436中,所述媒体客户端110正常发送片段请求。步骤434和步骤435可以同时进行,以便于媒体客户端尽早决策。
可选地,根据本申请上述实施例,在所述快速启动类型推送确认指令的推送参数为URL模板的情况下,根据将要推送的初始化片段序列和/或媒体片段序列,生成快速启动类型推送确认指令,包括:
所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定初始化片段序列和/或媒体片段序列。
所述媒体服务器将所述初始化片段序列和/或媒体片段序列加载至所述快速启动类型推送确认指令;
其中,所述媒体服务器将所述初始化片段序列和/或媒体片段序列推送至所述客户端包括:所述媒体服务器将所述快速启动类型推送确认指令推送至所述客户端。
在一种可选的实施例中,在所述推送确认指令中携带所述媒体服务器预测的推送片段列表的情况下,所述推送片段列表为从所述推送确认指令这种解析得到的所述预测的片段消息,其中,所述媒体服务器根据所述请求消息生成响应信息,包括,
所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定预测的推送片段列表;
所述媒体服务器将所述推送片段列表加载至所述推送确认指令之后,得到所述响应信息;
其中,所述媒体服务器将所述预测的片段消息和所述响应信息推送至所述客户端包括:所述媒体服务器将所述推送片段列表推送至所述客户端。
可选地,根据本申请上述实施例,在所述快速启动类型推送确认指令的推送参数为URL列表的情况下,根据将要推送的初始化片段序列和/或媒体片段序列,生成快速启动类型推送确认指令,包括:
所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定初始化片段序列和/或媒体片段序列。
所述媒体服务器将所述初始化片段序列和/或媒体片段序列加载至所述快速启动类型推送确认指令;
其中,所述媒体服务器将所述初始化片段序列和/或媒体片段序列推送至所述客户端包括:所述媒体服务器将快速启动类型推送确认指令推送至所述客户端。
可选地,根据本申请上述实施例,在所述媒体服务器将所述初始化片段和媒体片段序列的信息推送至所述客户端之后,所述方法还包括:
所述媒体服务器将继续将所述初始化片段和媒体片段序列的信息对应的片段序列推送至所述客户端,其中,所述片段序列为所述客户端需要的媒体内容。
可选地,根据本申请上述实施例,在所述MPD请求消息还包括:至少一个请求参数的情况下,所述初始化片段和媒体片段序列的信息包括请求参数所请求的片段的属性。
可选地,根据本申请上述实施例,所述媒体服务器通过如下任意一种或多种方式推送初始化片段和媒体片段序列的信息:HTTP/2中的推送告知方式和WebSocket中的推送内容告知方式。
在一种可选的实施例中,所述推送片段列表为所述媒体服务器预测的片段序列的URL组成。
在一种可选的实施例中,在所述推送确认指令中携带所述媒体服务器预测的推送片段信息的情况下,所述推送片段信息为从所述推送确认指令这种解析得到的所述预测的片段消息,其中,所述媒体服务器根据所述请求消息生成响应信息,包括:
所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定预测的推送片段信息;
所述媒体服务器将所述推送片段信息加载至所述推送确认指令之后,得到所述响应信息;
其中,所述媒体服务器将所述预测的片段消息和所述响应信息推送至所述客户端包括:所述媒体服务器将所述推送片段信息推送至所述客户端。
在一种可选的实施例中,所述推送片段列消息为所述媒体服务器预测的一个或多个带参数化遍历的URL模板和压缩后的参数列表组成。
在一种可选的实施例中,在所述媒体服务器将所述预测的片段消息和所述响应信息推送至所述客户端之后,所述方法还包括,
所述媒体服务器将继续将所述片段消息对应的片段序列推送至所述客户端,其中,所述片段序列为所述客户端需要的媒体内容。
在一种可选的实施例中,在所述请求信息还包括:至少一个请求参数的情况下,所述预测的片段消息包括请求参数所请求的片段的属性。
在一种可选的实施例中,所述媒体服务器通过如下任意一种或多种方式推送所述预测的片段消息至所述媒体服务器:HTTP/2中的推送告知方式和WebSocket中的推送内容告知方式。
本公开实施例中提供了一种流媒体快速启动方法,图15是根据本公开实施例的一种流媒体快速启动方法的流程图,图15是根据本公开实施例的一种可以由网络服务器(如,媒体服务器120)实现的流媒体快速启动方法600的流程示意图,如图15所示,该流程包括如下步骤:
步骤601,从所述媒体客户端接收MPD片段请求消息,其中,所述片段请求消息包含MPD请求信息和push-fast-start directive;
步骤602,根据服务器端的预测,生成push-fast-start acknowledge参数sement_list,向所述媒体客户端发送MPD片段响应消息,其中,所述片段响应消息包含push-fast-start acknowledge和MPD片段;
步骤603,向所述媒体客户端推送上述预测的片段序列。
所述步骤602中,所述push-fast-start acknowledge参数URL_LIST可以根据服务器所有客户端预测结果来进行预测(亦可以通过初始化指定且不限于所介绍的片段序列指定方法)。
基于以上步骤,媒体服务器只需根据所述push-fast-start directive,在媒体服务器指定推送片段序列,仅需通过push-fast-start acknowledge中的参数URL_LIST列表,即可让客户端快速决策,减少了服务器驱动的盲目性,客户端驱动的不合理性,实现了FDH-DASH对媒体客户端的透明性,很好的达到了快速启动的目的。所述方法600为示例性实施例,可以根据需要进行修改。
本公开实施例中提供了一种流媒体快速启动方法,图12是根据本公开实施例的一种流媒体快速启动方法的流程图,图12是根据本公开实施例的一种可以由网络服务器(如,媒体服务器120)实现的流媒体快速启动方法900的流程示意图,如图12所示,该流程包括如下步骤:
步骤901,从所述媒体客户端接收MPD片段请求消息,其中,所述片段请求消息包含MPD请求信息和push-fast-start directive;
步骤902,根据服务器端的预测(或者通过结合媒体客户端推送的push-fast-start directive参数,亦即客户端偏好来决策),生成push-fast-start acknowledge参数URL_TEMPLATE,向所述媒体客户端发送MPD片段响应消息,其中,所述片段响应消息包含push-fast-start acknowledge和MPD片段;
步骤903,向所述媒体客户端推送上述预测的片段序列。
所述步骤902中,所述push-fast-start acknowledge参数URL_TEMPLATE可以根据服务器所有客户端预测结果来进行预测(亦可以通过初始化指定且不限于所介绍的片段序列指定方法)。
基于以上步骤,媒体服务器只需根据所述push-fast-start directive,在媒体服务器指定推送片段序列,仅需通过push-fast-start acknowledge中的参数URL_TEMPLATE列表,即可让客户端快速决策,减少了服务器驱动的盲目性,客户端驱动的不合理性,实现了FDH-DASH对媒体客户端的透明性,很好的达到了快速启动的目的,同时对于push-fast-start acknowledge进行了更加合理的压缩传输,使得传输参数更加符合规范·。所述方法900为示例性实施例,可以根据需要进行修改。
下文是一个示例性实施例,用以说明在此介绍的流媒体快速启动方法和参数URL_TEMPLATE,及其在一些用例中的潜在应用。
图9A示出了示例性MPD 1000。该MPD取自2016ICME Grand Challenge竞赛组委会提供的示例文件(MPD文件亦可以是其他标准类型的DASH MPD文件)。
图9B示出了示例性片段请求消息1010。片段请求消息1010包括了mpd_uri 1011和fast_start推送指令1012,不含参数。
图9B-1示出了示例性片段请求消息1010-1。片段请求消息1010-1包括了mpd_uri 1011-1和fast_start推送指令1012-1,该指令由快速启动信息(fast-start)和推送参数组成。所述推送参数有多种,可以为video=V、audio=A、init-only、biterate=B或者它们相互组合(video、audio、biterate数值或者范围亦可不指定)。
图9C示出了示例性片段响应消息1020。片段响应消息1020包括了mpd_content 1021和fast_start推送确认指令1012,包含参数URL_TEMPLATE,亦即媒体服务器欲推送片段的信息列表压缩形式(此处可以为FDH-DASH标准中的定义格式等)。
图9D示出了媒体客户端110与媒体服务器120的示例性交互流程。交互流程起始于步骤1031,媒体客户端110通过FDH访问引擎113向所述媒体服务器120发送MPD请求消息,请求MPD1000,并告诉媒体服务器需要快速启动。在步骤1032中,媒体服务器120接收到MPD请求消息后,通过FDH服务模块121获取预测片段的数目以及具体内容,向媒体客户端 110发送MPD响应消息,所述MPD响应消息包含MPD400与push-fast-start acknowledge1022。在步骤1033中,所述媒体客户端110通过FDH-DASH控制引擎111解析,所需片段是否在服务器推送的片段列表中,如果在等待获取文件内容,否则,立马请求所需片段。媒体服务器在步骤1034中,通过服务模块121向所述媒体客户端110并行发送片段请求消息。在步骤1035中,所述媒体客户端110正常发送片段请求。步骤1033和步骤1034可以同时进行,以便于媒体客户端尽早决策。
图13是计算机系统或网络设备1200的实施例的示意图。所述网络设备1200可以为任意合适的设备予以实现,如,网络服务器、媒体服务器(如,媒体服务器120)或用户端设备(如,媒体客户端110)等等。所述网络设备1200能够接收、处理和发送去向以及来自网络的片段请求消息/片段响应消息/片段等消息。所述网络设备1200可以包括与接收器1211连接的一个或多个入口端1210,其中,所述接收器1211可设置为通过FDH通道从其他网络节点接收MPD和/或片段。所述网络设备1200还可以包括与发送器1231连接的一个或多个出口端1230,其中,所述发送器1231可以通过FDH通道向其他网络节点发送MPD和/或片段。所述网络设备1200还可以包括处理器1220,其中,所述处理器1220与所述接收器1211链接,设置为处理所述片段或者确定向那个网络节点发送所述片段。
所述处理器1220可以通过硬件、软件及其组合来实现。所述处理器1220可用一个或多个CPU芯片、可编程门阵列、专用集成电路和/或数字信号处理器予以实现。所述处理1220可用于实现在此描述的任意功能模块或单元,例如,FDH-DASH控制引擎111、FDH访问引擎113、媒体引擎112、FDH服务模块121、解析引擎122、媒体播放器1221或者本领域普通技术人员熟知的其他任何功能组件,或者其任何组合。所述媒体播放器1221可以为在所述处理器1220上运行的应用程序,设置为解码播放所述媒体片段。
所述网络设备1200还可以包括至少一个存储器1222。所述存储器1222可设置为存储MPD1223和片段1224。所述MPD1223和所述片段1224可以通过以上所述的各种形式进行存储和打包。例如,所述MPD1223可以为所述MPD300(或者其他在MPEG-DASH中定义的标准MPD文件)。如图15所示,所述片段1224和所述MPD1223可以作为单独的文件进行存储,也可以将其存储在单个文件中。
在实践中,可能存在所述网络设备1200处理的双向流量,因此,一些端口可既接收也发送报文。在这种情况下,所述入口端1210和出口端1230可以是共设在一起的或者可以认识始于收发器连接的相同端口的不同功能。所述处理器1220、所述存储器1222、所述接收器1211和所述发送器1231中的一个或多个也可以设置为至少部分实现或支持上文描述的任意方法和实现方式。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机, 服务器,或者网络设备等)执行本公开各个实施例所述的方法。
在本实施例中还提供了一种流媒体快速启动装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图17是根据本公开实施例的流媒体快速启动装置的结构框图,如图17所示,该装置包括:
访问引擎模块170,设置为客户端向媒体服务器发送快速启动类型推送指令,其中,所述快速启动类型推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列。
第一接收模块172,设置为所述客户端接收所述媒体服务器返回的快速启动类型推送确认指令。
控制引擎模块174,设置为所述客户端根据所述快速启动类型推送确认指令获取所述媒体服务器将要推送的初始化片段和/或媒体片段序列的信息。
在一种可选的实施例中,上述流媒体快速启动装置包括:生成引擎模块,设置为客户端生成快速启动类型推送指令push-fast-start directive;访问引擎模块,设置为向媒体服务器发送所述快速启动类型推送指令,其中,所述快速启动类型推送指令用于通知所述媒体服务器推送初始化片段序列和/或媒体片段序列;第一接收模块,设置为所述客户端获取快速启动类型推送确认指令push-fast-start acknowledge。控制引擎模块,设置为所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和媒体片段序列的信息。
在另一种可选的实施例中,上述流媒体快速启动装置包括:生成引擎模,设置为客户端生成快速启动推动指令:访问引擎模块,设置为客户端发送用于获取媒体呈现描述文件MPD的请求消息至媒体服务器,其中,所述请求信息至少包括:快速启动推送指令和MPD请求指令;接收模块,设置为所述客户端接收所述媒体服务器根据所述请求消息返回的响应消息,其中,所述响应消息包括:确定所述客户端需要快速启动的推送确认指令、响应所述MPD请求指令得到的MPD数据;控制引擎模块,设置为在所述客户端获取到预测的片段消息之后,根据所述预测的片段消息和所述MPD数据,获取所述客户端需要的媒体内容,其中,所述预测的片段消息为所述媒体服务器主动推送的与所述推送确认指令对应的片段消息。
其中,上述生成引擎模块可以是方法实施例中的生成引擎,访问引擎模块可以是方法实施例中的访问引擎模块,控制引擎模块可以是方法实施例中的控制引擎。
可选地,根据本申请上述实施例,上述第一接收模块还包括:
第一接收子模块,设置为所述客户端接收所述媒体服务器返回的MPD响应消息,所述MPD响应消息至少包含MPD数据,以及所述快速启动类型推送确认指令。
可选地,根据本申请上述实施例,所述控制引擎模块包括:
第一确认模块,设置为所述快速启动类型推送确认指令中携带URL模板URL_TEMPLATE类型的推送参数;
第一获取模块,设置为所述客户端解析URL模板推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
可选地,根据本申请上述实施例,所述控制引擎模块包括:
第二确认模块,设置为所述快速启动类型推送确认指令中携带数值NUMBER类型的推送参数;
第二获取模块,设置为所述客户端解析数值推送参数K,并接收后续的K个推送承诺PUSH_PROMISE帧,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
可选地,根据本申请上述实施例,所述控制引擎模块包括:
第三确认模块,设置为所述快速启动类型推送确认指令中携带URL列表URL_LIST类型的推送参数;
第三获取模块,设置为所述客户端解析URL列表推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
可选地,根据本申请上述实施例,所述装置还包括:
第四确认模块,设置为所述客户端解析所述MPD数据,确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的信息;
第二接收模块,设置为若所述获取的媒体服务器将要推送的初始化片段和/或媒体片段序列的信息等同于所述确定的需要媒体服务器推送的初始化片段和/或媒体片段序列的信息,所述客户端接收所述媒体服务器推送的初始化片段序列和/或媒体片段序列。
在一种可选的实施例中,该装置除包括图17所示的所有模块外,控制引擎模块包括:
发送模块,设置为通过MPD请求消息向所述媒体服务器发送所述快速启动类型推送指令,其中,所述MPD请求消息用于请求所述媒体服务器发送MPD响应消息,所述MPD响应消息至少应包含MPD数据和快速启动类型推送确认指令。
在一种可选的实施例中,上述引擎模块包括:确认模块,设置为在所述推送确认指令中携带所述媒体服务器预测的参数值K的情况下,所述客户端从所述推送确认指令中解析得到所述参数值K,并接收所述媒体服务器推送的与所述参数值K对应的K个片段消息。
在一种可选的实施例中,上述第一接收模块还包括:第一获取模块,设置为通过获取并解析MPD响应消息获取所述快速启动类型推送确认指令,所述MPD响应消息至少包含MPD数据和快速启动类型推送确认指令。
在一种可选的实施例中,根据本申请上述实施例,上述控制引擎模块包括:
初始化模块,设置为初始化片段序列和/或媒体片段序列的信息;
第二获取模块,设置为在所述快速启动类型推送指令的推送参数PUSH_PARAMS为数值NUMBER类型的情况下,所述客户端通过解析数值K和后续的K个推送承诺PUSH_PROMISE帧,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息;
第三获取模块,设置为在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL列表URL_LIST类型的情况下,所述客户端解析URL列表,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
第一获取模块,设置为通过获取并解析MPD响应消息获取所述快速启动类型推送确认指令,所述MPD响应消息至少包含MPD数据和快速启动类型推送确认指令
在一种可选的实施例中,该装置除包括图17所示的所有模块外,控制引擎模块还包括:
第一解析引擎模块,设置为所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息;
第一检测模块,设置为所述客户端检测所述K个片段消息中是否命中所述媒体信息,所述片段消息为URL地址;
第一获取模块,设置为如果在所述K个片段消息中命中所述媒体消息成功,所述客户端获取所述媒体服务器推送的与所述预测的片段消息所对应的片段序列,其中,所述片段序列为所述客户端需要的媒体内容。
在一种可选的实施例中,根据本申请上述实施例,上述第二获取模块包括:
第二接收模块,设置为所述客户端从所述快速启动类型推送指令中解析得到所述参数值K,并接收所述媒体服务器推送的与所述参数值K对应的K个片段消息;
第二解析引擎模块,设置为所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息;
第二检测模块,设置为所述客户端检测所述K个片段消息中是否命中所述媒体信息,所述片段消息为URL地址;
第四获取模块,设置为如果在所述K个片段消息中命中所述媒体消息成功,所述客户端获取所述媒体服务器将要推送的初始化片段和媒体片段序列的信息。
在一种可选的实施例中,如果在所述K个片段消息中命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求,或取消所述媒体服务器推送媒体内容的会话。
在一种可选的实施例中,在所述推送确认指令中携带所述媒体服务器预测的推送片段列表的情况下,所述推送片段列表为从所述推送确认指令这种解析得到的所述预测的片段消息, 其中,控制引擎模块包括:
第二解析引擎模块,所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息;
第二检测模块,设置为所述客户端检测所述推送片段列表中是否命中所述媒体信息;
第二获取模块,设置为如果在所述推送片段列表中命中所述媒体消息成功,所述客户端获取所述媒体服务器推送的与所述推送片段列表所对应的片段序列,其中,所述片段序列为所述客户端需要的媒体内容。
图18是根据本公开实施例的流媒体快速启动装置的结构框图,如图18所示,该装置包括:
服务模块180,设置为媒体服务器接收客户端发送的快速启动类型推送指令。
生成引擎模块182,设置为所述媒体服务器根据将要推送的初始化片段和/或媒体片段序列,生成快速启动类型推送确认指令。
第一推送模块184,设置为所述媒体服务器向所述客户端发送所述快速启动类型推送确认指令。
在一种可选的实施例中,该装置包括:服务模块,设置为媒体服务器获取快速启动类型推送指令push-fast-start directive;生成引擎模块,设置为所述媒体服务器生成快速启动类型推送确认指令push-fast-start acknowledge,其中,所述快速启动类型推送确认指令用于通知客户端将要推送的推送初始化片段序列和/或媒体片段序列;第一推送模块,设置为向所述客户端发送所述快速启动类型推送确认指令。
在一种可选的实施例中,上述流媒体快速启动装置可以包括:服务模块,设置为媒体服务器接收客户端发送的用于获取媒体呈现描述文件MPD的请求消息,其中,所述请求信息至少包括:快速启动推送指令和MPD请求指令;生成引擎模块,所述所述媒体服务器根据所述请求消息生成响应信息,其中,所述响应消息包括:确定所述客户端需要快速启动的推送确认指令、响应所述MPD请求指令得到的MPD数据;解析引擎模块,设置为在所述媒体服务器生成预测的片段消息之后,所述媒体服务器将所述预测的片段消息和所述响应信息推送至所述客户端,使得所述客户端根据所述预测的片段消息和所述MPD数据,获取所述客户端需要的媒体内容,其中,所述预测的片段消息为所述媒体服务器主动推送的与所述推送确认指令对应的片段消息。
其中,上述服务模块可以是方法实施例中的服务模块,上述生成引擎模块可以是方法实施例中的生成引擎,上述解析引擎模块可以是方法实施例中的解析引擎。
在本实施例中还提供了一种流媒体快速启动系统,该系统设置为实现上述实施例及优选实施方式,已经进行过说明的不再赘述。
图19是根据本公开实施例的流媒体快速启动系统的结构框图,如图19所示,该系统包括:
客户端190,设置为向媒体服务器发送所述快速启动类型推送指令,并接收媒体服务器返回的快速启动类型推送确认指令,根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,其中,所述快速启动类型推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列;
所述媒体服务器192,与所述客户端通信,设置为接收所述客户端发送的所述快速启动类型推送指令,生成快速启动类型推送确认指令,向所述客户端发送所述快速启动类型推送确认指令,并向所述客户端推送所述初始化片段序列和/或所述媒体片段序列。
在一种可选的实施例中,上述系统包括:客户端,设置为生成快速启动类型推送指令push-fast-start directive,并向媒体服务器发送所述快速启动类型推送指令,在获取到快速启动类型推送确认指令push-fast-start acknowledge之后,根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和媒体片段序列的信息,其中,所述快速启动类型推送指令用于通知所述媒体服务器推送初始化片段序列和/或媒体片段序列;所述媒体服务器,与所述客户端通信,设置为接收所述客户端发送的所述快速启动类型推送指令,向所述客户端发送所述快速启动类型推送确认指令,并向所述客户端推送所述初始化片段序列和/或所述媒体片段序列。
在另一种可选的实施例中,上述流媒体快速启动系统包括:客户端,生成快速启动推动指令,并向媒体服务器发送用于获取媒体呈现描述文件MPD的请求消息至媒体服务器,在获取到预测的片段消息之后,根据所述预测的片段消息和所述MPD数据,获取需要的媒体内容,其中,所述请求信息至少包括:快速启动推送指令和MPD请求指令,所述预测的片段消息为所述媒体服务器主动推送的与所述推送确认指令对应的片段消息。媒体服务器,与所述客户端通信,设置为接收客户端发送的用于获取媒体呈现描述文件MPD的请求消息,并根据所述请求消息生成响应信息,在生成预测的片段消息之后,将所述预测的片段消息和所述响应信息推送至所述客户端。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
本公开的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,客户端向媒体服务器发送快速启动类型推送指令,其中,所述快速启动类型推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列。
S2,所述客户端接收所述媒体服务器返回的快速启动类型推送确认指令。
S3,所述客户端根据所述快速启动类型推送确认指令获取所述媒体服务器将要推送的初始化片段和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:客户端向媒体服务器发送快速启动类型推送指令包括:所述客户端通过MPD请求消息向所述媒体服务器发送所述快速启动类型推送指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端接收所述快速启动类型推送确认指令包括:所述客户端接收所述媒体服务器返回的MPD响应消息,所述MPD响应消息至少包含MPD数据,以及所述快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:所述快速启动类型推送确认指令中携带URL模板类型的推送参数;所述客户端解析URL模板推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:所述快速启动类型推送确认指令中携带数值类型的推送参数;所述客户端解析数值推送参数K,并接收后续的K个推送承诺PUSH_PROMISE帧,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:所述快速启动类型推送确认指令中携带URL列表类型的推送参数;所述客户端解析URL列表推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端解析所述MPD数据,确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的信息;若所述获取的媒体服务器将要推送的初始化片段和/或媒体片段序列的信息等同于所述确定的需要媒体服务器推送的初始化片段和/或媒体片段序列的信息,所述客户端接收所述媒体服务器推送的初始化片段序列和/或媒体片段序列。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端解析所述MPD数据,确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的信息;若所述获取的媒体服务器将要推送的初始化片段和/或媒体片段序列的信息不同于所述确定的需要媒体服务器推送的初始化片段和/或媒体片段序列的信息,所述客户端取消所述媒体服务器推送的初始化片段序列和/或媒体片段序列。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端向所述媒 体服务器发送获取所述确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的请求。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述MPD请求消息中携带的快速启动推送指令包含偏好参数信息,所述偏好参数包括如下任意一种或多种属性:分辨率范围、码率范围、媒体属性和语言。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端接收所述媒体服务器返回的MPD响应消息,以及所述快速启动类型推送确认指令,进一步包括:通过HTTP/2报文方式接收所述MPD响应消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送确认指令;或者,通过WebSocket中DASH子协议的new_mpd消息接收所述MPD响应消息,其中,所述new_mpd消息的JSON键值对携带快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端向所述媒体服务器发送MPD请求消息,以及所述快速启动类型推送指令,进一步包括:通过HTTP/2报文方式发送所述MPD请求消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送指令;或者,通过WebSocket中DASH子协议的get_mpd消息发送所述MPD请求消息,其中,所述get_mpd消息的JSON键值对携带快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端通过如下任意一种或多种方式从所述媒体服务器获取到所述MPD响应消息:HTTP/2的MPD响应报文方式和WebSocket中DASH子协议的new_mpd消息,其中,HTTP/2的MPD响应报文通过Push-Policy首部携带快速启动类型推送确认指令;WebSockets中DASH子协议的new_mpd消息通过JSON键值对形式携带快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端通过如下任意一种或多种方式发送所述MPD请求消息:HTTP/2请求报文方式和WebSocket中DASH子协议的get_mpd消息,其中,HTTP/2请求报文通过Accept-Push-Policy首部携带快速启动类型推送指令;WebSockets中DASH子协议的get_mpd消息通过JSON键值对形式携带快速启动类型推送指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:媒体服务器接收客户端发送的快速启动类型推送指令,其中,所述快速启动类型推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列;所述媒体服务器根据将要推送的初始化片段和/或媒体片段序列,生成快速启动类型推送确认指令;所述媒体服务器向所述客户端发送所述快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:媒体服务器接收快速启动类型推送指令包括:所述媒体服务器接收所述客户端发送的MPD请求消息,所述MPD请求消息中包含所述快速启动类型推送指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器生成快速启动类型推送确认指令,包括:所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成URL模板类型的推送参数;所述快速启动类型推送确认指令中携带所述URL模板类型的推送参数。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器生成快速启动类型推送确认指令,包括:所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成数值类型的推送参数;所述快速启动类型推送确认指令中携带所述数值类型的推送参数。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器生成快速启动类型推送确认指令,包括:所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成URL列表类型的推送参数;所述快速启动类型推送确认指令中携带所述URL列表类型的推送参数。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:发送所述快速启动类型推送确认指令包括:所述媒体服务器通过MPD响应消息向所述客户端发送所述快速启动类型推送确认指令,其中,所述MPD响应消息至少包含MPD数据,以及所述快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器生成快速启动类型推送确认指令,包括:所述媒体服务器根据所述客户端的预定数量和/或所述客户端的历史访问结果,确定所述快速启动类型推送确认指令中携带的推送参数。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器向所述客户端发送所述快速启动类型推送确认指令之后,所述方法还包括:所述媒体服务器向所述客户端推送所述快速启动类型推送确认指令指示的片段序列初始化片段和/或媒体片段序列。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述MPD请求消息中携带的快速启动推送指令包含偏好参数信息,所述偏好参数包括如下任意一种或多种属性:分辨率范围、码率范围、媒体属性和语言。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器通过如下任意一种或多种方式推送初始化片段和媒体片段序列的信息:HTTP/2的MPD响应报文方式和WebSocket中DASH子协议的new_mpd消息,其中,HTTP/2的MPD响应报文通过Push-Policy首部携带快速启动类型推送确认指令;WebSockets中DASH子协议的new_mpd消息通过JSON键值对形式携带快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器接收所述客户端发送的MPD请求消息,以及所述快速启动类型推送指令,进一步包括:通过HTTP/2报文方式接收所述MPD请求消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快 速启动类型推送指令;或者,通过WebSocket中DASH子协议的get_mpd消息接收所述MPD请求消息,其中,所述get_mpd消息的JSON键值对携带快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器向所述客户端发送MPD响应消息,以及所述快速启动类型推送确认指令,进一步包括:通过HTTP/2报文方式发送所述MPD响应消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送确认指令;或者,通过WebSocket中DASH子协议的new_mpd消息发送所述MPD响应消息,其中,所述new_mpd消息的JSON键值对携带快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:客户端生成快速启动类型推送指令push-fast-start directive;向媒体服务器发送所述快速启动类型推送指令,其中,所述快速启动类型推送指令用于通知所述媒体服务器推送初始化片段序列和/或媒体片段序列;所述客户端获取快速启动类型推送确认指令push-fast-start acknowledge;所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:向媒体服务器发送快速启动类型推送指令包括:通过MPD请求消息向所述媒体服务器发送所述快速启动类型推送指令,其中,所述MPD请求消息用于请求所述媒体服务器发送MPD响应消息,所述MPD响应消息至少应包含MPD数据和快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端获取所述快速启动类型推送确认指令包括:通过获取并解析MPD响应消息获取所述快速启动类型推送确认指令,所述MPD响应消息至少包含MPD数据和快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和媒体片段序列的信息:在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL模板URL_TEMPLATE类型的情况下,所述客户端解析URL模板,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息;在所述快速启动类型推送指令的推送参数PUSH_PARAMS为数值NUMBER类型的情况下,所述客户端通过解析数值K和后续的K个推送承诺PUSH_PROMISE帧,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息;在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL列表URL_LIST类型的情况下,所述客户端解析URL列表,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述快速启动类型推送指令的推送参数PUSH_PARAMS为数值NUMBER类型的情况下,所述客户端通过解析数值K和后续的K个推送承诺PUSH_PROMISE帧,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息,包括:所述客户端从所述快速启动类型推送指令中解析得到所述参数值K,并接收所述媒体服务器推送的与所述参数值K对应的K个片段消息;所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息;所述客户端检测所述 K个片段消息中是否命中所述媒体信息,所述片段消息为URL地址;如果在所述K个片段消息中命中所述媒体消息成功,所述客户端获取所述媒体服务器将要推送的初始化片段和媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:如果在所述K个片段消息中命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求并取消所述媒体服务器推送媒体内容的会话,或所述客户端发起获取所述需要的媒体内容的请求并存储所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL模板URL_TEMPLATE类型的情况下,所述客户端解析URL模板,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息,包括:所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息;所述客户端检测所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息是否命中所述媒体信息;如果在所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息命中所述媒体消息成功,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:如果在所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求并取消所述媒体服务器推送媒体内容的会话,或所述客户端发起获取所述需要的媒体内容的请求并存储所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述快速启动类型推送指令的推送参数PUSH_PARAMS为URL列表URL_LIST类型的情况下,所述客户端解析URL列表,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息,包括,所述客户端解析所述MPD数据,得到所述客户端需要的媒体内容的媒体信息;所述客户端检测所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息是否命中所述媒体信息;如果在所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息命中所述媒体消息成功,获取媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:如果在所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息命中所述媒体消息失败,所述客户端发起获取所述需要的媒体内容的请求并取消所述媒体服务器推送媒体内容的会话,或所述客户端发起获取所述需要的媒体内容的请求并存储所述媒体服务器将要的推送初始化片段序列和/或媒体片段序列的信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述MPD请求消息还包括:至少一个请求参数的情况下,所述服务器将要推送的初始化片段和媒体片段序列的信息包括所述MPD请求消息的片段的属性。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端通过如下 任意一种或多种方式从所述媒体服务器获取到所述服务器将要推送的初始化片段和媒体片段序列的信息:HTTP/2中的推送告知方式和WebSocket中的推送内容告知方式。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述客户端通过如下任意一种或多种方式发送所述MPD请求消息:HTTP/2请求报文的扩展首部的键值对形式和WebSocket的帧中的JSON键值对形式。
上述存储介质可以被设置为存储用于执行以下步骤的程序代码:媒体服务器获取快速启动类型推送指令push-fast-start directive;所述媒体服务器生成快速启动类型推送确认指令push-fast-start acknowledge,其中,所述快速启动类型推送确认指令用于通知客户端将要推送的推送初始化片段序列和/或媒体片段序列;向所述客户端发送所述快速启动类型推送确认指令;向所述客户端推送初始化片段序列和/或媒体片段序列。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:媒体服务器获取快速启动类型推送指令push-fast-start directive包括:通过获取并解析MPD请求消息获取所述快速启动类型推送指令,所述MPD请求消息至少包含MPD URI和快速启动类型推送指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器生成快速启动类型推送确认指令push-fast-start acknowledge:所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成快速启动类型推送确认指令,其中,所述快速启动类型推送确认指令的推送参数可为URL模板URL_TEMPLATE类型,和/或数值NUMBER类型,和/或URL列表URL_LIST类型。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:向所述客户端发送所述快速启动类型推送确认指令包括:通过MPD响应消息向所述客户端发送所述快速启动类型推送确认指令,其中,所述MPD响应消息用于响应所述客户端发送MPD请求消息,所述MPD响应消息至少包含MPD数据和所述快速启动类型推送确认指令。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述快速启动类型推送确认指令的推送参数为数值NUMBER类型的情况下,根据将要推送的初始化片段序列和/或媒体片段序列,生成快速启动类型推送确认指令,包括:所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定数值K,并确定与所述数值K对应的K个片段消息;所述媒体服务器将所述数值K加载至所述快速启动类型推送确认指令;其中,所述媒体服务器将所述初始化片段序列和/或媒体片段序列推送至所述客户端包括:所述媒体服务器将所述数值K以及与所述数值K对应的K个片段消息推送至所述客户端。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述快速启动类型推送确认指令的推送参数为URL模板的情况下,根据将要推送的初始化片段序列和/或媒体片段序列,生成快速启动类型推送确认指令,包括:所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定初始化片段序列和/或媒体片段序列;所述媒体服务器将所述初始化片段序列和/或媒体片段序列加载至所述快速启动类型推送确认指令;其中,所述媒体服务器将所述初始化片段序列和/或媒体片段序列推送至所述客户端包括:所述媒体服 务器将所述快速启动类型推送确认指令推送至所述客户端。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述快速启动类型推送确认指令的推送参数为URL列表的情况下,根据将要推送的初始化片段序列和/或媒体片段序列,生成快速启动类型推送确认指令,包括:所述媒体服务器结合预定数量的媒体客户端和/或所述客户端的历史访问结果确定初始化片段序列和/或媒体片段序列;所述媒体服务器将所述初始化片段序列和/或媒体片段序列加载至所述快速启动类型推送确认指令;其中,所述媒体服务器将所述初始化片段序列和/或媒体片段序列推送至所述客户端包括:所述媒体服务器将快速启动类型推送确认指令推送至所述客户端。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述媒体服务器将所述初始化片段和媒体片段序列的信息推送至所述客户端之后,所述方法还包括:所述媒体服务器将继续将所述初始化片段和媒体片段序列的信息对应的片段序列推送至所述客户端,其中,所述片段序列为所述客户端需要的媒体内容。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述MPD请求消息还包括:至少一个请求参数的情况下,所述初始化片段和媒体片段序列的信息包括请求参数所请求的片段的属性。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:所述媒体服务器通过如下任意一种或多种方式推送初始化片段和媒体片段序列的信息:HTTP/2中的推送告知方式和WebSocket中的推送内容告知方式。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:客户端从推送确认指令中解析得到参数值K,并接收媒体服务器推送的与参数值K对应的K个片段消息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:客户端解析MPD数据,得到客户端需要的媒体内容的媒体信息;客户端检测K个片段消息中是否命中媒体信息,片段消息为URL地址;如果在K个片段消息中命中媒体消息成功,客户端获取媒体服务器推送的与预测的片段消息所对应的片段序列,其中,片段序列为客户端需要的媒体内容。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:如果在K个片段消息中命中媒体消息失败,客户端发起获取需要的媒体内容的请求,或取消媒体服务器推送媒体内容的会话。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在推送确认指令中携带媒体服务器预测的推送片段列表的情况下,推送片段列表为从推送确认指令这种解析得到的预测的片段消息,其中,根据预测的片段消息和MPD数据,获取客户端需要的媒体内容,包括:客户端解析MPD数据,得到客户端需要的媒体内容的媒体信息;客户端检测推送片段列表中是否命中媒体信息;如果在推送片段列表中命中媒体消息成功,客户端获取媒体服务器推送的与推送片段列表所对应的片段序列,其中,片段序列为客户端需要的媒体内容。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:如果在推送片段列表 中命中媒体消息失败,客户端发起获取需要的媒体内容的请求,或取消媒体服务器推送媒体内容的会话。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:推送片段列表为媒体服务器预测的片段序列的URL组成。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在推送确认指令中携带媒体服务器预测的推送片段信息的情况下,推送片段信息为从推送确认指令这种解析得到的预测的片段消息,其中,根据预测的片段消息和MPD数据,获取客户端需要的媒体内容,包括:客户端解析MPD数据,得到客户端需要的媒体内容的媒体信息;客户端检测推送片段消息中是否命中媒体信息;如果在推送片段消息中命中媒体消息成功,客户端获取媒体服务器推送的与推送片段消息所对应的片段序列,其中,片段序列为客户端需要的媒体内容。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:如果在推送片段消息中命中媒体消息失败,客户端发起获取需要的媒体内容的请求,或取消媒体服务器推送媒体内容的会话。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:推送片段列消息为媒体服务器预测的一个或多个带参数化遍历的URL模板和压缩后的参数列表组成。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在请求信息还包括:至少一个请求参数的情况下,预测的片段消息包括请求参数所请求的片段的属性。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:客户端通过如下任意一种或多种方式从媒体服务器获取到预测的片段消息:HTTP/2中的推送告知方式和WebSocket中的推送内容告知方式。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码客户端通过如下任意一种或多种方式发送请求消息:HTTP/2请求报文的扩展首部的键值对形式和WebSocket的帧中的JSON键值对形式。
本公开的实施例还提供了另一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,媒体服务器接收客户端发送的用于获取媒体呈现描述文件MPD的请求消息,其中,请求信息至少包括:快速启动推送指令和MPD请求指令;
S2,媒体服务器根据请求消息生成响应信息,其中,响应消息包括:确定客户端需要快速启动的推送确认指令、响应MPD请求指令得到的MPD数据;
S3,在媒体服务器生成预测的片段消息之后,媒体服务器将预测的片段消息和响应信息推送至客户端,使得客户端根据预测的片段消息和MPD数据,获取客户端需要的媒体内容,其中,预测的片段消息为媒体服务器主动推送的与推送确认指令对应的片段消息。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本公开的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
工业实用性:
本公开涉及流媒体领域,提供了一种流媒体快速启动方法、装置和系统,采用客户端通过生成所述fast-start类型推送指令,即可告诉媒体服务器,客户端期待媒体服务器推送片段序列,以快速启动;通过使用从所述媒体服务器接收服务器推送的K个片段的片段消息,减少了客户端盲目等待的时间,降低了启动延迟,解决了媒体客户端与媒体服务器端之间没有达到很好的协商同步的问题,达到了媒体客户端可以判断自己期望的资源是否在推送列表,以便尽早做出下一步决策,实现更好的快速启动的效果。

Claims (33)

  1. 一种流媒体快速启动方法,包括:
    客户端向媒体服务器发送快速启动类型推送指令,其中,所述快速启动类型推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列;
    所述客户端接收所述媒体服务器返回的快速启动类型推送确认指令;
    所述客户端根据所述快速启动类型推送确认指令获取所述媒体服务器将要推送的初始化片段和/或媒体片段序列的信息。
  2. 根据权利要求1所述的方法,其中,客户端向媒体服务器发送快速启动类型推送指令包括:
    所述客户端通过MPD请求消息向所述媒体服务器发送所述快速启动类型推送指令。
  3. 根据权利要求2所述的方法,其中,所述客户端接收所述快速启动类型推送确认指令包括:
    所述客户端接收所述媒体服务器返回的MPD响应消息,所述MPD响应消息至少包含MPD数据,以及所述快速启动类型推送确认指令。
  4. 根据权利要求1或3所述的方法,其中,所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:
    所述快速启动类型推送确认指令中携带URL模板类型的推送参数;
    所述客户端解析URL模板推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
  5. 根据权利要求1或3所述的方法,其中,所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:
    所述快速启动类型推送确认指令中携带数值类型的推送参数;
    所述客户端解析数值推送参数K,并接收后续的K个推送承诺PUSH_PROMISE帧,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
  6. 根据权利要求1或3所述的方法,其中,所述客户端根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,包括:
    所述快速启动类型推送确认指令中携带URL列表类型的推送参数;
    所述客户端解析URL列表推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
  7. 根据权利要求3所述的方法,其中,所述方法还包括:
    所述客户端解析所述MPD数据,确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的信息;
    若获取的媒体服务器将要推送的初始化片段和/或媒体片段序列的信息等同于确定的需要媒体服务器推送的初始化片段和/或媒体片段序列的信息,所述客户端接收所述媒体服务器推送的初始化片段序列和/或媒体片段序列。
  8. 根据权利要求3所述的方法,其中,所述方法还包括:
    所述客户端解析所述MPD数据,确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的信息;
    若获取的媒体服务器将要推送的初始化片段和/或媒体片段序列的信息不同于确定的需要媒体服务器推送的初始化片段和/或媒体片段序列的信息,所述客户端取消所述媒体服务器推送的初始化片段序列和/或媒体片段序列。
  9. 根据权利要求8所述的方法,其中,所述方法还包括:
    所述客户端向所述媒体服务器发送获取所述确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的请求。
  10. 根据权利要求1至3中任意一项所述的方法,其中,MPD请求消息还包括:所述MPD请求消息中携带的快速启动类型推送指令包含偏好参数信息,所述偏好参数包括如下任意一种或多种属性:分辨率范围、码率范围、媒体属性和语言。
  11. 根据权利要求1至3中任意一项所述的方法,其中,所述客户端接收所述媒体服务器返回的MPD响应消息,以及所述快速启动类型推送确认指令,进一步包括:
    通过HTTP/2报文方式接收所述MPD响应消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送确认指令;或者,
    通过WebSocket中DASH子协议的new_mpd消息接收所述MPD响应消息,其中,所述new_mpd消息的JSON键值对携带快速启动类型推送确认指令。
  12. 根据权利要求1至3中任意一项所述的方法,其中,所述客户端向所述媒体服务器发送MPD请求消息,以及所述快速启动类型推送指令,进一步包括:
    通过HTTP/2报文方式发送所述MPD请求消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送指令;或者,
    通过WebSocket中DASH子协议的get_mpd消息发送所述MPD请求消息,其中,所述get_mpd消息的JSON键值对携带快速启动类型推送确认指令。
  13. 一种流媒体快速启动方法,包括:
    媒体服务器接收客户端发送的快速启动类型推送指令,其中,所述快速启动类型推 送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列;
    所述媒体服务器根据将要推送的初始化片段和/或媒体片段序列,生成快速启动类型推送确认指令;
    所述媒体服务器向所述客户端发送所述快速启动类型推送确认指令。
  14. 根据权利要求13所述的方法,其中,媒体服务器接收快速启动类型推送指令包括:
    所述媒体服务器接收所述客户端发送的MPD请求消息,所述MPD请求消息中包含所述快速启动类型推送指令。
  15. 根据权利要求13所述的方法,其中,所述媒体服务器生成快速启动类型推送确认指令,包括:
    所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成URL模板类型的推送参数;
    所述快速启动类型推送确认指令中携带所述URL模板推送参数。
  16. 根据权利要求13所述的方法,其中,所述媒体服务器生成快速启动类型推送确认指令,包括:
    所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成数值类型的推送参数;
    所述快速启动类型推送确认指令中携带所述数值类型的推送参数。
  17. 根据权利要求13所述的方法,其中,所述媒体服务器生成快速启动类型推送确认指令,包括:
    所述媒体服务器根据将要推送的初始化片段序列和/或媒体片段序列,生成URL列表类型的推送参数;
    所述快速启动类型推送确认指令中携带所述URL列表推送参数。
  18. 根据权利要求13至17中任意一项所述的方法,其中,发送所述快速启动类型推送确认指令包括:
    所述媒体服务器通过MPD响应消息向所述客户端发送所述快速启动类型推送确认指令,其中,所述MPD响应消息至少包含MPD数据,以及所述快速启动类型推送确认指令。
  19. 根据权利要求15至17中任意一项所述的方法,其中,所述媒体服务器生成快速启动类型推送确认指令,包括:
    所述媒体服务器根据所述客户端的预定数量和/或所述客户端的历史访问结果,确定 所述快速启动类型推送确认指令中携带的推送参数。
  20. 根据权利要求19所述的方法,其中,所述媒体服务器向所述客户端发送所述快速启动类型推送确认指令之后,所述方法还包括:
    所述媒体服务器向所述客户端推送所述快速启动类型推送确认指令指示的片段序列初始化片段和/或媒体片段序列。
  21. 根据权利要求13至17中任意一项所述的方法,其中,MPD请求消息还包括:所述MPD请求消息中携带的快速启动类型推送指令包含偏好参数信息,所述偏好参数包括如下任意一种或多种属性:分辨率范围、码率范围、媒体属性和语言。
  22. 根据权利要求13至17中任意一项所述的方法,其中,所述媒体服务器接收所述客户端发送的MPD请求消息,以及所述快速启动类型推送指令,进一步包括:
    通过HTTP/2报文方式接收所述MPD请求消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送指令;或者,
    通过WebSocket中DASH子协议的get_mpd消息接收所述MPD请求消息,其中,所述get_mpd消息的JSON键值对携带快速启动类型推送确认指令。
  23. 根据权利要求13至17中任意一项所述的方法,其中,所述媒体服务器向所述客户端发送MPD响应消息,以及所述快速启动类型推送确认指令,进一步包括:
    通过HTTP/2报文方式发送所述MPD响应消息,其中,所述HTTP/2报文的Accept-Push-Policy首部携带快速启动类型推送确认指令;或者,
    通过WebSocket中DASH子协议的new_mpd消息发送所述MPD响应消息,其中,所述new_mpd消息的JSON键值对携带快速启动类型推送确认指令。
  24. 一种流媒体快速启动装置,包括:
    访问引擎模块,设置为客户端向媒体服务器发送快速启动类型推送指令,其中,所述快速启动类型推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列;
    第一接收模块,设置为所述客户端接收所述媒体服务器返回的快速启动类型推送确认指令;
    控制引擎模块,设置为所述客户端根据所述快速启动类型推送确认指令获取所述媒体服务器将要推送的初始化片段和/或媒体片段序列的信息。
  25. 根据权利要求24所述的装置,其中,所述访问引擎模块包括,:
    发送模块,设置为所述客户端通过MPD请求消息向所述媒体服务器发送所述快速启动类型推送指令。
  26. 根据权利要求25所述的装置,其中,所述第一接收模块还包括:
    第一接收子模块,设置为所述客户端接收所述媒体服务器返回的MPD响应消息,所述MPD响应消息至少包含MPD数据,以及所述快速启动类型推送确认指令。
  27. 根据权利要求24或26所述的装置,其中,所述控制引擎模块包括:
    第一确认模块,设置为所述快速启动类型推送确认指令中携带URL模板URL_TEMPLATE类型的推送参数;
    第一获取模块,设置为所述客户端解析URL模板推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
  28. 根据权利要求24或26所述的装置,其中,所述控制引擎模块包括:
    第二确认模块,设置为所述快速启动类型推送确认指令中携带数值NUMBER类型的推送参数;
    第二获取模块,设置为所述客户端解析数值推送参数K,并接收后续的K个推送承诺PUSH_PROMISE帧,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
  29. 根据权利要求24或26所述的装置,其中,所述控制引擎模块包括:
    第三确认模块,设置为所述快速启动类型推送确认指令中携带URL列表URL_LIST类型的推送参数;
    第三获取模块,设置为所述客户端解析URL列表推送参数,获取所述媒体服务器将要推送的初始化片段序列和/或媒体片段序列的信息。
  30. 根据权利要求26中任意一项所述的装置,其中,所述装置还包括:
    第四确认模块,设置为所述客户端解析所述MPD数据,确定需要所述媒体服务器推送的初始化片段和/或媒体片段序列的信息;
    第二接收模块,设置为若获取的媒体服务器将要推送的初始化片段和/或媒体片段序列的信息等同于确定的需要媒体服务器推送的初始化片段和/或媒体片段序列的信息,所述客户端接收所述媒体服务器推送的初始化片段序列和/或媒体片段序列。
  31. 一种流媒体快速启动装置,包括:
    服务模块,设置为媒体服务器接收客户端发送的快速启动类型推送指令;
    生成引擎模块,设置为所述媒体服务器根据将要推送的初始化片段和/或媒体片段序列,生成快速启动类型推送确认指令;
    第一推送模块,设置为所述媒体服务器向所述客户端发送所述快速启动类型推送确 认指令。
  32. 一种流媒体快速启动系统,其中,包括:
    客户端,设置为向媒体服务器发送所述快速启动类型推送指令,并接收媒体服务器返回的快速启动类型推送确认指令,根据所述快速启动类型推送确认指令获取所述服务器将要推送的初始化片段和/或媒体片段序列的信息,其中,所述快速启动类型推送指令用于指示所述媒体服务器推送初始化片段序列和/或媒体片段序列;
    所述媒体服务器,与所述客户端通信,设置为接收所述客户端发送的所述快速启动类型推送指令,生成快速启动类型推送确认指令,向所述客户端发送所述快速启动类型推送确认指令,并向所述客户端推送所述初始化片段序列和/或所述媒体片段序列。
  33. 一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至24中任一项所述的方法。
PCT/CN2017/086012 2016-05-25 2017-05-25 流媒体快速启动方法、装置和系统 WO2017202373A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610355474.7 2016-05-25
CN201610355474.7A CN107438051A (zh) 2016-05-25 2016-05-25 流媒体快速启动方法、装置和系统

Publications (1)

Publication Number Publication Date
WO2017202373A1 true WO2017202373A1 (zh) 2017-11-30

Family

ID=60411049

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/086012 WO2017202373A1 (zh) 2016-05-25 2017-05-25 流媒体快速启动方法、装置和系统

Country Status (2)

Country Link
CN (2) CN117596232A (zh)
WO (1) WO2017202373A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995536A (zh) * 2021-02-04 2021-06-18 上海哔哩哔哩科技有限公司 视频合成方法及系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109756755A (zh) * 2017-11-02 2019-05-14 华为技术有限公司 一种媒体播放方法,装置和系统
US11184665B2 (en) * 2018-10-03 2021-11-23 Qualcomm Incorporated Initialization set for network streaming of media data
CN111669665B (zh) * 2019-03-05 2021-12-21 北京开广信息技术有限公司 媒体流的实时推送方法及服务器
CN112866325B (zh) * 2019-11-28 2023-05-16 北京金山云网络技术有限公司 资源文件传输方法、装置、cdn中的上层及边缘节点
US11349780B2 (en) * 2020-09-03 2022-05-31 Mellanox Technologies, Ltd. Enhancing port link-up time

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1784674A (zh) * 2004-05-03 2006-06-07 微软公司 用于流传送媒体的快速启动
US20140317306A1 (en) * 2013-04-18 2014-10-23 Futurewei Technologies, Inc. Fragment Interface Into Dynamic Adaptive Streaming Over Hypertext Transfer Protocol Presentations
CN104125516A (zh) * 2013-04-24 2014-10-29 华为技术有限公司 媒体文件接收、媒体文件发送方法和装置及系统
CN105532013A (zh) * 2013-07-12 2016-04-27 佳能株式会社 利用推送消息控制的自适应数据流传输方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013057315A2 (en) * 2011-10-21 2013-04-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Resource management concept
US10616297B2 (en) * 2012-07-09 2020-04-07 Futurewei Technologies, Inc. Content-specific identification and timing behavior in dynamic adaptive streaming over hypertext transfer protocol
JP5962943B2 (ja) * 2013-02-04 2016-08-03 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. ストリーミング・メディア・データを送信するための方法および装置
GB2516112B (en) * 2013-07-12 2016-10-26 Canon Kk Methods for providing media data, method for receiving media data and corresponding devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1784674A (zh) * 2004-05-03 2006-06-07 微软公司 用于流传送媒体的快速启动
US20140317306A1 (en) * 2013-04-18 2014-10-23 Futurewei Technologies, Inc. Fragment Interface Into Dynamic Adaptive Streaming Over Hypertext Transfer Protocol Presentations
CN104125516A (zh) * 2013-04-24 2014-10-29 华为技术有限公司 媒体文件接收、媒体文件发送方法和装置及系统
CN105532013A (zh) * 2013-07-12 2016-04-27 佳能株式会社 利用推送消息控制的自适应数据流传输方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995536A (zh) * 2021-02-04 2021-06-18 上海哔哩哔哩科技有限公司 视频合成方法及系统

Also Published As

Publication number Publication date
CN117596232A (zh) 2024-02-23
CN107438051A (zh) 2017-12-05

Similar Documents

Publication Publication Date Title
WO2017202373A1 (zh) 流媒体快速启动方法、装置和系统
US10728353B2 (en) Adaptive data streaming method with push messages control
JP5642779B2 (ja) クライアント制御セッションレス適応を促進する方法および装置
US8732274B2 (en) Method and apparatus for generating and handling streaming media quality-of-experience metrics
US8000339B2 (en) Method and system for transparently transcoding a multicast stream
US9880806B2 (en) Media playback processing and control method, apparatus, and system
US20150271233A1 (en) Method and apparatus for dash streaming using http streaming
JP6221142B2 (ja) メディアコンテンツに適応ストリーミングを実行するための方法及び装置
US10110507B2 (en) Push-based transmission of resources and correlated network quality estimation
EP3110098A1 (en) Mobile terminal and method for achieving sharing of streaming media file of cloud based on dlna
CN110933517B (zh) 码率切换方法、客户端和计算机可读存储介质
US20110196942A1 (en) Adaptive variable fidelity media distribution system and method
EP3114845A1 (en) Systems and methods for media format substitution
EP2493191B1 (en) Method, device and system for realizing hierarchically requesting content in http streaming system
EP2417748A1 (en) Systems, methods and apparatuses for media file streaming
CN102577309A (zh) 用于动态媒体文件流送的系统、方法和装置
CA2723789A1 (en) Method and system for triggering ingestion of remote content by a streaming server using uniform resource locator folder mapping
WO2019128800A1 (zh) 一种内容服务的实现方法、装置及内容分发网络节点
WO2016200998A1 (en) Http live streaming (hls) video client synchronization
MX2015002628A (es) Sistema y metodo para entregar un contenido audio-visual a un dispositivo de un cliente.
EP3175599A1 (en) Systems and methods for selective transport accelerator operation
KR20160135811A (ko) Http 스트리밍을 사용하는 dash 스트리밍을 위한 방법 및 장치
JP6532764B2 (ja) クライアント端末と少なくとも1つのサーバとの間の伝送路に配置されたキャッシュを操作する方法、および対応するキャッシュ
US11196646B2 (en) Unique user session tracking in adaptive bitrate video delivery
EP2634998A1 (en) Method and system for downloading real-time streaming media in peer-to-peer network

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17802219

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17802219

Country of ref document: EP

Kind code of ref document: A1