WO2017063574A1 - Streaming media adaptive transmission method and device - Google Patents

Streaming media adaptive transmission method and device Download PDF

Info

Publication number
WO2017063574A1
WO2017063574A1 PCT/CN2016/102032 CN2016102032W WO2017063574A1 WO 2017063574 A1 WO2017063574 A1 WO 2017063574A1 CN 2016102032 W CN2016102032 W CN 2016102032W WO 2017063574 A1 WO2017063574 A1 WO 2017063574A1
Authority
WO
WIPO (PCT)
Prior art keywords
push
media data
media
server
client
Prior art date
Application number
PCT/CN2016/102032
Other languages
French (fr)
Chinese (zh)
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 WO2017063574A1 publication Critical patent/WO2017063574A1/en

Links

Images

Classifications

    • 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/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
    • H04N21/26208Content 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 the scheduling operation being performed under constraints
    • H04N21/26241Content 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 the scheduling operation being performed under constraints involving the time of distribution, e.g. the best time of the day for inserting an advertisement or airing a children program
    • 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
    • H04N21/26208Content 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 the scheduling operation being performed under constraints
    • H04N21/26216Content 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 the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • 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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Definitions

  • the present invention relates to the field of communications, and in particular to an adaptive streaming media transmission method and apparatus.
  • HTTP streaming (HTTP Streaming) is widely used for its compatibility and scalability, and has become the de facto standard for Internet video transmission.
  • HTTP streaming is a rate-adaptive media transmission technology based on the HTTP protocol, which uses the traditional HTTP web server on the Internet to provide high-quality streaming media content.
  • HTTP streaming divides a video into chunks of files on many small HTTP servers, each of which contains a video content with a shorter playback time. These small video clips may be part of a few hours of movie (on demand) or live video (live) of a sports event. Among them, the video can be encoded into a plurality of video segments of different code rates to cover different network bandwidth requirements.
  • HTTP streaming is a unit of media segment (segment).
  • File download technology a segment contains several seconds of video frames, which will lead to unavoidable media segmentation and encoding delays;
  • CDN Content Delivery Network
  • Policy client polling
  • Figure 1 is a schematic diagram of PULL mode transmission in HTTP streaming technology according to the related art, as shown in Figure 1.
  • the existing HTTP 1.1 protocol provides a pull mode (PULL) transmission mechanism.
  • the client must send an HTTP request for each media segment.
  • the HTTP request has a large overhead and is inversely proportional to the duration of the media segment playback. Limited mobile terminal. Therefore, efficient (low latency, reasonable request) video transmission under Internet conditions, especially Live Video applications, is still a huge challenge for HTTP streaming.
  • HTTP 2.0 an upgraded version of the HTTP protocol, HTTP 2.0, provides a viable solution. Compared with HTTP 1.1, HTTP 2.0 improves the transmission performance of the protocol, supporting request-response multiplexing, protocol header compression, and server "Server Push" features.
  • 2 is a schematic diagram of PUSH mode transmission in the HTTP streaming technology according to the related art. As shown in FIG. 2, using the HTTP 2.0 server “push”, the server can actively push the latest available fragment to the client without the client. Additional requests can greatly reduce transmission overhead and latency. Specifically, after processing a certain media segment HTTP request, the HTTP 2.0 server will agree with the client on the subsequent media segment push strategy (Push Strategy), and actively push subsequent available media segments to the client according to the push policy.
  • Push Strategy media segment push strategy
  • the Media Presentation Description defined by the Extensible Markup Language (XML) format provides location information and time information for the client to acquire and play media segments in the video content.
  • the MPD file describes the duration of the media segment, the Uniform Resource Locator (URL), and media properties such as video resolution, adaptation bitrate, and so on.
  • URL Uniform Resource Locator
  • the client can select and download the media segment adapted to the currently available network bandwidth and terminal decoding and rendering capabilities according to the information in the MPD file.
  • the client can access the corresponding media segment based on the URL information provided in the MPD file only within the media clip availability time range.
  • the @availabilityStartTime field and the @availabilityEndTime field are defined in the MPD file to provide the earliest start time and the latest end time of streaming media playback, respectively.
  • the client can calculate the availability start time and the availability termination time of each media segment according to the time information in the MPD file, and any media segment can only be accessed between the two time points.
  • FIG. 3 is a schematic diagram 1 of media segment accessibility in the HTTP streaming media technology according to the related art.
  • the client when requesting to acquire a media segment, the client should according to the local clock time value tnow and the MPD file synchronized with the server end.
  • Medium time information for example, the start time, duration, etc.
  • the calculation availability start time is less than or equal to tnow and the availability termination time is greater than or equal to the tnow media segment, and the currently accessible media segment list is obtained. Further determining the next request to obtain the media segment URL (ie, the media segment corresponding to the tnext time number #N in the figure), and triggering the corresponding HTTP request operation.
  • the streaming media system implemented by HTTP 2.0 protocol binding allows the server to actively push subsequent media segments according to the "pushing policy" reached with the client, so as to reduce the live broadcast delay and reduce the request.
  • the purpose of the overhead. 4 is a second schematic diagram of media segment accessibility in the HTTP streaming media technology according to the related art. As shown in FIG. 4, the client may request to push subsequent K media segments or push a subsequent media segment with a playback time of T seconds. .
  • the "availability" and the "pushing policy" of the media segment transmitted in the push mode are independent of each other, that is, the media segment requested to be pushed in the "pushing policy” may not be all available at the time of sending the request by the client (ie, the number in the figure is #N+J+1 ⁇ #N+K media clips). Therefore, how to achieve the video streaming media transmission while fully utilizing the "push" feature of the HTTP 2.0 server, satisfying the accessibility limitation of the media segment is a problem that needs to be studied and solved at present.
  • the present invention provides an adaptive streaming media transmission method and apparatus to at least solve the problem of accessibility limitation of push media data existing when video streaming media transmission is performed by using the server "push" feature in the related art.
  • an adaptive streaming media transmission method including:
  • the method before sending the first media data acquisition request to the server, the method includes:
  • the push indication of the second media data includes push condition information, and the push condition information is used to request the server to send a push commitment for the media data that is not accessible in the push indication of the second media data.
  • the method includes:
  • the push condition information is set as a push wait time, and the push wait time is used to set an upper limit of a waiting time for the push commitment of the second media data to be sent by the server after receiving the first media data acquisition request.
  • the method includes:
  • the push condition information is set to a push wait time with a value of zero, and the push wait time is used to request the server to push all the media data referenced in the push indication of the second media data.
  • the method includes:
  • the push threshold is used to set the server to use the first media data as an initial index, and push a lower limit of the quantity of media data in the second media data; or, the push The threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
  • receiving a push response of the second media data returned by the server includes:
  • receiving a push commitment of the second media data that is sent by the server according to the push response includes:
  • receiving a push commitment of the second media data that is sent by the server according to the push response includes:
  • an adaptive streaming media transmission method including:
  • the method before returning the push response of the second media data to the client, the method includes:
  • push condition information including a push instruction request of the second media data
  • sending the push commitment of the second media data to the client according to the push response includes:
  • sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
  • the push commitment of the second media data is sent to the client within the push waiting time from receiving the first media data acquisition request.
  • sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
  • the push condition information is a push waiting time with a value of zero, all media data referenced in the push instruction of the second media data is pushed to the client.
  • sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
  • the push condition information is a push threshold
  • the first media data is used as an initial index, and at least the media data in the second media data with the push threshold is a lower limit is pushed to the client; Or, at least the media data in the second media data with the push threshold being the media time lower limit is pushed to the client from the media time of the first media data.
  • an adaptive streaming media transmission device is further provided on the terminal side, including:
  • the first sending module is configured to send a first media data obtaining request to the server, where the obtaining request carries a push indication of the second media data;
  • a first receiving module configured to receive a push response of the first media data and the second media data returned by the server, and receive a push of the second media data sent by the server according to the push response committed to;
  • the second receiving module is configured to receive the second media data that is sent by the server according to the push commitment.
  • the device further includes:
  • a first setting module configured to set, before sending the first media data acquisition request to the server, push condition information included in the push indication of the second media data, where the push condition information is used to request the server to be the first
  • the non-accessible media data referenced in the push indication of the second media data sends a push commitment.
  • the first setting module includes:
  • a first setting unit configured to set the push condition information to be a push wait time, where the push wait time is used to set the server to send the push of the second media data after receiving the first media data acquisition request The maximum waiting time for commitment.
  • the first setting module includes:
  • a second setting unit configured to set the push condition information to a push waiting time with a value of zero, the push waiting time for requesting the server to push all the media data referenced in the push indication of the second media data .
  • the first setting module includes:
  • a third setting unit configured to set the push condition information to be a push threshold, where the push threshold is used to set the server to use the first media data as an initial index, and push the quantity of media data in the second media data The lower limit is used; or the push threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
  • the first receiving module includes:
  • the first receiving unit is configured to receive a push response of the second media data returned by the server, and the push response of the second media data includes push condition information requested in the second media data push instruction.
  • the first receiving module includes:
  • the second receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push parameter value returned by the push response.
  • the first receiving module includes:
  • the third receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push condition information returned by the push response.
  • an adaptive streaming media transmission device is further provided on the server side, including:
  • a third receiving module configured to receive a request for acquiring the first media data sent by the client, where the obtaining request carries a push indication of the second media data
  • a fourth receiving module configured to return a push response of the first media data and the second media data to the client, and send a push commitment of the second media data to the client according to the push response End
  • the second sending module is configured to push the second media data to the client according to the push commitment.
  • the device further includes:
  • a second setting module configured to set, before returning the push response of the second media data to the client, a push condition information including a push indication request of the second media data in a push response of the second media data And sending a push commitment for the inaccessible media data referenced in the push indication of the second media data.
  • the second sending module includes:
  • the first sending unit is configured to send a data push commitment of the second media to the client according to the push parameter value returned in the push response;
  • the second sending unit is configured to send a push commitment of the second media data to the client according to the push condition information returned in the push response.
  • the second sending module includes:
  • the third sending unit is configured to, when the push condition information is the push waiting time, send the push commitment of the second media data in the push waiting time from receiving the first media data obtaining request To the client.
  • the second sending module includes:
  • the fourth transmitting unit is configured to push all the media data referenced in the push instruction of the second media data to the client when the push condition information is a push waiting time with a value of zero.
  • the second sending module includes:
  • the fifth sending unit is configured to: when the push condition information is a push threshold, use the first media data as an initial index to push at least the media in the second media data with the push threshold as a lower limit Data is sent to the client; or, at least from the media time of the first media data, the media data in the second media data with the push threshold being the media time lower limit is pushed to the client.
  • Another embodiment of the present invention provides a computer storage medium storing execution instructions for performing the method in the above embodiments.
  • the first media data acquisition request is sent to the server, and the acquisition request carries a push indication of the second media data; receiving the first media data returned by the server and the push response of the second media data, and receiving the Receiving, by the server, the push commitment of the second media data sent according to the push response; receiving the second media data pushed by the server according to the push commitment, and solving the push media data existing when the video streaming media is transmitted by using the server “push” feature
  • the problem of accessibility limitation enables efficient, low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.
  • FIG. 1 is a schematic diagram of PULL mode transmission according to the related art HTTP streaming technology
  • FIG. 2 is a schematic diagram of PUSH mode transmission in an HTTP streaming media technology according to the related art
  • FIG. 3 is a schematic diagram 1 of media segment accessibility in an HTTP streaming media technology according to the related art
  • FIG. 4 is a schematic diagram 2 of media segment accessibility in an HTTP streaming media technology according to the related art
  • FIG. 5 is a flowchart 1 of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • FIG. 6 is a second flowchart of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • FIG. 7 is a structural block diagram 1 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention.
  • FIG. 8 is a structural block diagram 2 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention.
  • FIG. 9 is a structural diagram of an adaptive streaming media system according to an embodiment of the present invention.
  • FIG. 10 is a flowchart 1 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • FIG. 11 is a second flowchart of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • FIG. 12 is a flowchart 3 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • FIG. 13 is a flowchart 4 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • 15 is a flowchart 6 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • 16 is a flowchart 7 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • 17 is a flowchart 8 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • FIG. 18 is a flowchart IX of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • FIG. 19 is a flowchart 10 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • 20 is a flow chart 1 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • 21 is a flow chart 2 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • FIG. 22 is a flowchart 3 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • 23 is a message interaction flowchart 4 of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • FIG. 24 is a structural block diagram 3 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention.
  • FIG. 5 is a flowchart 1 of an adaptive streaming media transmission method according to an embodiment of the present invention. As shown in FIG. 5, the process includes the following steps:
  • Step S502 sending a first media data acquisition request to the server, where the acquisition request carries a push indication of the second media data;
  • Step S504 Receive a push response of the first media data and the second media data returned by the server, and receive a push commitment of the second media data sent by the server according to the push response.
  • Step S506 receiving the second media data that the server pushes according to the push commitment.
  • the push indication of the second media data is set to include push condition information, where the push condition information is used to request the server to be a push indication of the second media data.
  • the push condition information is set as a push waiting time, and the push waiting time is used to set an upper limit of the waiting time for the push commitment of the second media data to be sent by the server after receiving the first media data obtaining request.
  • the push condition information is set to a push waiting time with a value of zero, and the push waiting time is used to request the server to push all the media data referenced in the push indication of the second media data.
  • the push condition information is set as a push threshold, and the push threshold is used to set the server to use the first media data as an initial index to push a lower limit of the quantity of media data in the second media data; or, the push The threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
  • receiving the push response of the second media data returned by the server includes: receiving a push response of the second media data returned by the server, where the push response of the second media data includes the second media data push indication Push condition information requested in .
  • receiving the push commitment of the second media data sent by the server according to the push response comprises: receiving a push commitment of the second media data sent by the server according to the push parameter value returned by the push response; or And receiving a push commitment of the second media data sent by the server according to the push condition information returned by the push response.
  • FIG. 6 is a second flowchart of an adaptive streaming media transmission method according to an embodiment of the present invention. As shown in FIG. 6, the process includes the following steps:
  • Step S602 receiving an acquisition request of the first media data sent by the client, where the acquisition request carries a push indication of the second media data;
  • Step S604 returning the first media data and the push response of the second media data to the client, and sending a push commitment of the second media data to the client according to the push response;
  • Step S606 pushing the second media data to the client according to the push commitment.
  • setting a push condition information including a push instruction request of the second media data in the push response of the second media data, for The push data commitment is not transmitted by the media data that is not accessible in the push indication of the second media data.
  • sending the push commitment of the second media data to the client according to the push response includes: sending a push commitment of the second media data to the client according to the push parameter value returned in the push response; Sending a push commitment of the second media data to the client according to the push condition information returned in the push response.
  • sending the push commitment of the second media data to the client includes:
  • the push commitment of the second media data is transmitted to the client within the push waiting time from the receipt of the first media data acquisition request.
  • sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
  • the push condition information is a push waiting time with a value of zero, all media data referenced in the push instruction of the second media data is pushed to the client.
  • sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
  • the push condition information is a push threshold
  • the first media data is used as an initial index, and at least the media data in the second media data with the push threshold is a lower limit is pushed to the client; or The media data of the media data is at least pushed to the client in the second media data with the push threshold being the media time lower limit.
  • An adaptive streaming media transmission device is also provided in the embodiment, and the device is used to implement the foregoing embodiments and preferred embodiments, and details are not described herein.
  • 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. 7 is a structural block diagram of an adaptive streaming media transmission apparatus according to an embodiment of the present invention. As shown in FIG. 7, the apparatus is located on the terminal side, and includes:
  • the first sending module 72 is configured to send a first media data obtaining request to the server, where the obtaining request carries a push indication of the second media data;
  • the first receiving module 74 is configured to receive the first media data returned by the server and the push response of the second media data, and receive a push commitment of the second media data sent by the server according to the push response;
  • the second receiving module 76 is configured to receive the second media data that the server pushes according to the push commitment.
  • the first sending module 72 sends a first media data obtaining request to the server, where the obtaining request carries a push indication of the second media data, and the first receiving module 74 receives the first media data returned by the server and the first Transmitting a response of the second media data, and receiving a push commitment of the second media data sent by the server according to the push response, the second receiving module 76 receiving the second media data that is pushed by the server according to the push commitment, and solving the utilization server
  • the "push" feature enables the accessibility limitation of push media data when video streaming is performed, and realizes efficient and low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.
  • the device further includes:
  • the first setting module is configured to: before sending the first media data acquisition request to the server, set the push condition information included in the push indication of the second media data, where the push condition information is used to request the server to be the second media data
  • a push commitment is sent by the inaccessible media data referenced in the push indication.
  • the first setting module includes:
  • the first setting unit is configured to set the push condition information to be a push waiting time, where the push waiting time is used to set an upper waiting time limit for the push commitment of the second media data to be sent by the server after receiving the first media data obtaining request .
  • the first setting module includes:
  • the second setting unit is configured to set the push condition information to a push waiting time with a value of zero, and the push waiting time is used to request the server to push all the media data referenced in the push indication of the second media data.
  • the first setting module includes:
  • a third setting unit configured to set the push condition information to be a push threshold, where the push threshold is used to set the server to use the first media data as an initial index to push a lower limit of the quantity of media data in the second media data; or The push threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
  • the first receiving module 74 includes:
  • the first receiving unit is configured to receive a push response of the second media data returned by the server, and the push response of the second media data includes push condition information requested in the second media data push instruction.
  • the first receiving module 74 includes:
  • the second receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push parameter value returned by the push response.
  • the first receiving module 74 includes:
  • the third receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push condition information returned by the push response.
  • FIG. 8 is a structural block diagram 2 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention. As shown in FIG. 8, the apparatus is located on the server side, and includes:
  • the third receiving module 82 is configured to receive a request for acquiring the first media data sent by the client, where the obtaining request carries a push indication of the second media data;
  • the fourth receiving module 84 is configured to return a push response of the first media data and the second media data to the client, and send a push commitment of the second media data to the client according to the push response;
  • the second sending module 86 is configured to push the second media data to the client according to the push commitment.
  • the third receiving module 82 receives the request for acquiring the first media data sent by the client, where the acquiring request carries the push indication of the second media data, and the fourth receiving module 84 returns the first media data and the second
  • the push of the media data is sent to the client, and the push commitment of the second media data is sent to the client according to the push response, and the second sending module 86 pushes the second media data to the client according to the push commitment.
  • the device further includes:
  • the second setting module is configured to: before returning the push response of the second media data to the client, setting a push condition information of the push instruction request including the second media data in the push response of the second media data,
  • the inaccessible media data referenced in the push indication of the second media data sends a push commitment.
  • the second sending module 86 includes:
  • the first sending unit is configured to send a data push commitment of the second media to the client according to the push parameter value returned in the push response;
  • the second sending unit is configured to send a push commitment of the second media data to the client according to the push condition information returned in the push response.
  • the third sending unit is configured to, when the push condition information is the push waiting time, send the push commitment of the second media data to the client in the push waiting time from receiving the first media data obtaining request .
  • the fourth transmitting unit is configured to push all the media data referenced in the push instruction of the second media data to the client when the push condition information is a push waiting time with a value of zero.
  • the fifth sending unit is configured to: when the push condition information is a push threshold, use the first media data as an initial index to push at least the media data in the second media data with the push threshold as a lower limit to the client Or; for at least pushing the media data in the second media data with the push threshold as a media time lower limit from the media time of the first media data to the client.
  • FIG. 9 is a structural diagram of an adaptive streaming media system according to an embodiment of the present invention.
  • the terminal 100 includes a streaming media client. 200, HTTP/2 client 300, network 400, and server 500.
  • the system shown in Fig. 9 will be described below.
  • the terminal 100 provides a user-side hardware device of the running environment for the streaming media client 200.
  • the deployment example of the terminal 100 may include: a set-top box, a desktop computer, a tablet computer, a smart phone, and the like;
  • the streaming media client 200 provides access, decoding, caching, and playback control for the streaming media resources in the server 500, including: a code rate adaptation module 210, a media playback engine 220, a push module 230, and a pull module 240.
  • the streaming client 200 instructs the HTTP client 300 to establish a media transport channel with the server 500, and the server 500 actively pushes streaming media data to the terminal 100 using the media channel.
  • the media channel can be established through an HTTP/1.1 protocol upgrade mechanism.
  • the streaming client 200 transmits a media segment or MPD file access request to the server 500 via the HTTP client 300.
  • the media segment access request may carry a uniform resource identifier URI of the requested media segment and a “push policy” of the subsequent media segment.
  • the "push policy” is used by the streaming client 200 to negotiate with the server 500 for the push mechanism of subsequent media segments.
  • the server 500 In addition to returning the requested media segment data, after receiving the media segment push request, the server 500 will return a push response according to the availability of the media segment and the local policy, once the streaming media client 200 and the server 500 reach a subsequent media segment "push strategy". Consistently, the server 500 will initiate a media segment push session to actively push subsequent available media segments to the terminal 100.
  • the streaming client 200 can start playing the video content after buffering a sufficient amount of media segment data.
  • the rate adaptation module 210 detects the current available network bandwidth and the media segment buffer status in the media playback engine 220, performs a code rate adaptation algorithm, and sends a code rate switching indication to the push module 230 and the pull module 240.
  • the media playback engine 220 decodes the received media segments, media data buffers, and video playback controls.
  • the push module 230 initiates a session function based on the server supported by the HTTP 2.0 protocol, and requests the server 500 to push the streaming media resource to the terminal 100 through the HTTP client 300.
  • the push module 230 supports the following "Push Behavior":
  • Push module 230 supports “Instant Push” behavior:
  • “Instant Push” refers specifically to the push behavior that all push commitments that the server will send in the push session have been determined once the server returns a push response to the client.
  • the server dominates the push policy negotiation, which completely determines how to push subsequent media segments.
  • the server can directly return to the same as the push indication by performing “immediate push”.
  • Push response of push parameter values For example, the push indication only refers to the currently accessible media segment, the server can directly return to the same as the push indication by performing “immediate push”.
  • the server can also Returns a push response with a different push parameter value in the push indication by performing an "immediate push"
  • the server can use "immediate push” to return a "reject push” push response.
  • Push module 230 supports “Progressive Push” behavior:
  • Progressive Push or “Long Push” on behalf of the server returning a push response does not preclude the subsequent progressive, conditional transmission beyond the push response.
  • the server will push the promise for the newly-accessible media segment until the media segment referenced by the push indication has all been pushed, or the push condition set in the push indication is not met.
  • the server may Perform "gradual push"
  • the server In the initial stage, the server returns the push parameter value according to the currently accessible media segment in the returned push response, and confirms that the push commitment will be sent for the newly emerging accessible media segment.
  • the server will push the promise for the newly-accessible media segment until the media segments referenced in the push indication have all been pushed, or the push conditions set in the push indication have expired
  • the "Progressive Push” behavior enables the server to send push commitments to media segments that are currently inaccessible (ie, temporarily unable to determine the access address) based on the push conditions set by the client:
  • the client sets push condition information in the second media data push indication for requesting the server to push
  • the second media data push indication is not yet accessible media data
  • the server will push the promise for the newly-accessible media segment until the media segment referenced in the push indication has all been pushed, or the push condition set in the push indication has expired
  • Push condition failure is usually accompanied by the occurrence of a specific event or state in the push session. For example, the push wait time for pushing a promised media segment push promise has expired, or the number of pushed media segments or media clip time has reached the push threshold, etc. .
  • the client carries a second media data push indication including push condition information in the sent push request
  • the server returns a second media data push response, and does not exclude that a push commitment that exceeds the push parameter value returned in the push response will be sent according to the push condition information requested in the push indication.
  • the server sends the push promise of the currently accessible media segment to the client immediately after returning the push response. In addition, the server will push the promise for the newly available accessible media segment.
  • the pull module 240 requests the downloading of the streaming media resource in the server 500 to the terminal 100 through the HTTP client 300 based on the client initiated session function supported by the HTTP 1.1 protocol or the HTTP 2.0 protocol.
  • the HTTP client 300 includes: an HTTP/2 client, and an HTTP/1.1 client.
  • the HTTP client 300 sends an HTTP request to the server 500 according to the media segment access request of the internal push module 230 or the pull module 240 of the streaming media client 200 and the code rate switching instruction, and requests the acquisition of the server 500 that is most suitable for the current network bandwidth and the cache status.
  • the cache 330 provides local storage of the media resources downloaded by the HTTP client 300.
  • the network 400 may include: a digital subscriber line (X Digital Subscriber Line, abbreviated as xDSL), a fiber-optic access (Fiber-to-the-x, referred to as FTTx), a cable communication cable, and the like, and a Wi-Fi network.
  • XDSL Digital Subscriber Line
  • FTTx fiber-optic access
  • cable communication cable and the like
  • Wi-Fi network a wireless communication network such as 2G, 3G, and Long Term Evolution (LTE).
  • LTE Long Term Evolution
  • the server 500 completes the generation of the slice of the original video and the generation of the MPD file.
  • the content source 520 is responsible for content source capture, encoding compression, and segmentation processing, and divides the original video content into a plurality of video segments having a fixed time interval.
  • the HTTP server 510 stores each video clip as an HTTP resource that is independently accessible by HTTP requests and responses, that is, a video file, and stores it in a hierarchy of periods, representations, and segments. Upon request, the HTTP server 510 will return the appropriate media shards to the terminal.
  • the server 500 also provides MPD file storage in dynamic adaptive streaming.
  • the MPD file describes the duration, URL, media attributes of each media segment, such as video resolution, adaptation bit rate, and the like.
  • the MPD file provides enough HTTP-URL information for the streaming client to access the streaming content resource. When the streaming client starts playing a video, it selects the download according to the information in the MPD file to adapt to the currently available network bandwidth. And the media segment of the terminal cache status is played and played.
  • the adaptive streaming media (or dynamic adaptive streaming media) involved may be implemented in various manners, for example, dynamic adaptive streaming over HTTP (Dynamic Adaptive Streaming over HTTP) may be adopted.
  • DASH Dynamic Adaptive Streaming over HTTP
  • FIG. 10 is a flowchart 1 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 10, the process includes the following steps:
  • Step S1002 Send a first media data acquisition request to the server, where the acquisition request carries a push indication of the second media data;
  • Step S1004 Receive a push response of the first media data and the second media data returned by the server, and receive a push commitment of the second media data sent by the server according to the push response.
  • Step S1006 Receive the second media data that is sent by the server according to the push commitment.
  • the client may carry a push indication of the second media data in the first media data acquisition request, and set the second media data push indication to include push condition information, where the server is requested to be the second
  • the push data promised by the inaccessible media data referenced in the push indication of the media data is solved in the related art, and an efficient, low-latency adaptive flow based on full-duplex transmission protocol binding is realized.
  • step S1002 it is described that the first media data acquisition request is sent to the server, and the request carries the push instruction of the second media data; this will be described below in conjunction with an optional implementation.
  • FIG. 11 is a second flowchart of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 11, the process includes the following steps:
  • Step S1102 determining a first media data uniform resource identifier URI that is requested to be acquired
  • step S1104 it is determined whether the server is requested to push the second media data. If yes, go to step S1106; if no, go to step S1105, send the first media data acquisition request to the server, and end.
  • Step S1105 Send a first media data acquisition request to the server
  • Step S1106 setting a push indication for requesting the server to push the second media data
  • Step S1108 Determine whether the push indication refers to media data that is not yet accessible in the second media data. If yes, go to step S1110, if no, go to step S1114;
  • step S1110 it is determined whether to request to push the media data that is not yet accessible in the second media data. If yes, step S1112 is performed, and if no, step S1114 is performed.
  • the push indication of the second media data includes push condition information, and is used to request the server to push the media data that is not yet accessible in the second media data;
  • Step S1114 Send a first media data acquisition request to the server, where the acquisition request carries a push indication of the second media data.
  • the second media data push instruction includes the push condition information, and is used to request the server to push the media data that is referenced in the push instruction of the second media data; The implementation is described.
  • the "push condition” can be used by the client to explicitly request the server to send a push commitment under certain conditions in the push session, such as sending a push promise for a newly emerging accessible media segment.
  • a "push condition” is a string consisting of a series of (keyword, value) pairs, where each pair (keyword, value) represents a specific push condition for equal evaluation of "push conditions" in a push session Effectiveness.
  • ABSNF Bacchus Paradigm
  • the client is willing to wait for a certain maximum time value in the push session to receive the push commitment sent by the server.
  • the client may wait for a certain maximum time value to send a push request again for those media segments that have not received the push commitment.
  • the Push Wait indicator is used to request that the server keep the push request flow in an "open" state for a certain maximum time value even if the push commitment of all accessible media segments has been sent to the client. In some cases, such as in multiple consecutive push transactions, the server is unable to send a push commitment for subsequent media segments that the client requests to push. Clients can use the Push Waiting mechanism to reduce the need to create new request flows, thereby avoiding unnecessary request overhead.
  • the client requests a media segment that is pushed at least by a certain number of lower limits or media time limits in the push session.
  • the client may send a push request again for media segments that have not received the push promise after the media segment that has been pushed to a certain lower limit or media time limit.
  • the "push threshold” indicator is used to request that the server keep the push request stream in an "open” state even if the push commitment of all accessible media segments has been sent to the client until the client is pushed a certain lower media segment.
  • FIG. 12 is a third flowchart of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 12, the process includes the following steps:
  • Step S1202 setting a push indication of the second media data to include a push waiting time
  • Step S1204 The push waiting time is used to set an upper limit of the waiting time for the push commitment of the second media data to be sent by the server after receiving the first media data obtaining request.
  • the push waiting time included in the push indication of the second media data set by the client is a preset value, for example, a push waiting time with a value of zero
  • the push waiting time is used for the requesting
  • the server pushes all media data referenced in the push indication of the second media data.
  • FIG. 13 is a flowchart 4 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 13, the process includes the following steps:
  • Step S1302 setting a push indication of the second media data to include a push threshold
  • Step S1304 The push threshold is used to set the server to use the first media data as an initial index, and push a lower limit of the quantity of media data in the second media data.
  • FIG. 14 is a flowchart 5 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 14, the process includes the following steps:
  • Step S1402 setting a push indication of the second media data to include a push threshold
  • Step S1404 The push threshold is used to set a media time lower limit of the media data in the second media data from the media time of the first media data.
  • step S1004 it is described that the push response of the first media data and the second media data returned by the server is received, and the push commitment of the second media data sent by the server according to the push response is received;
  • the implementation is described.
  • FIG. 15 is a flowchart 6 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 15, the process includes the following steps:
  • Step S1502 Receive a push response of the second media data returned by the server.
  • Step S1504 determining whether the push response refers to all media data in the second media data. If yes, go to step S1506, otherwise go to step S1510;
  • Step S1506 The sending server sends a push commitment of the second media data according to the push response.
  • Step S1508 receiving the second media data that the server pushes according to the push commitment
  • Step S1510 Receive a push commitment of the second media data that is sent by the server according to the push parameter value returned by the push response.
  • step S1512 it is determined whether the push response includes push condition information. If yes, go to step S1514, otherwise go to step 1516;
  • Step S1514 Receive a push commitment of the second media data that is sent by the server according to the push condition information returned by the push response.
  • Step S1516 Receive the second media data that is sent by the server according to the push commitment.
  • the client may think that the server will not push the second media data; if the server returns a "reject push" push response, the client may determine that the server will not push the first Two media data. If the server returns a push response containing push condition information, the client can assume that the server will push the media data that is not yet accessible referenced in the push indication of the second media data.
  • FIG. 16 is a flowchart 7 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 16, the process includes the following steps:
  • Step S1602 Receive a first media data acquisition request sent by the client, where the acquisition request carries a push indication of the second media data.
  • Step S1604 returning a push response of the first media data and the second media data to the client, and sending a push commitment of the second media data to the client according to the push response;
  • Step S1606 Push the second media data to the client according to the push commitment.
  • the server may set the push condition information of the push indication request of the second media data in the push response of the second media data, and the reference for the push indication of the second media data is not yet
  • the accessed media data sends a push commitment, thereby solving the problem of the accessibility limitation of the push media data existing in the related art in the use of the server "push" feature for video streaming media transmission, and realizing the binding based on the full duplex transmission protocol. Efficient, low-latency adaptive streaming media transmission.
  • step S1604 a push response that returns the first media data and the second media data is sent to the client, and a push commitment of the second media data is sent to the client according to the push response. This is explained below in conjunction with an optional implementation.
  • FIG. 17 is a flowchart 8 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 17, the process includes the following steps:
  • Step S1702 Receive a first media data acquisition request sent by the client, where the acquisition request carries a push indication of the second media data.
  • Step S1704 determining whether the second media data referenced in the push indication is all accessible. If yes, go to step S1706, otherwise go to step 1712;
  • Step S1706 returning a push response of the first media data and the second media data, and setting a push parameter value returned in the push response to refer to all media data referenced in the push indication;
  • Step S1708 Send a push commitment of the second media data to the client according to the push parameter value returned by the push response.
  • Step S1710 Push the second media data to the client according to the push commitment.
  • step S1712 it is determined whether to continue pushing the second media data. If yes, go to step S1714, otherwise go to step S1716;
  • step S1714 it is determined whether the push condition information is included in the push instruction. If yes, go to step S1718, otherwise go to step S1722;
  • Step S1716 returning the first media data and "rejecting push" push response
  • step S1718 it is judged whether or not the push condition is valid. If yes, go to step S1720, otherwise go to step S1722;
  • Step S1720 setting the push condition information requested in the push instruction including the second media data in the push response
  • Step S1722 returning a push response of the first media data and the second media data, and setting a push parameter value returned in the push response to reference the accessible media data referenced in the push indication;
  • Step S1724 Send a push commitment of the second media data to the client according to the push parameter value returned by the push response.
  • Step S1726 determining whether the push response includes push condition information. If yes, go to step S1728, otherwise go to step S1730;
  • Step S1728 Send a push commitment of the second media data to the client according to the push condition information returned by the push response.
  • Step S1730 Push the second media data to the client according to the push commitment.
  • the server must return a push response of the second media data in response.
  • the server may explicitly return a "reject push" push response in response. If the first media data acquisition request does not carry the push indication of the second media, the server is prohibited from returning a push response of the second media data in response.
  • step S1728 the push commitment information returned by the push response is transmitted, and the push commitment of the second media data is transmitted to the client; this will be described below in conjunction with an optional implementation.
  • FIG. 18 is a flowchart 9 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • the server receives the first After the media data acquisition request, the push commitment of the second media data is sent to the client in the push waiting time, and the process includes the following steps:
  • Step S1802 waiting to push the media data that is not accessible in the push indication of the second media data
  • Step S1804 Determine whether there is new accessible media data in the media data referenced by the push indication of the second media data. If yes, go to step S1806, otherwise go to step S1810;
  • Step S1806 sending a push commitment of the new accessible media data in the second media data to the client;
  • Step S1808 determining whether the second media data has all sent a push commitment. If yes, it ends, otherwise step S1810 is performed.
  • step S1810 it is judged whether or not the push waiting time is exceeded. If yes, then it ends, otherwise step S1802 is performed;
  • the push condition information is a push waiting time with a value of zero
  • the server will push all the media referenced in the push instruction of the second media data. Data to the client.
  • FIG. 19 is a flowchart 10 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention.
  • the server uses the first media.
  • the data is an initial index, and at least the media data in the second media data that is the lower limit of the push threshold is pushed to the client; or the server pushes the at least the media time from the media time of the first media data.
  • the second media data is sent to the client by the media data whose push threshold is the lower limit of the media time.
  • the process includes the following steps:
  • Step S1902 waiting to push the media data that is not accessible in the push indication of the second media data
  • Step S1904 Determine whether there is new accessible media data in the media data referenced by the push indication of the second media data. If yes, go to step S1906, otherwise go to step S1908;
  • Step S1906 sending a push commitment of the new accessible media data in the second media data to the client;
  • step S1908 it is determined whether the push threshold is reached. If yes, then it ends, otherwise step S1902 is performed;
  • the client may carry the push instruction of the second media data in the first media data acquisition request, and the second media data push instruction includes the push condition information, and is configured to request the server to be The inaccessible media data referenced in the push indication of the second media data sends a push commitment. This is explained below in conjunction with an alternative implementation.
  • FIG. 20 is a flow chart 1 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • Step 1 The client sends a first media segment acquisition request to the server using a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol).
  • the HTTP GET message also includes a "dash-push" header field for requesting the server to push the second media segment, that is, the example in step 1.
  • the method further includes: 1) a push protocol scheme uniform resource identifier (SchemeID) field for identifying a push protocol version; and 2) a push directive (PushDirective) for sending the push policy requested in the push session, including: a push type (
  • the PushType field is used to describe the representation type of the pushed media segment in the Push Policy. For example, “push-next” indicates that a subsequent specific number of media segments are requested to be pushed, and “push-time” indicates that the request is pushed for a subsequent specific playing time.
  • the media segment, "push-template” represents the media segment explicitly specified in the request push template, and the push parameter (PushParams) field, carrying the push parameter value of the pushed media segment in the "push policy”.
  • the "dash-push” header field may also carry: 3) PushCoditions field, which is used to explicitly request the server to send a push commitment under certain conditions in the push session, for example, for a newly appearable
  • the accessed media segment sends a push commitment, including: a "push-wait” keyword, which is used to request the server to send a push commitment within a certain maximum time value in the push session, and a "push-threshold” keyword for requesting the server to push A media segment that is pushed at least by a certain number of lower limits or media time limits in the session.
  • the client requests to acquire the "segment1" media segment in the “Representation” "rep1", and requests to push the 5 media segments of the subsequent numbers “segment2" to “segment6" in “rep1” and pass the "
  • the push-wait keyword indicates that the server sends a push commitment within a maximum of 2000 milliseconds after receiving the request.
  • the related push policy description information for requesting the server to push the second media segment may also be carried by other header fields such as “Accept-Push-Policy” in the HTTP GET message.
  • Step 2 The server returns an HTTP 200 OK response message (HEADERS frame in the HTTP/2 protocol) as the first media segment acquisition response.
  • the HTTP 200 OK response message includes a "dash-push" header field for returning a second media segment push response, which is an example in step 2.
  • a push protocol scheme uniform resource identifier (SchemeID) field for identifying a push protocol version
  • a push response (PushAck) for returning a push policy received by the server in the push session, and carrying and requesting
  • the push response information returned by the server indicates that the push commitment can be immediately sent for the five media segments of "segment2" to "segment6" in the "rep1" requested to be pushed by the push indication, so there is no need to return the push in the push response.
  • Conditional information there is no "progressive push" process in the push session.
  • Steps 3 to 5 The server sends a push commitment message (HTTP/) to each of the media segments that are confirmed to be pushed (ie, 5 media segments of "segment2" to "segment6") according to the push parameter value returned by the push response in step 2.
  • HTTP/ push commitment message
  • 2 PUSH_PROMISE frame in the protocol.
  • the server sets the "path" header field in the PUSH_PROMISE frame to each of the acknowledgment pushed media segment uniform resource identifier URIs, and transmits the PUSH_PROMISE frame in the request stream initiated by the client in step 1.
  • Step 6 The server returns the media segment requested by the client, that is, "../rep1/segment1.mp4" in this embodiment.
  • Steps 7 to 12 According to the push commitment message sent in steps 3 to 5, the server creates a push flow initiated by the server for each media segment that is confirmed to be pushed, and pushes 5 media of the number "segment2" to "segment6" in "rep1". Fragment to the client.
  • the push instruction for setting the second media data includes a push waiting time
  • the push waiting time is used to set the server to send the first media data acquisition request.
  • the upper limit of the waiting time for the push commitment of the second media data is explained below in conjunction with an alternative implementation.
  • FIG. 21 is a second flowchart of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • Step 1 Similar to step 1 in the embodiment of Fig. 20, the client sends a first media segment acquisition request to the server using a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol).
  • a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol).
  • Step 2 Similar to step 2 in the embodiment of Fig. 20, the server returns an HTTP 200 OK response message containing a "dash-push" header field for returning a second media segment push response.
  • the push parameter field value returned by the push response is "../rep1/segment$Number$.mp4": ⁇ 2-4 ⁇ , indicating that the server only confirms the "rep1" requested in the push indication.
  • the emerging accessible media segment sends a push commitment, which is a "progressive push" process in the push session.
  • Steps 3 to 4 Similar to steps 3 to 5 in the embodiment of FIG. 20, the server confirms the pushed media segment according to the push parameter value returned by the push response in step 2 (ie, "segment2" to "segment4" The 3 media segments) send a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol).
  • Steps 5-6 In this embodiment, it is assumed that the accessible media segments "segment5" and “segment6" appear newly during the maximum waiting time of the push waiting, and the server will send a push commitment message for them (PUSH_PROMISE frame in the HTTP/2 protocol) ).
  • Step 7 The server returns the media segment requested by the client, that is, "../rep1/segment1.mp4" in this embodiment.
  • Steps 8-11 According to the push commitment message sent in steps 3-6, the server creates a push flow initiated by the server for each media segment that is confirmed to be pushed, and pushes 5 media of the number "segment2" to "segment6" in "rep1". Fragment to the client.
  • the push instruction for setting the second media data includes a push threshold for setting the server to push the second from the media time of the first media data.
  • the media time limit of the media data in the media data which is described below in conjunction with an optional implementation.
  • FIG. 22 is a third flowchart of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • Step 1 Similar to step 1 in the embodiment of Fig. 20, the client sends a first media segment acquisition request to the server using a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol).
  • the HTTP GET message includes a "dash-push" header field for requesting the server to push the second media segment, that is, the example in step 1.
  • the client requests to acquire the "segment1" media segment in the “Representation” "rep1”, and requests to push the media segment of the subsequent 5000 milliseconds media time in “rep1", and passes the "push-threshold” keyword. Instruct the server to push at least the media segment with a lower limit of 5000 milliseconds of media time.
  • Step 2 Similar to step 2 in the embodiment of Fig. 20, the server returns an HTTP 200 OK response message containing a "dash-push" header field for returning a second media segment push response.
  • the push parameter field value returned by the push response is "../rep1/segment$Time$.mp4": ⁇ 3000 ⁇ , indicating that the server only confirms the subsequent 3000 milliseconds of media in the "rep1" requested in the push indication.
  • Steps 3 to 4 Similar to steps 3 to 5 in the embodiment of FIG. 20, the server confirms the pushed media segment according to the push parameter value returned by the push response in step 2 (assuming the preset duration of each media segment)
  • a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol) is sent for 1000 milliseconds, ie, 3 media segments of "segment2" to "segment4".
  • Step 5 The server returns the media segment requested by the client, that is, "../rep1/segment1.mp4" in this embodiment, while keeping the client request flow in the "Open" state.
  • Steps 6-7 The server will also send a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol) for the media segments (ie, "segment5" and “segment6") of the remaining 2000 milliseconds of media time.
  • PUSH_PROMISE frame in the HTTP/2 protocol a push commitment message for the media segments (ie, "segment5" and “segment6") of the remaining 2000 milliseconds of media time.
  • Steps 8 to 11 According to the push commitment message sent in steps 3 to 4 and steps 6 to 7, the server creates a push flow initiated by the server for each media segment that is confirmed to be pushed, that is, pushes the number "segment2" in the "rep1" to "" 5 media segments of segment6" to the client.
  • the push instruction for setting the second media data includes a push threshold; the push threshold is used to set the server to use the first media data as an initial index to push the second media.
  • the lower limit on the number of media data in the data which is described below in conjunction with an optional implementation.
  • FIG. 23 is a flow chart 4 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
  • Step 1 Similar to step 1 in the embodiment of Fig. 20, the client sends a first media segment acquisition request to the server using a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol).
  • the HTTP GET message includes a "dash-push" header field for requesting the server to push the second media segment, that is, the example in step 1.
  • the client requests to obtain the "segment1" media segment in the representation "rep1".
  • it requests to push the 5 media segments of the subsequent numbers “segment2" to “segment6" in “rep1”
  • the "push-wait” keyword instructs the server to send the push commitment within 2000 milliseconds after receiving the request, and passes the "
  • the push-threshold keyword indicates that the server pushes at least 4 media segments with a lower limit.
  • Step 2 Similar to step 2 in the embodiment of Fig. 20, the server returns an HTTP 200 OK response message containing a "dash-push" header field for returning a second media segment push response.
  • the push parameter field value returned by the push response is "../rep1/segment$Number$.mp4": ⁇ 2-4 ⁇ , indicating that the server only confirms that "p1" is requested in the "rep1" for the push indication.
  • a push commitment is sent for the newly emerging accessible media segment, ie there is a "progressive push" process in the push session.
  • Steps 3 to 4 Similar to steps 3 to 5 in the embodiment of FIG. 20, the server confirms the pushed media segment according to the push parameter value returned by the push response in step 2 (ie, "segment2" to "segment4" The 3 media segments) send a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol).
  • Step 5 The server returns the media segment requested by the client, that is, "../rep1/segment1.mp4" in this embodiment, while keeping the client request flow in the "Open" state.
  • Step 6 This embodiment assumes that the accessible media segment "segment5" newly appears before the maximum push latency (i.e., 2000 milliseconds) expires, and the server sends a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol) for it.
  • PUSH_PROMISE frame in the HTTP/2 protocol
  • Steps 7 to 10 According to the push commitment message sent in steps 3 to 4 and step 6, the server creates a server-initiated push stream for each media segment that is confirmed to be pushed, and pushes the number "segment2" to "segment5" in "rep1". 4 media clips to the client.
  • FIG. 24 is a structural block diagram 3 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention. As shown in FIG. 24, the apparatus includes an obtaining module 242, a first determining module 244, and a second determining module 246. The adaptive media stream processing device will be described.
  • the obtaining module 242 is configured to obtain the location information and the time information of the adaptive streaming media carried in the transport stream.
  • the first determining module 244 is connected to the obtaining module 242, and is configured to determine, according to the location information, the need for the adaptive streaming media.
  • the transport stream is time-axis aligned media segment; the second determining module 246 is coupled to the first determining module 244, and configured to determine, according to the time information, the media presentation time of the media segment in the adaptive streaming media relative to the time axis of the transport stream Timestamp.
  • a preferred embodiment of the present invention provides an adaptive streaming media transmission method and apparatus to address at least the problem of accessibility limitations of push media segments in existing HTTP streaming media technologies.
  • the technical solution of the present invention which is essential or contributes to the prior art, may be embodied in the form of a software product stored in a storage medium (such as ROM/RAM, disk,
  • a storage medium such as ROM/RAM, disk,
  • the optical disc includes a number of instructions for causing a terminal device (which may be a cell phone, a computer, a server, or a network device, etc.) to perform the methods described in various embodiments of the present invention.
  • 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 invention also provide a storage medium.
  • the above storage medium may be arranged to store program code for performing the method steps of the above-described embodiments.
  • 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
  • the processor performs the method steps of the foregoing embodiments according to the stored program code in the storage medium.
  • modules or steps of the present invention 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.
  • the invention is not limited to any specific combination of hardware and software.
  • an adaptive streaming media transmission method and apparatus provided by an embodiment of the present invention have the following beneficial effects: solving the accessibility limitation of push media data existing when video streaming media transmission is performed by using a server "push" feature.
  • the problem is to achieve efficient, low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.

Abstract

Provided are a streaming media adaptive transmission method and device. The method comprises: transmitting to a server an acquisition request requesting first media data, wherein the acquisition request carries an instruction to push second media data; receiving the first media data returned by the server and a push response associated with the second media data, and receiving a push promise associated with the second media data and transmitted by the server according to the push response; and receiving the second media data pushed by the server according to the push promise. The invention solves a problem in which accessibility is limited when a server push feature is used to perform video streaming media transmission, thereby realizing high efficiency and low delay full-duplex transmission protocol-based streaming media adaptive transmission.

Description

自适应流媒体传输方法及装置Adaptive streaming media transmission method and device 技术领域Technical field
本发明涉及通信领域,具体而言,涉及一种自适应流媒体传输方法及装置。The present invention relates to the field of communications, and in particular to an adaptive streaming media transmission method and apparatus.
背景技术Background technique
近年来,通过互联网传播的视频内容呈现爆发性的增长,一方面源自于接入带宽的增加,包括3G、4G系统的规模应用,数字用户线(Digital Subscriber Line,简称为xDSL)和光纤接入在家庭用户的大量部署,有效地提高了最后一公里的接入带宽;另一方面,视频编码的进展提高了视频的压缩率,H.264/AVC,H.265/HEVC都是这方面的代表。据统计2014年HTTP视频数据已经占到北美互联网流量的50%以上,预计到2020年,移动视频数据流量将占到移动数据流量的70%以上。In recent years, the content of video transmitted through the Internet has experienced explosive growth, which is due to the increase in access bandwidth, including the scale application of 3G and 4G systems, Digital Subscriber Line (xDSL) and fiber optic connection. A large number of deployments for home users have effectively increased the access bandwidth of the last mile; on the other hand, the progress of video coding has improved the compression ratio of video, H.264/AVC, H.265/HEVC are all aspects of this. representative. According to statistics, in 2014, HTTP video data has accounted for more than 50% of Internet traffic in North America. It is estimated that by 2020, mobile video data traffic will account for more than 70% of mobile data traffic.
HTTP流媒体(HTTP Streaming)以其兼容性、可扩展性而得到广泛应用,目前已成为互联网视频传输事实上的标准。HTTP流媒体是一种基于HTTP协议的码率自适应媒体传输技术,利用互联网上传统的HTTP Web服务器提供高品质的流媒体内容。HTTP流媒体将一段视频切分成许多小的HTTP服务器上的文件分块,每个文件分块包含一个较短播放时间的视频内容。这些小的视频片段可能是数个小时电影(点播)或者体育赛事现场视频(直播)的一部分。其中,视频可被编码成为多个不同码率的视频片段,以覆盖不同网络带宽需求。HTTP streaming (HTTP Streaming) is widely used for its compatibility and scalability, and has become the de facto standard for Internet video transmission. HTTP streaming is a rate-adaptive media transmission technology based on the HTTP protocol, which uses the traditional HTTP web server on the Internet to provide high-quality streaming media content. HTTP streaming divides a video into chunks of files on many small HTTP servers, each of which contains a video content with a shorter playback time. These small video clips may be part of a few hours of movie (on demand) or live video (live) of a sports event. Among them, the video can be encoded into a plurality of video segments of different code rates to cover different network bandwidth requirements.
然而,HTTP协议最初是为文件传输(譬如Web网页)设计的,没有考虑视频实时传输特性,因此无法满足低延迟视频传输的需求:首先,HTTP流媒体是一种以媒体片段(segment)为单位的文件下载技术,一个片段中包含若干秒的视频帧,这将导致无法避免的媒体分段与编码延迟;其次,尽管内容分发网络(Content Delivery Network,简称为CDN)已广泛部署,为用户提供就近接入服务,但基于客户端轮询(Poll)的异步数据获取仍将带来额外延迟;最后,图1是根据相关技术中HTTP流媒体技术中的PULL模式传输示意图,如图1所示,现有HTTP 1.1协议提供的是一种拉模式(PULL)传输机制,客户端必须针对每一个媒体片段发送HTTP请求,HTTP请求开销大且与媒体片段播放时长成反比例增长,并不适合资源受限的移动终端。因此,实现互联网条件下高效的(低延时、请求开销合理)视频传输,特别是视频直播(Live Video)应用,依然是HTTP流媒体面临的一个巨大挑战。However, the HTTP protocol was originally designed for file transfer (such as Web pages). It does not consider the real-time transmission characteristics of video, so it cannot meet the requirements of low-latency video transmission: First, HTTP streaming is a unit of media segment (segment). File download technology, a segment contains several seconds of video frames, which will lead to unavoidable media segmentation and encoding delays; secondly, although the Content Delivery Network (CDN) has been widely deployed to provide users with Near access service, but asynchronous data acquisition based on client polling (Poll) will still bring additional delay; finally, Figure 1 is a schematic diagram of PULL mode transmission in HTTP streaming technology according to the related art, as shown in Figure 1. The existing HTTP 1.1 protocol provides a pull mode (PULL) transmission mechanism. The client must send an HTTP request for each media segment. The HTTP request has a large overhead and is inversely proportional to the duration of the media segment playback. Limited mobile terminal. Therefore, efficient (low latency, reasonable request) video transmission under Internet conditions, especially Live Video applications, is still a huge challenge for HTTP streaming.
目前,HTTP协议的升级版本HTTP 2.0带来了可行的解决手段。与HTTP 1.1相比,HTTP2.0提高了协议的传输性能,支持请求-应答复用、协议头压缩以及服务器“推”(Server Push)特性。图2是根据相关技术中HTTP流媒体技术中的PUSH模式传输示意图,如图2所示,利用HTTP 2.0服务器“推”,服务器端能够主动将当前最新可用片段推送至客户端,而不需客户端额外请求,可以极大减少传输开销和延迟。具体而言,在处理某个媒体片段HTTP请求后,HTTP 2.0服务器将就后续媒体片段推送策略(Push Strategy)与客户端达成一致,并根据该推送策略向客户端主动推送后续可用的媒体片段。 Currently, an upgraded version of the HTTP protocol, HTTP 2.0, provides a viable solution. Compared with HTTP 1.1, HTTP 2.0 improves the transmission performance of the protocol, supporting request-response multiplexing, protocol header compression, and server "Server Push" features. 2 is a schematic diagram of PUSH mode transmission in the HTTP streaming technology according to the related art. As shown in FIG. 2, using the HTTP 2.0 server “push”, the server can actively push the latest available fragment to the client without the client. Additional requests can greatly reduce transmission overhead and latency. Specifically, after processing a certain media segment HTTP request, the HTTP 2.0 server will agree with the client on the subsequent media segment push strategy (Push Strategy), and actively push subsequent available media segments to the client according to the push policy.
采用可扩展标记语言(Extensible Markup Language,简称为XML)格式定义的媒体呈现描述(Media Presentation Description,简称为MPD)为客户端获取、播放视频内容中的媒体片段提供了位置信息和时间信息。MPD文件描述了媒体片段的持续时间,统一资源定位符(URL),以及视频分辨率、适配比特率等媒体属性。当客户端选择播放一个视频的时候,它可根据MPD文件中的信息选择下载适应于当前可用网络带宽和终端解码、渲染能力的媒体片段并进行播放。The Media Presentation Description (MPD) defined by the Extensible Markup Language (XML) format provides location information and time information for the client to acquire and play media segments in the video content. The MPD file describes the duration of the media segment, the Uniform Resource Locator (URL), and media properties such as video resolution, adaptation bitrate, and so on. When the client chooses to play a video, it can select and download the media segment adapted to the currently available network bandwidth and terminal decoding and rendering capabilities according to the information in the MPD file.
客户端只有在媒体片段可用性时间范围内才可基于MPD文件中提供的URL信息访问到相应的媒体片段。MPD文件中定义了@availabilityStartTime字段和@availabilityEndTime字段,分别用于提供流媒体播放的最早开始时间以及最晚终止时间。对于视频直播应用,客户端根据MPD文件中的时间信息可以推算出每个媒体片段的可用性开始时间以及可用性终止时间,任何媒体片段只有在上述两个时间点之间才可能被访问。The client can access the corresponding media segment based on the URL information provided in the MPD file only within the media clip availability time range. The @availabilityStartTime field and the @availabilityEndTime field are defined in the MPD file to provide the earliest start time and the latest end time of streaming media playback, respectively. For the live video application, the client can calculate the availability start time and the availability termination time of each media segment according to the time information in the MPD file, and any media segment can only be accessed between the two time points.
为了提供流畅的视频流媒体播放体验,客户端通常需要在保证本地时钟时间与服务器端全局时钟时间同步的基础上,获取并解析MPD文件以创建在当前客户端本地时间(Client-Local time NOW)下可供访问的媒体片段列表,并根据该列表向HTTP服务器发送媒体片段获取请求。图3是根据相关技术中HTTP流媒体技术中的媒体片段可访问性示意图一,如图3所示,请求获取媒体片段时,客户端应根据与服务器端同步的本地时钟时间值tnow以及MPD文件中时间信息,譬如:媒体片段相对所在时段(Period)的开始时间、持续时长等,计算可用性开始时间小于或者等于tnow且可用性终止时间大于或者等于tnow媒体片段,获得当前可访问的媒体片段列表,进而确定下一个请求获取媒体片段URL(即,图中对应tnext时刻编号为#N的媒体片段),并触发相应的HTTP请求操作。In order to provide a smooth video streaming experience, the client usually needs to obtain and parse the MPD file to create the current client-local time (NOW) based on the local clock time and the server-side global clock time synchronization. A list of media segments available for access, and a media segment acquisition request is sent to the HTTP server according to the list. FIG. 3 is a schematic diagram 1 of media segment accessibility in the HTTP streaming media technology according to the related art. As shown in FIG. 3, when requesting to acquire a media segment, the client should according to the local clock time value tnow and the MPD file synchronized with the server end. Medium time information, for example, the start time, duration, etc. of the media segment relative to the period (Period), the calculation availability start time is less than or equal to tnow and the availability termination time is greater than or equal to the tnow media segment, and the currently accessible media segment list is obtained. Further determining the next request to obtain the media segment URL (ie, the media segment corresponding to the tnext time number #N in the figure), and triggering the corresponding HTTP request operation.
不同与此,利用服务器“推”特性,HTTP 2.0协议绑定实现的流媒体系统允许服务器按照与客户端达成的“推送策略”主动推送后续出现的媒体片段,以实现降低直播延时,减少请求开销的目的。图4是根据相关技术中HTTP流媒体技术中的媒体片段可访问性示意图二,如图4所示,客户端可以请求推送后续K个媒体片段,或者推送后续一段播放时间为T秒的媒体片段。然而,推送模式下传输的媒体片段的“可用性”与“推送策略”相互独立,亦即,“推送策略”中请求推送的媒体片段在客户端发送请求时刻未必全部可用(即,图中编号为#N+J+1~#N+K的媒体片段)。因此,如何实现在充分利用HTTP 2.0服务器“推”特性进行视频流媒体传输的同时,满足媒体片段的可访问性限制是一个目前需要研究解决的问题。Differently, with the server "push" feature, the streaming media system implemented by HTTP 2.0 protocol binding allows the server to actively push subsequent media segments according to the "pushing policy" reached with the client, so as to reduce the live broadcast delay and reduce the request. The purpose of the overhead. 4 is a second schematic diagram of media segment accessibility in the HTTP streaming media technology according to the related art. As shown in FIG. 4, the client may request to push subsequent K media segments or push a subsequent media segment with a playback time of T seconds. . However, the "availability" and the "pushing policy" of the media segment transmitted in the push mode are independent of each other, that is, the media segment requested to be pushed in the "pushing policy" may not be all available at the time of sending the request by the client (ie, the number in the figure is #N+J+1~#N+K media clips). Therefore, how to achieve the video streaming media transmission while fully utilizing the "push" feature of the HTTP 2.0 server, satisfying the accessibility limitation of the media segment is a problem that needs to be studied and solved at present.
针对相关技术中,利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,目前还没有有效的解决方案。In view of the related art, the problem of accessibility limitation of push media data existing when video streaming is performed by using the server "push" feature has no effective solution at present.
发明内容Summary of the invention
本发明提供了一种自适应流媒体传输方法及装置,以至少解决相关技术中利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题。The present invention provides an adaptive streaming media transmission method and apparatus to at least solve the problem of accessibility limitation of push media data existing when video streaming media transmission is performed by using the server "push" feature in the related art.
根据本发明的一个方面,提供了一种自适应流媒体传输方法,包括: According to an aspect of the present invention, an adaptive streaming media transmission method is provided, including:
发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;Sending a first media data acquisition request to the server, where the obtaining request carries a push indication of the second media data;
接收所述服务器返回的所述第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;Receiving a push response of the first media data and the second media data returned by the server, and receiving a push commitment of the second media data sent by the server according to the push response;
接收所述服务器根据所述推送承诺推送的所述第二媒体数据。Receiving, by the server, the second media data that is pushed according to the push commitment.
可选地,发送第一媒体数据获取请求至服务器之前,所述方法包括:Optionally, before sending the first media data acquisition request to the server, the method includes:
设置所述第二媒体数据的推送指示中包含推送条件信息,所述推送条件信息用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。The push indication of the second media data includes push condition information, and the push condition information is used to request the server to send a push commitment for the media data that is not accessible in the push indication of the second media data.
可选地,所述方法包括:Optionally, the method includes:
设置所述推送条件信息为推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。The push condition information is set as a push wait time, and the push wait time is used to set an upper limit of a waiting time for the push commitment of the second media data to be sent by the server after receiving the first media data acquisition request.
可选地,所述方法包括:Optionally, the method includes:
设置所述推送条件信息为取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。The push condition information is set to a push wait time with a value of zero, and the push wait time is used to request the server to push all the media data referenced in the push indication of the second media data.
可选地,所述方法包括:Optionally, the method includes:
设置所述推送条件信息为推送阈值,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限;或者,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。Setting the push condition information as a push threshold, where the push threshold is used to set the server to use the first media data as an initial index, and push a lower limit of the quantity of media data in the second media data; or, the push The threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
可选地,接收所述服务器返回的第二媒体数据的推送应答包括:Optionally, receiving a push response of the second media data returned by the server includes:
接收所述服务器返回的第二媒体数据的推送应答,所述第二媒体数据的推送应答中包含所述第二媒体数据推送指示中请求的推送条件信息。Receiving a push response of the second media data returned by the server, and the push response of the second media data includes push condition information requested in the second media data push instruction.
可选地,接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺包括:Optionally, receiving a push commitment of the second media data that is sent by the server according to the push response includes:
接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺。Receiving, by the server, a push commitment of the second media data that is sent according to a push parameter value returned by the push response.
可选地,接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺包括:Optionally, receiving a push commitment of the second media data that is sent by the server according to the push response includes:
接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺。Receiving, by the server, the push commitment of the second media data that is sent according to the push condition information returned by the push response.
根据本发明的另一个方面,还提供了一种自适应流媒体传输方法,包括:According to another aspect of the present invention, an adaptive streaming media transmission method is further provided, including:
接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示; Receiving an acquisition request of the first media data sent by the client, where the obtaining request carries a push indication of the second media data;
返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;Returning a push response of the first media data and the second media data to the client, and sending a push commitment of the second media data to the client according to the push response;
根据所述推送承诺推送所述第二媒体数据至所述客户端。Pushing the second media data to the client according to the push commitment.
可选地,返回所述第二媒体数据的推送应答至所述客户端之前,包括:Optionally, before returning the push response of the second media data to the client, the method includes:
设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。And setting, in the push response of the second media data, push condition information including a push instruction request of the second media data, and sending, for sending, the inaccessible media data referenced in the push instruction of the second media data committed to.
可选地,根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端包括:Optionally, sending the push commitment of the second media data to the client according to the push response includes:
根据所述推送应答中返回的推送参数值,发送所述第二媒体数据的推送承诺至所述客户端;Transmitting, according to the push parameter value returned in the push response, a push commitment of the second media data to the client;
根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端。Sending a push commitment of the second media data to the client according to the push condition information returned in the push response.
可选地,根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端包括:Optionally, sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
在所述推送条件信息为推送等待时间的情况下,自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端。When the push condition information is the push waiting time, the push commitment of the second media data is sent to the client within the push waiting time from receiving the first media data acquisition request.
可选地,根据所述推送应答中返回的推送条件信息发送所述第二媒体数据的推送承诺至所述客户端包括:Optionally, sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
在所述推送条件信息为取值为零的推送等待时间的情况下,推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。When the push condition information is a push waiting time with a value of zero, all media data referenced in the push instruction of the second media data is pushed to the client.
可选地,根据所述推送应答中返回的推送条件信息发送所述第二媒体数据的推送承诺至所述客户端包括:Optionally, sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
在所述推送条件信息为推送阈值的情况下,以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。When the push condition information is a push threshold, the first media data is used as an initial index, and at least the media data in the second media data with the push threshold is a lower limit is pushed to the client; Or, at least the media data in the second media data with the push threshold being the media time lower limit is pushed to the client from the media time of the first media data.
根据本发明的另一个方面,还提供了一种自适应流媒体传输装置,位于终端侧,包括:According to another aspect of the present invention, an adaptive streaming media transmission device is further provided on the terminal side, including:
第一发送模块,设置为发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;The first sending module is configured to send a first media data obtaining request to the server, where the obtaining request carries a push indication of the second media data;
第一接收模块,设置为接收所述服务器返回的所述第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;a first receiving module, configured to receive a push response of the first media data and the second media data returned by the server, and receive a push of the second media data sent by the server according to the push response committed to;
第二接收模块,设置为接收所述服务器根据所述推送承诺推送的所述第二媒体数据。 The second receiving module is configured to receive the second media data that is sent by the server according to the push commitment.
可选地,所述装置还包括:Optionally, the device further includes:
第一设置模块,设置为发送第一媒体数据获取请求至服务器之前,设置所述第二媒体数据的推送指示中包含的推送条件信息,所述推送条件信息用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。a first setting module, configured to set, before sending the first media data acquisition request to the server, push condition information included in the push indication of the second media data, where the push condition information is used to request the server to be the first The non-accessible media data referenced in the push indication of the second media data sends a push commitment.
可选地,所述第一设置模块包括:Optionally, the first setting module includes:
第一设置单元,设置为设置所述推送条件信息为推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。a first setting unit, configured to set the push condition information to be a push wait time, where the push wait time is used to set the server to send the push of the second media data after receiving the first media data acquisition request The maximum waiting time for commitment.
可选地,所述第一设置模块包括:Optionally, the first setting module includes:
第二设置单元,设置为设置所述推送条件信息为取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。a second setting unit, configured to set the push condition information to a push waiting time with a value of zero, the push waiting time for requesting the server to push all the media data referenced in the push indication of the second media data .
可选地,所述第一设置模块包括:Optionally, the first setting module includes:
第三设置单元,设置为设置所述推送条件信息为推送阈值,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限;或者,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。a third setting unit, configured to set the push condition information to be a push threshold, where the push threshold is used to set the server to use the first media data as an initial index, and push the quantity of media data in the second media data The lower limit is used; or the push threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
可选地,所述第一接收模块包括:Optionally, the first receiving module includes:
第一接收单元,设置为接收所述服务器返回的第二媒体数据的推送应答,所述第二媒体数据的推送应答中包含所述第二媒体数据推送指示中请求的推送条件信息。The first receiving unit is configured to receive a push response of the second media data returned by the server, and the push response of the second media data includes push condition information requested in the second media data push instruction.
可选地,所述第一接收模块包括:Optionally, the first receiving module includes:
第二接收单元,设置为接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺。The second receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push parameter value returned by the push response.
可选地,所述第一接收模块包括:Optionally, the first receiving module includes:
第三接收单元,设置为接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺。The third receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push condition information returned by the push response.
根据本发明的另一个方面,还提供了一种自适应流媒体传输装置,位于服务器侧,包括:According to another aspect of the present invention, an adaptive streaming media transmission device is further provided on the server side, including:
第三接收模块,设置为接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;a third receiving module, configured to receive a request for acquiring the first media data sent by the client, where the obtaining request carries a push indication of the second media data;
第四接收模块,设置为返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端; a fourth receiving module, configured to return a push response of the first media data and the second media data to the client, and send a push commitment of the second media data to the client according to the push response End
第二发送模块,设置为根据所述推送承诺推送所述第二媒体数据至所述客户端。The second sending module is configured to push the second media data to the client according to the push commitment.
可选地,所述装置还包括:Optionally, the device further includes:
第二设置模块,设置为返回所述第二媒体数据的推送应答至所述客户端之前,设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。a second setting module, configured to set, before returning the push response of the second media data to the client, a push condition information including a push indication request of the second media data in a push response of the second media data And sending a push commitment for the inaccessible media data referenced in the push indication of the second media data.
可选地,所述第二发送模块包括:Optionally, the second sending module includes:
第一发送单元,设置为根据所述推送应答中返回的推送参数值,发送所述第二媒体的数据推送承诺至所述客户端;The first sending unit is configured to send a data push commitment of the second media to the client according to the push parameter value returned in the push response;
第二发送单元,设置为根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端。The second sending unit is configured to send a push commitment of the second media data to the client according to the push condition information returned in the push response.
可选地,所述第二发送模块包括:Optionally, the second sending module includes:
第三发送单元,设置为在所述推送条件信息为推送等待时间的情况下,自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端。The third sending unit is configured to, when the push condition information is the push waiting time, send the push commitment of the second media data in the push waiting time from receiving the first media data obtaining request To the client.
可选地,所述第二发送模块包括:Optionally, the second sending module includes:
第四发送单元,设置为在所述推送条件信息为取值为零的推送等待时间的情况下,推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。The fourth transmitting unit is configured to push all the media data referenced in the push instruction of the second media data to the client when the push condition information is a push waiting time with a value of zero.
可选地,所述第二发送模块包括:Optionally, the second sending module includes:
第五发送单元,设置为在所述推送条件信息为推送阈值的情况下,以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,设置为自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。The fifth sending unit is configured to: when the push condition information is a push threshold, use the first media data as an initial index to push at least the media in the second media data with the push threshold as a lower limit Data is sent to the client; or, at least from the media time of the first media data, the media data in the second media data with the push threshold being the media time lower limit is pushed to the client.
本发明另一实施例提供了一种计算机存储介质,所述计算机存储介质存储有执行指令,所述执行指令用于执行上述实施例中的方法。Another embodiment of the present invention provides a computer storage medium storing execution instructions for performing the method in the above embodiments.
通过本发明,发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;接收该服务器根据该推送承诺推送的该第二媒体数据,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。According to the present invention, the first media data acquisition request is sent to the server, and the acquisition request carries a push indication of the second media data; receiving the first media data returned by the server and the push response of the second media data, and receiving the Receiving, by the server, the push commitment of the second media data sent according to the push response; receiving the second media data pushed by the server according to the push commitment, and solving the push media data existing when the video streaming media is transmitted by using the server “push” feature The problem of accessibility limitation enables efficient, low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.
附图说明 DRAWINGS
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:The drawings described herein are intended to provide a further understanding of the invention, and are intended to be a part of the invention. In the drawing:
图1是根据相关技术中HTTP流媒体技术中的PULL模式传输示意图;FIG. 1 is a schematic diagram of PULL mode transmission according to the related art HTTP streaming technology;
图2是根据相关技术中HTTP流媒体技术中的PUSH模式传输示意图;2 is a schematic diagram of PUSH mode transmission in an HTTP streaming media technology according to the related art;
图3是根据相关技术中HTTP流媒体技术中的媒体片段可访问性示意图一;3 is a schematic diagram 1 of media segment accessibility in an HTTP streaming media technology according to the related art;
图4是根据相关技术中HTTP流媒体技术中的媒体片段可访问性示意图二;4 is a schematic diagram 2 of media segment accessibility in an HTTP streaming media technology according to the related art;
图5是根据本发明实施例的一种自适应流媒体传输方法的流程图一;FIG. 5 is a flowchart 1 of an adaptive streaming media transmission method according to an embodiment of the present invention;
图6是根据本发明实施例的一种自适应流媒体传输方法的流程图二;6 is a second flowchart of an adaptive streaming media transmission method according to an embodiment of the present invention;
图7是根据本发明实施例的一种自适应流媒体传输装置的结构框图一;7 is a structural block diagram 1 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention;
图8是根据本发明实施例的一种自适应流媒体传输装置的结构框图二;FIG. 8 is a structural block diagram 2 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention; FIG.
图9是根据本发明实施例的一种自适应流媒体系统架构图;9 is a structural diagram of an adaptive streaming media system according to an embodiment of the present invention;
图10是根据本发明可选实施例的一种自适应流媒体传输方法的流程图一;10 is a flowchart 1 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention;
图11是根据本发明可选实施例的一种自适应流媒体传输方法的流程图二;11 is a second flowchart of an adaptive streaming media transmission method according to an alternative embodiment of the present invention;
图12是根据本发明可选实施例的一种自适应流媒体传输方法的流程图三;12 is a flowchart 3 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention;
图13是根据本发明可选实施例的一种自适应流媒体传输方法的流程图四;FIG. 13 is a flowchart 4 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention; FIG.
图14是根据本发明可选实施例的一种自适应流媒体传输方法的流程图五;14 is a flowchart 5 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention;
图15是根据本发明可选实施例的一种自适应流媒体传输方法的流程图六;15 is a flowchart 6 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention;
图16是根据本发明可选实施例的一种自适应流媒体传输方法的流程图七;16 is a flowchart 7 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention;
图17是根据本发明可选实施例的一种自适应流媒体传输方法的流程图八;17 is a flowchart 8 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention;
图18是根据本发明可选实施例的一种自适应流媒体传输方法的流程图九;FIG. 18 is a flowchart IX of an adaptive streaming media transmission method according to an alternative embodiment of the present invention; FIG.
图19是根据本发明可选实施例的一种自适应流媒体传输方法的流程图十;19 is a flowchart 10 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention;
图20是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图一;20 is a flow chart 1 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention;
图21是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图二;21 is a flow chart 2 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention;
图22是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图三;FIG. 22 is a flowchart 3 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention; FIG.
图23是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图四;23 is a message interaction flowchart 4 of an adaptive streaming media transmission method according to an embodiment of the present invention;
图24是根据本发明实施例的一种自适应流媒体传输装置的结构框图三。 FIG. 24 is a structural block diagram 3 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention.
具体实施方式detailed description
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。The invention will be described in detail below with reference to the drawings in conjunction with the embodiments. It should be noted that the embodiments in the present application and the features in the embodiments may be combined with each other without conflict.
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。It is to be understood that the terms "first", "second" and the like in the specification and claims of the present invention are used to distinguish similar objects, and are not necessarily used to describe a particular order or order.
在本实施例中提供了一种自适应流媒体传输方法,图5是根据本发明实施例的一种自适应流媒体传输方法的流程图一,如图5所示,该流程包括如下步骤:An adaptive streaming media transmission method is provided in this embodiment. FIG. 5 is a flowchart 1 of an adaptive streaming media transmission method according to an embodiment of the present invention. As shown in FIG. 5, the process includes the following steps:
步骤S502,发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;Step S502, sending a first media data acquisition request to the server, where the acquisition request carries a push indication of the second media data;
步骤S504,接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;Step S504: Receive a push response of the first media data and the second media data returned by the server, and receive a push commitment of the second media data sent by the server according to the push response.
步骤S506,接收该服务器根据该推送承诺推送的该第二媒体数据。Step S506, receiving the second media data that the server pushes according to the push commitment.
通过上述步骤,发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;接收该服务器根据该推送承诺推送的该第二媒体数据,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。And sending, by the foregoing step, the first media data acquisition request to the server, where the acquisition request carries a push indication of the second media data; receiving the first media data returned by the server and the push response of the second media data, and receiving the Receiving, by the server, the push commitment of the second media data sent according to the push response; receiving the second media data pushed by the server according to the push commitment, and solving the push media data existing when the video streaming media is transmitted by using the server “push” feature The problem of accessibility limitation enables efficient, low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.
在本实施例中,发送第一媒体数据获取请求至服务器之前,设置该第二媒体数据的推送指示中包含推送条件信息,该推送条件信息用于请求该服务器为该第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。In this embodiment, before sending the first media data acquisition request to the server, the push indication of the second media data is set to include push condition information, where the push condition information is used to request the server to be a push indication of the second media data. The push data promised in the media data referenced in the reference.
在本实施例中,设置该推送条件信息为推送等待时间,该推送等待时间用于设置该服务器自接收该第一媒体数据获取请求起,发送该第二媒体数据的推送承诺的等待时间上限。In this embodiment, the push condition information is set as a push waiting time, and the push waiting time is used to set an upper limit of the waiting time for the push commitment of the second media data to be sent by the server after receiving the first media data obtaining request.
在本实施例中,设置该推送条件信息为取值为零的推送等待时间,该推送等待时间用于请求该服务器推送该第二媒体数据的推送指示中引用的所有媒体数据。In this embodiment, the push condition information is set to a push waiting time with a value of zero, and the push waiting time is used to request the server to push all the media data referenced in the push indication of the second media data.
在本实施例中,设置该推送条件信息为推送阈值,该推送阈值用于设置该服务器以该第一媒体数据为初始索引,推送该第二媒体数据中媒体数据的数量下限;或者,该推送阈值用于设置该服务器自该第一媒体数据的媒体时间起,推送该第二媒体数据中媒体数据的媒体时间下限。In this embodiment, the push condition information is set as a push threshold, and the push threshold is used to set the server to use the first media data as an initial index to push a lower limit of the quantity of media data in the second media data; or, the push The threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
在本实施例中,接收该服务器返回的第二媒体数据的推送应答包括:接收该服务器返回的第二媒体数据的推送应答,该第二媒体数据的推送应答中包含该第二媒体数据推送指示中请求的推送条件信息。 In this embodiment, receiving the push response of the second media data returned by the server includes: receiving a push response of the second media data returned by the server, where the push response of the second media data includes the second media data push indication Push condition information requested in .
在本实施例中,接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺包括:接收该服务器根据该推送应答返回的推送参数值,发送的该第二媒体数据的推送承诺;或者,接收该服务器根据该推送应答返回的推送条件信息,发送的该第二媒体数据的推送承诺。In this embodiment, receiving the push commitment of the second media data sent by the server according to the push response comprises: receiving a push commitment of the second media data sent by the server according to the push parameter value returned by the push response; or And receiving a push commitment of the second media data sent by the server according to the push condition information returned by the push response.
图6是根据本发明实施例的一种自适应流媒体传输方法的流程图二,如图6所示,该流程包括如下步骤:FIG. 6 is a second flowchart of an adaptive streaming media transmission method according to an embodiment of the present invention. As shown in FIG. 6, the process includes the following steps:
步骤S602,接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示;Step S602, receiving an acquisition request of the first media data sent by the client, where the acquisition request carries a push indication of the second media data;
步骤S604,返回该第一媒体数据以及该第二媒体数据的推送应答至该客户端,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端;Step S604, returning the first media data and the push response of the second media data to the client, and sending a push commitment of the second media data to the client according to the push response;
步骤S606,根据该推送承诺推送该第二媒体数据至该客户端。Step S606, pushing the second media data to the client according to the push commitment.
通过上述步骤,接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示;返回该第一媒体数据以及该第二媒体数据的推送应答至该客户端,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端;根据该推送承诺推送该第二媒体数据至该客户端,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。Receiving, by the foregoing step, an acquisition request of the first media data sent by the client, where the acquisition request carries a push indication of the second media data, and returns a push response of the first media data and the second media data to the client, And sending, according to the push response, the push commitment of the second media data to the client; and pushing the second media data to the client according to the push commitment, and solving the existence of the video streaming media transmission by using the server “push” feature The problem of restricting the accessibility of push media data enables efficient, low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.
在本实施例中,返回该第二媒体数据的推送应答至该客户端之前,设置该第二媒体数据的推送应答中包含该第二媒体数据的推送指示请求的推送条件信息,用于为该第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。In this embodiment, before returning the push response of the second media data to the client, setting a push condition information including a push instruction request of the second media data in the push response of the second media data, for The push data commitment is not transmitted by the media data that is not accessible in the push indication of the second media data.
在本实施例中,根据该推送应答发送该第二媒体数据的推送承诺至该客户端包括:根据该推送应答中返回的推送参数值,发送该第二媒体数据的推送承诺至该客户端;根据该推送应答中返回的推送条件信息,发送该第二媒体数据的推送承诺至该客户端。In this embodiment, sending the push commitment of the second media data to the client according to the push response includes: sending a push commitment of the second media data to the client according to the push parameter value returned in the push response; Sending a push commitment of the second media data to the client according to the push condition information returned in the push response.
在本实施例中,根据该推送应答中返回的推送条件信息,发送该第二媒体数据的推送承诺至该客户端包括:In this embodiment, according to the push condition information returned in the push response, sending the push commitment of the second media data to the client includes:
在该推送条件信息为推送等待时间的情况下,自接收该第一媒体数据获取请求起,在该推送等待时间内发送该第二媒体数据的推送承诺至该客户端。When the push condition information is the push waiting time, the push commitment of the second media data is transmitted to the client within the push waiting time from the receipt of the first media data acquisition request.
在本实施例中,根据该推送应答中返回的推送条件信息发送该第二媒体数据的推送承诺至该客户端包括:In this embodiment, sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
在该推送条件信息为取值为零的推送等待时间的情况下,推送该第二媒体数据的推送指示中引用的所有媒体数据至该客户端。When the push condition information is a push waiting time with a value of zero, all media data referenced in the push instruction of the second media data is pushed to the client.
在本实施例中,根据该推送应答中返回的推送条件信息发送该第二媒体数据的推送承诺至该客户端包括: In this embodiment, sending the push commitment of the second media data to the client according to the push condition information returned in the push response includes:
在该推送条件信息为推送阈值的情况下,以该第一媒体数据为初始索引,至少推送该第二媒体数据中以该推送阈值为数量下限的媒体数据至该客户端;或者,自该第一媒体数据的媒体时间起,至少推送该第二媒体数据中以该推送阈值为媒体时间下限的媒体数据至该客户端。When the push condition information is a push threshold, the first media data is used as an initial index, and at least the media data in the second media data with the push threshold is a lower limit is pushed to the client; or The media data of the media data is at least pushed to the client in the second media data with the push threshold being the media time lower limit.
在本实施例中还提供了一种自适应流媒体传输装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。An adaptive streaming media transmission device is also provided in the embodiment, and the device is used to implement the foregoing embodiments and preferred embodiments, and details are not described herein. As used below, the term "module" may implement a combination of software and/or hardware of a predetermined function. Although 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.
图7是根据本发明实施例的一种自适应流媒体传输装置的结构框图一,如图7所示,该装置位于终端侧,包括:FIG. 7 is a structural block diagram of an adaptive streaming media transmission apparatus according to an embodiment of the present invention. As shown in FIG. 7, the apparatus is located on the terminal side, and includes:
第一发送模块72,设置为发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;The first sending module 72 is configured to send a first media data obtaining request to the server, where the obtaining request carries a push indication of the second media data;
第一接收模块74,设置为接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;The first receiving module 74 is configured to receive the first media data returned by the server and the push response of the second media data, and receive a push commitment of the second media data sent by the server according to the push response;
第二接收模块76,设置为接收该服务器根据该推送承诺推送的该第二媒体数据。The second receiving module 76 is configured to receive the second media data that the server pushes according to the push commitment.
通过上述装置,第一发送模块72发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示,第一接收模块74接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺,第二接收模块76接收该服务器根据该推送承诺推送的该第二媒体数据,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。The first sending module 72 sends a first media data obtaining request to the server, where the obtaining request carries a push indication of the second media data, and the first receiving module 74 receives the first media data returned by the server and the first Transmitting a response of the second media data, and receiving a push commitment of the second media data sent by the server according to the push response, the second receiving module 76 receiving the second media data that is pushed by the server according to the push commitment, and solving the utilization server The "push" feature enables the accessibility limitation of push media data when video streaming is performed, and realizes efficient and low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.
在本实施例中,该装置还包括:In this embodiment, the device further includes:
第一设置模块,设置为发送第一媒体数据获取请求至服务器之前,设置该第二媒体数据的推送指示中包含的推送条件信息,该推送条件信息用于请求该服务器为该第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。The first setting module is configured to: before sending the first media data acquisition request to the server, set the push condition information included in the push indication of the second media data, where the push condition information is used to request the server to be the second media data A push commitment is sent by the inaccessible media data referenced in the push indication.
在本实施例中,该第一设置模块包括:In this embodiment, the first setting module includes:
第一设置单元,设置为设置该推送条件信息为推送等待时间,该推送等待时间用于设置该服务器自接收该第一媒体数据获取请求起,发送该第二媒体数据的推送承诺的等待时间上限。The first setting unit is configured to set the push condition information to be a push waiting time, where the push waiting time is used to set an upper waiting time limit for the push commitment of the second media data to be sent by the server after receiving the first media data obtaining request .
在本实施例中,该第一设置模块包括:In this embodiment, the first setting module includes:
第二设置单元,设置为设置该推送条件信息为取值为零的推送等待时间,该推送等待时间用于请求该服务器推送该第二媒体数据的推送指示中引用的所有媒体数据。 The second setting unit is configured to set the push condition information to a push waiting time with a value of zero, and the push waiting time is used to request the server to push all the media data referenced in the push indication of the second media data.
在本实施例中,该第一设置模块包括:In this embodiment, the first setting module includes:
第三设置单元,设置为设置该推送条件信息为推送阈值,该推送阈值用于设置该服务器以该第一媒体数据为初始索引,推送该第二媒体数据中媒体数据的数量下限;或者,该推送阈值用于设置该服务器自该第一媒体数据的媒体时间起,推送该第二媒体数据中媒体数据的媒体时间下限。a third setting unit, configured to set the push condition information to be a push threshold, where the push threshold is used to set the server to use the first media data as an initial index to push a lower limit of the quantity of media data in the second media data; or The push threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
在本实施例中,该第一接收模块74包括:In this embodiment, the first receiving module 74 includes:
第一接收单元,设置为接收该服务器返回的第二媒体数据的推送应答,该第二媒体数据的推送应答中包含该第二媒体数据推送指示中请求的推送条件信息。The first receiving unit is configured to receive a push response of the second media data returned by the server, and the push response of the second media data includes push condition information requested in the second media data push instruction.
在本实施例中,该第一接收模块74包括:In this embodiment, the first receiving module 74 includes:
第二接收单元,设置为接收该服务器根据该推送应答返回的推送参数值,发送的该第二媒体数据的推送承诺。The second receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push parameter value returned by the push response.
在本实施例中,该第一接收模块74包括:In this embodiment, the first receiving module 74 includes:
第三接收单元,设置为接收该服务器根据该推送应答返回的推送条件信息,发送的该第二媒体数据的推送承诺。The third receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push condition information returned by the push response.
图8是根据本发明实施例的一种自适应流媒体传输装置的结构框图二,如图8所示,该装置位于服务器侧,包括:FIG. 8 is a structural block diagram 2 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention. As shown in FIG. 8, the apparatus is located on the server side, and includes:
第三接收模块82,设置为接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示;The third receiving module 82 is configured to receive a request for acquiring the first media data sent by the client, where the obtaining request carries a push indication of the second media data;
第四接收模块84,设置为返回该第一媒体数据以及该第二媒体数据的推送应答至该客户端,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端;The fourth receiving module 84 is configured to return a push response of the first media data and the second media data to the client, and send a push commitment of the second media data to the client according to the push response;
第二发送模块86,设置为根据该推送承诺推送该第二媒体数据至该客户端。The second sending module 86 is configured to push the second media data to the client according to the push commitment.
通过上述装置,第三接收模块82接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示,第四接收模块84返回该第一媒体数据以及该第二媒体数据的推送应答至该客户端,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端,第二发送模块86根据该推送承诺推送该第二媒体数据至该客户端,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。The third receiving module 82 receives the request for acquiring the first media data sent by the client, where the acquiring request carries the push indication of the second media data, and the fourth receiving module 84 returns the first media data and the second The push of the media data is sent to the client, and the push commitment of the second media data is sent to the client according to the push response, and the second sending module 86 pushes the second media data to the client according to the push commitment. The problem of accessibility limitation of push media data existing when using video "push" feature for video streaming media transmission achieves efficient, low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.
在本实施例中,该装置还包括:In this embodiment, the device further includes:
第二设置模块,设置为返回该第二媒体数据的推送应答至该客户端之前,设置该第二媒体数据的推送应答中包含该第二媒体数据的推送指示请求的推送条件信息,用于为该第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。 The second setting module is configured to: before returning the push response of the second media data to the client, setting a push condition information of the push instruction request including the second media data in the push response of the second media data, The inaccessible media data referenced in the push indication of the second media data sends a push commitment.
在本实施例中,该第二发送模块86包括:In this embodiment, the second sending module 86 includes:
第一发送单元,设置为根据该推送应答中返回的推送参数值,发送该第二媒体的数据推送承诺至该客户端;The first sending unit is configured to send a data push commitment of the second media to the client according to the push parameter value returned in the push response;
第二发送单元,设置为根据该推送应答中返回的推送条件信息,发送该第二媒体数据的推送承诺至该客户端。The second sending unit is configured to send a push commitment of the second media data to the client according to the push condition information returned in the push response.
第三发送单元,设置为在该推送条件信息为推送等待时间的情况下,自接收该第一媒体数据获取请求起,在该推送等待时间内发送该第二媒体数据的推送承诺至该客户端。The third sending unit is configured to, when the push condition information is the push waiting time, send the push commitment of the second media data to the client in the push waiting time from receiving the first media data obtaining request .
第四发送单元,设置为在该推送条件信息为取值为零的推送等待时间的情况下,推送该第二媒体数据的推送指示中引用的所有媒体数据至该客户端。The fourth transmitting unit is configured to push all the media data referenced in the push instruction of the second media data to the client when the push condition information is a push waiting time with a value of zero.
第五发送单元,设置为在该推送条件信息为推送阈值的情况下,以该第一媒体数据为初始索引,至少推送该第二媒体数据中以该推送阈值为数量下限的媒体数据至该客户端;或者,用于自该第一媒体数据的媒体时间起,至少推送该第二媒体数据中以该推送阈值为媒体时间下限的媒体数据至该客户端。The fifth sending unit is configured to: when the push condition information is a push threshold, use the first media data as an initial index to push at least the media data in the second media data with the push threshold as a lower limit to the client Or; for at least pushing the media data in the second media data with the push threshold as a media time lower limit from the media time of the first media data to the client.
下面结合优选实施例和实施方式对本发明进行详细说明。The invention will now be described in detail in conjunction with the preferred embodiments and embodiments.
本发明优选实施例提供了一种自适应流媒体传输系统,图9是根据本发明实施例的一种自适应流媒体系统架构图,如图9所示,包括:终端100、流媒体客户端200、HTTP/2客户端300、网络400,以及服务器500。下面对图9中示出的系统进行说明。A preferred embodiment of the present invention provides an adaptive streaming media transmission system. FIG. 9 is a structural diagram of an adaptive streaming media system according to an embodiment of the present invention. As shown in FIG. 9, the terminal 100 includes a streaming media client. 200, HTTP/2 client 300, network 400, and server 500. The system shown in Fig. 9 will be described below.
终端100,为流媒体客户端200提供运行环境的用户侧硬件设备,终端100部署实例可以包括:机顶盒、台式机、平板电脑,智能手机等;The terminal 100 provides a user-side hardware device of the running environment for the streaming media client 200. The deployment example of the terminal 100 may include: a set-top box, a desktop computer, a tablet computer, a smart phone, and the like;
流媒体客户端200,提供针对服务器500中流媒体资源的访问、解码、缓存和播放控制,包括:码率自适应模块210,媒体播放引擎220,推模块230,拉模块240。The streaming media client 200 provides access, decoding, caching, and playback control for the streaming media resources in the server 500, including: a code rate adaptation module 210, a media playback engine 220, a push module 230, and a pull module 240.
流媒体客户端200指示HTTP客户端300与服务器500建立媒体传输信道,服务器500利用该媒体信道主动向终端100推送流媒体数据。所述媒体信道可以通过HTTP/1.1协议升级机制建立。流媒体客户端200通过HTTP客户端300向服务器500发送媒体片段或者MPD文件访问请求。其中媒体片段访问请求中可以携带请求媒体片段的统一资源标识符URI以及后续媒体片段的“推送策略”。“推送策略”用于流媒体客户端200与服务器500协商后续媒体片段的推送机制。除了返回请求的媒体片段数据,服务器500在收到媒体片段推送请求后,将根据媒体片段的可用性以及本地策略返回推送应答,一旦流媒体客户端200与服务器500就后续媒体片段“推送策略”达成一致,服务器500将发起媒体片段推送会话,向终端100主动推送后续可用的媒体片段。流媒体客户端200在缓存足够数量媒体片段数据后即可开始播放视频内容。The streaming client 200 instructs the HTTP client 300 to establish a media transport channel with the server 500, and the server 500 actively pushes streaming media data to the terminal 100 using the media channel. The media channel can be established through an HTTP/1.1 protocol upgrade mechanism. The streaming client 200 transmits a media segment or MPD file access request to the server 500 via the HTTP client 300. The media segment access request may carry a uniform resource identifier URI of the requested media segment and a “push policy” of the subsequent media segment. The "push policy" is used by the streaming client 200 to negotiate with the server 500 for the push mechanism of subsequent media segments. In addition to returning the requested media segment data, after receiving the media segment push request, the server 500 will return a push response according to the availability of the media segment and the local policy, once the streaming media client 200 and the server 500 reach a subsequent media segment "push strategy". Consistently, the server 500 will initiate a media segment push session to actively push subsequent available media segments to the terminal 100. The streaming client 200 can start playing the video content after buffering a sufficient amount of media segment data.
码率自适应模块210,检测当前可用网络带宽以及媒体播放引擎220中媒体片段缓存状态,执行码率自适应算法,并向推模块230、拉模块240发送码率切换指示。 The rate adaptation module 210 detects the current available network bandwidth and the media segment buffer status in the media playback engine 220, performs a code rate adaptation algorithm, and sends a code rate switching indication to the push module 230 and the pull module 240.
媒体播放引擎220,对接收到的媒体片段进行解码,媒体数据缓存以及视频播放控制。The media playback engine 220 decodes the received media segments, media data buffers, and video playback controls.
推模块230,基于HTTP 2.0协议所支持的服务器发起会话功能,通过HTTP客户端300请求服务器500推送流媒体资源至终端100。The push module 230 initiates a session function based on the server supported by the HTTP 2.0 protocol, and requests the server 500 to push the streaming media resource to the terminal 100 through the HTTP client 300.
本发明方案中,推模块230支持以下“推送行为”(Push Behavior):In the solution of the present invention, the push module 230 supports the following "Push Behavior":
推模块230,支持“即时推送”(Instant Push)行为:Push module 230 supports "Instant Push" behavior:
在本发明上下文中,“即时推送”(Instant Push)特指一旦服务器向客户端返回推送应答,则服务器在推送会话中将会发送的所有推送承诺就已经被确定的推送行为。在“即时推送”行为中,服务器占据着推送策略协商的主导地位,由它完全决定如何推送后续媒体片段。In the context of the present invention, "Instant Push" refers specifically to the push behavior that all push commitments that the server will send in the push session have been determined once the server returns a push response to the client. In the "instant push" behavior, the server dominates the push policy negotiation, which completely determines how to push subsequent media segments.
1.根据本地策略,如果服务器可以完全满足推送请求中携带的推送指示,譬如:推送指示只引用当前可访问的媒体片段,则服务器可以通过执行“即时推送”,直接返回具有与推送指示中相同推送参数值的推送应答1. According to the local policy, if the server can fully satisfy the push indication carried in the push request, for example, the push indication only refers to the currently accessible media segment, the server can directly return to the same as the push indication by performing “immediate push”. Push response of push parameter values
2.如果服务器无法完全满足推送请求中携带的推送指示,譬如:推送指示中引用了当前尚不可访问的媒体片段,并且推送指示没有直接请求服务器推送当前尚不可访问的媒体片段,则服务器同样可以通过执行“即时推送”,返回与推送指示中具有不同推送参数值的推送应答2. If the server cannot fully satisfy the push indication carried in the push request, for example, the push indication refers to the media clip that is currently inaccessible, and the push indication does not directly request the server to push the currently unreachable media segment, the server can also Returns a push response with a different push parameter value in the push indication by performing an "immediate push"
3.特别地,当判断无法推送任何媒体片段时,服务器可以利用“即时推送”返回“拒绝推送”推送应答3. In particular, when it is judged that any media clip cannot be pushed, the server can use "immediate push" to return a "reject push" push response.
推模块230,支持“渐进式推送”(Progressive Push)行为:Push module 230 supports "Progressive Push" behavior:
在本发明上下文中,“渐进式推送”(Progressive Push)或者“长时间推送”(Long Push)代表服务器返回推送应答时,并不排除后续将会渐进地、有条件地发送超出所述推送应答中所返回推送参数值的推送承诺的推送行为。在“渐进式推送”过程中,服务器将为新出现的可访问的媒体片段推送承诺,直至推送指示所引用的媒体片段已全部被推送,或者不在满足推送指示中所设定的推送条件。In the context of the present invention, "Progressive Push" or "Long Push" on behalf of the server returning a push response does not preclude the subsequent progressive, conditional transmission beyond the push response. The push behavior of the push promise of the push parameter value returned in . During the "progressive push" process, the server will push the promise for the newly-accessible media segment until the media segment referenced by the push indication has all been pushed, or the push condition set in the push indication is not met.
1.根据本地策略,如果服务器无法完全满足推送请求中携带的推送指示,譬如:推送指示中引用了尚不可访问的媒体片段,但是推送指示明确请求服务器推送尚不可访问的媒体片段,则服务器可以执行“渐进式推送”1. According to the local policy, if the server cannot fully satisfy the push indication carried in the push request, for example, the push indication refers to a media segment that is not yet accessible, but the push instruction explicitly requests the server to push the media segment that is not yet accessible, the server may Perform "gradual push"
1)初始阶段,服务器在返回的推送应答中根据当前可访问的媒体片段返回推送参数值,并且确认后续将会为新出现的可访问的媒体片段发送推送承诺1) In the initial stage, the server returns the push parameter value according to the currently accessible media segment in the returned push response, and confirms that the push commitment will be sent for the newly emerging accessible media segment.
2)在推送会话的后续阶段,服务器将为新出现的可访问的媒体片段推送承诺,直至推送指示中所引用的媒体片段已全部被推送,或者推送指示中设定的推送条件已经失效2) In the subsequent stage of the push session, the server will push the promise for the newly-accessible media segment until the media segments referenced in the push indication have all been pushed, or the push conditions set in the push indication have expired
“渐进式推送”(Progressive Push)行为能够使服务器根据客户端所设置的推送条件为当前尚不可访问的(即,暂时无法确定访问地址的)媒体片段发送推送承诺:The "Progressive Push" behavior enables the server to send push commitments to media segments that are currently inaccessible (ie, temporarily unable to determine the access address) based on the push conditions set by the client:
1.客户端在所述第二媒体数据推送指示中设置推送条件信息,用于请求所述服务器推送 所述第二媒体数据推送指示中引用的尚不可访问的媒体数据;1. The client sets push condition information in the second media data push indication for requesting the server to push The second media data push indication is not yet accessible media data;
2.服务器将为新出现的可访问的媒体片段推送承诺,直至推送指示中所引用的媒体片段已全部被推送,或者推送指示中设定的推送条件已经失效2. The server will push the promise for the newly-accessible media segment until the media segment referenced in the push indication has all been pushed, or the push condition set in the push indication has expired
推送条件失效通常伴随着推送会话中特定事件或状态的发生,例如,为发送尚不可访问的媒体片段推送承诺的推送等待时间已经过期,或者所推送媒体片段数量或者媒体片段时间已经达到推送阈值等。Push condition failure is usually accompanied by the occurrence of a specific event or state in the push session. For example, the push wait time for pushing a promised media segment push promise has expired, or the number of pushed media segments or media clip time has reached the push threshold, etc. .
“渐进式推送”(Progressive Push)行为的基本过程如下:The basic process of "Progressive Push" behavior is as follows:
1.客户端在所发送的推送请求中携带包含推送条件信息的第二媒体数据推送指示1. The client carries a second media data push indication including push condition information in the sent push request
2.服务器返回第二媒体数据推送应答,并且不排除后续将会根据所述推送指示中请求的推送条件信息,发送超出所述推送应答中返回的推送参数值的推送承诺2. The server returns a second media data push response, and does not exclude that a push commitment that exceeds the push parameter value returned in the push response will be sent according to the push condition information requested in the push indication.
3.服务器在返回推送应答后立即向客户端发送当前可访问媒体片段的推送承诺,此外,服务器还将为新出现的可访问的媒体片段推送承诺3. The server sends the push promise of the currently accessible media segment to the client immediately after returning the push response. In addition, the server will push the promise for the newly available accessible media segment.
需要指出的是,尽管渐进式推送过程天然地包含着即时推送过程,然而上文提到的推送条件信息将不会对即时推送过程施加任何限制。It should be noted that although the progressive push process naturally involves an instant push process, the push condition information mentioned above will not impose any restrictions on the instant push process.
拉模块240,基于HTTP 1.1协议或HTTP 2.0协议所支持的客户端发起会话功能,通过HTTP客户端300,请求下载服务器500中流媒体资源至终端100。The pull module 240 requests the downloading of the streaming media resource in the server 500 to the terminal 100 through the HTTP client 300 based on the client initiated session function supported by the HTTP 1.1 protocol or the HTTP 2.0 protocol.
HTTP客户端300,包括:HTTP/2客户端,以及HTTP/1.1客户端。HTTP客户端300根据流媒体客户端200内部推模块230或者拉模块240的媒体片段访问请求以及码率切换指示,向服务器500发送HTTP请求,请求获取服务器500中最适合当前网络带宽和缓存状况的流媒体资源。其中,缓存330提供HTTP客户端300所下载媒体资源的本地存储。The HTTP client 300 includes: an HTTP/2 client, and an HTTP/1.1 client. The HTTP client 300 sends an HTTP request to the server 500 according to the media segment access request of the internal push module 230 or the pull module 240 of the streaming media client 200 and the code rate switching instruction, and requests the acquisition of the server 500 that is most suitable for the current network bandwidth and the cache status. Streaming media resources. The cache 330 provides local storage of the media resources downloaded by the HTTP client 300.
网络400可以包括:数字用户线路(X Digital Subscriber Line,简称为xDSL)、光纤接入(Fiber-to-the-x,简称为FTTx)、有线电视电缆Cable等有线通信网络,以及Wi-Fi、2G、3G、长期演进(Long Term Evolution,简称为LTE)等无线通信网络。The network 400 may include: a digital subscriber line (X Digital Subscriber Line, abbreviated as xDSL), a fiber-optic access (Fiber-to-the-x, referred to as FTTx), a cable communication cable, and the like, and a Wi-Fi network. A wireless communication network such as 2G, 3G, and Long Term Evolution (LTE).
服务器500,完成对原始视频的切片和MPD文件的生成。其中,内容源520负责内容源捕获、编码压缩、分段处理,将原始视频内容划分成为具有固定时间间隔的多个视频片段。HTTP服务器510,将每一个视频片段作为可被HTTP请求和响应独立访问的HTTP资源,即视频文件,并以时段(period)、表示(representation)和媒体片段(segment)的层次存储。根据请求,HTTP服务器510将向终端返回适当的媒体分片。The server 500 completes the generation of the slice of the original video and the generation of the MPD file. The content source 520 is responsible for content source capture, encoding compression, and segmentation processing, and divides the original video content into a plurality of video segments having a fixed time interval. The HTTP server 510 stores each video clip as an HTTP resource that is independently accessible by HTTP requests and responses, that is, a video file, and stores it in a hierarchy of periods, representations, and segments. Upon request, the HTTP server 510 will return the appropriate media shards to the terminal.
服务器500,还提供动态自适应流媒体中MPD文件存储。MPD文件描述了每个媒体片段的持续时间,URL,媒体属性,如视频分辨率、适配比特率等。MPD文件给流媒体客户端提供了足够的HTTP-URL信息用于访问流媒体内容资源,当流媒体客户端开始播放一个视频的时候,它根据MPD文件中的信息选择下载适应于当前可用网络带宽和终端缓存状况的媒体片段并进行播放。 The server 500 also provides MPD file storage in dynamic adaptive streaming. The MPD file describes the duration, URL, media attributes of each media segment, such as video resolution, adaptation bit rate, and the like. The MPD file provides enough HTTP-URL information for the streaming client to access the streaming content resource. When the streaming client starts playing a video, it selects the download according to the information in the MPD file to adapt to the currently available network bandwidth. And the media segment of the terminal cache status is played and played.
在本发明的实施例中,涉及到的自适应流媒体(或者称为动态自适应流媒体)有多种实现方式,例如,可以采用基于HTTP的动态自适应流媒体(Dynamic Adaptive Streaming over HTTP,简称为DASH)。下面以DASH为例对MPD服务器和流媒体服务器进行说明。以下实施例对其他自适应流媒体技术也同样适用。In the embodiment of the present invention, the adaptive streaming media (or dynamic adaptive streaming media) involved may be implemented in various manners, for example, dynamic adaptive streaming over HTTP (Dynamic Adaptive Streaming over HTTP) may be adopted. Referred to as DASH). The following takes DASH as an example to describe the MPD server and the streaming media server. The following embodiments are equally applicable to other adaptive streaming technologies.
图10是根据本发明可选实施例的一种自适应流媒体传输方法的流程图一,如图10所示,该流程包括如下步骤:FIG. 10 is a flowchart 1 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 10, the process includes the following steps:
步骤S1002,发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;Step S1002: Send a first media data acquisition request to the server, where the acquisition request carries a push indication of the second media data;
步骤S1004,接收所述服务器返回的该第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;Step S1004: Receive a push response of the first media data and the second media data returned by the server, and receive a push commitment of the second media data sent by the server according to the push response.
步骤S1006,接收所述服务器根据所述推送承诺推送的该第二媒体数据。Step S1006: Receive the second media data that is sent by the server according to the push commitment.
通过上述步骤,客户端可以在第一媒体数据获取请求中携带第二媒体数据的推送指示,设置所述第二媒体数据推送指示中包含推送条件信息,用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。从而解决了相关技术中利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。Through the above steps, the client may carry a push indication of the second media data in the first media data acquisition request, and set the second media data push indication to include push condition information, where the server is requested to be the second The push data promised by the inaccessible media data referenced in the push indication of the media data. Therefore, the problem of accessibility limitation of push media data existing when the server "push" feature is used for video streaming transmission is solved in the related art, and an efficient, low-latency adaptive flow based on full-duplex transmission protocol binding is realized. Media transfer.
上述步骤S1002中记载了发送第一媒体数据获取请求至服务器,所述请求中携带第二媒体数据的推送指示;下面结合可选实施对此进行说明。In the above step S1002, it is described that the first media data acquisition request is sent to the server, and the request carries the push instruction of the second media data; this will be described below in conjunction with an optional implementation.
图11是根据本发明可选实施例的一种自适应流媒体传输方法的流程图二,如图11所示,该流程包括如下步骤:FIG. 11 is a second flowchart of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 11, the process includes the following steps:
步骤S1102,确定请求获取的第一媒体数据统一资源标识符URI;Step S1102, determining a first media data uniform resource identifier URI that is requested to be acquired;
步骤S1104,判断是否请求服务器推送第二媒体数据。若是,则执行步骤S1106;若否,则执行步骤S1105,发送所述第一媒体数据获取请求至服务器,结束。In step S1104, it is determined whether the server is requested to push the second media data. If yes, go to step S1106; if no, go to step S1105, send the first media data acquisition request to the server, and end.
步骤S1105,发送第一媒体数据获取请求至所述服务器;Step S1105: Send a first media data acquisition request to the server;
步骤S1106,设置用于请求服务器推送所述第二媒体数据的推送指示;Step S1106, setting a push indication for requesting the server to push the second media data;
步骤S1108,判断所述推送指示是否引用所述第二媒体数据中的尚不可访问的媒体数据。若是,则执行步骤S1110,若否,则执行步骤S1114;Step S1108: Determine whether the push indication refers to media data that is not yet accessible in the second media data. If yes, go to step S1110, if no, go to step S1114;
步骤S1110,判断是否请求推送所述第二媒体数据中的尚不可访问的媒体数据,若是,则执行步骤S1112,若否,则执行步骤S1114。In step S1110, it is determined whether to request to push the media data that is not yet accessible in the second media data. If yes, step S1112 is performed, and if no, step S1114 is performed.
步骤S1112,设置所述第二媒体数据的推送指示中包含推送条件信息,用于请求所述服务器推送所述第二媒体数据中的尚不可访问的媒体数据; In step S1112, the push indication of the second media data includes push condition information, and is used to request the server to push the media data that is not yet accessible in the second media data;
步骤S1114,发送第一媒体数据获取请求至所述服务器,所述获取请求中携带所述第二媒体数据的推送指示。Step S1114: Send a first media data acquisition request to the server, where the acquisition request carries a push indication of the second media data.
上述步骤S1112中记载了设置所述第二媒体数据推送指示中包含推送条件信息,用于请求所述服务器推送所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据;下面结合可选实施对此进行说明。In the above step S1112, it is described that the second media data push instruction includes the push condition information, and is used to request the server to push the media data that is referenced in the push instruction of the second media data; The implementation is described.
下面针对本发明中提出的“推送条件”(PushConditions)做出具体说明:The following is a detailed description of the "PushConditions" proposed in the present invention:
作为推送请求中推送指示的组成部分,“推送条件”可以被客户端用来显示地请求服务器在推送会话中的特定条件下发送推送承诺,譬如:为新出现的可访问媒体片段发送推送承诺。“推送条件”是由一系列(关键字,值)对所构成的字符串,其中每对(关键字,值)代表一个特定的推送条件,用于平等地评估“推送条件”在推送会话中的有效性。As part of the push indication in the push request, the "push condition" can be used by the client to explicitly request the server to send a push commitment under certain conditions in the push session, such as sending a push promise for a newly emerging accessible media segment. A "push condition" is a string consisting of a series of (keyword, value) pairs, where each pair (keyword, value) represents a specific push condition for equal evaluation of "push conditions" in a push session Effectiveness.
“推送条件”字符串扩展的巴科斯范式(ABNF)定义如下:The Bacchus Paradigm (ABNF) for the "push condition" string extension is defined as follows:
PUSH_CONDITIONS=key BWS"="BWS valuePUSH_CONDITIONS=key BWS"="BWS value
*(OWS","[OWS parameter])*(OWS","[OWS parameter])
parameter=key BWS"="BWS valueParameter=key BWS"="BWS value
下表1为“推送条件”提供了正式的关键字和取值定义:Table 1 below provides formal keyword and value definitions for "push conditions":
表1Table 1
Figure PCTCN2016102032-appb-000001
Figure PCTCN2016102032-appb-000001
表1中所定义的“推送等待”(push-wait)推送条件用于表示:The "push-wait" push condition defined in Table 1 is used to indicate:
1.客户端愿意在推送会话中等待某个最大时间值以接收服务器后续发送的推送承诺1. The client is willing to wait for a certain maximum time value in the push session to receive the push commitment sent by the server.
2.客户端可能会在等待某个最大时间值之后为那些尚未收到推送承诺的媒体片段再次发送推送请求2. The client may wait for a certain maximum time value to send a push request again for those media segments that have not received the push commitment.
“推送等待”指示符用于请求服务器即便已经向客户端发送完毕所有可访问媒体片段的推送承诺,仍然在某个最大时间值内保持推送请求流处于“开放”状态。在某些情况之下,譬如:在多个连续推送事务中,服务器无法为客户端请求推送的后续媒体片段发送推送承诺, 客户端可以利用“推送等待”机制减少创建新的请求流,从而避免不必要的请求开销。The Push Wait indicator is used to request that the server keep the push request flow in an "open" state for a certain maximum time value even if the push commitment of all accessible media segments has been sent to the client. In some cases, such as in multiple consecutive push transactions, the server is unable to send a push commitment for subsequent media segments that the client requests to push. Clients can use the Push Waiting mechanism to reduce the need to create new request flows, thereby avoiding unnecessary request overhead.
表1中所定义的“推送阈值”(push-threshold)推送条件用于表示:The "push-threshold" push condition defined in Table 1 is used to indicate:
1.客户端要求在推送会话中至少被推送一定数量下限或者媒体时间下限的媒体片段1. The client requests a media segment that is pushed at least by a certain number of lower limits or media time limits in the push session.
2.客户端可能会在被推送一定数量下限或者媒体时间下限的媒体片段之后为那些尚未收到推送承诺的媒体片段再次发送推送请求2. The client may send a push request again for media segments that have not received the push promise after the media segment that has been pushed to a certain lower limit or media time limit.
“推送阈值”指示符用于请求服务器即便已经向客户端发送完毕所有可访问媒体片段的推送承诺,仍然保持推送请求流处于“开放”状态,直至客户端被推送一定下限的媒体片段。The "push threshold" indicator is used to request that the server keep the push request stream in an "open" state even if the push commitment of all accessible media segments has been sent to the client until the client is pushed a certain lower media segment.
下面针对本发明中提出的“推送条件”(PushConditions)做出示例如下:The following is an example of the "PushConditions" proposed in the present invention as follows:
(一)非渐进式推送(1) Non-progressive push
1)“推送等待”使用示例如表2所示:1) The example of "push wait" is shown in Table 2:
表2Table 2
Figure PCTCN2016102032-appb-000002
Figure PCTCN2016102032-appb-000002
2)“推送阈值”使用示例如表3所示:2) The "push threshold" usage example is shown in Table 3:
表3table 3
Figure PCTCN2016102032-appb-000003
Figure PCTCN2016102032-appb-000003
3)“推送等待”与“推送阈值”联合使用示例如表4所示:3) The example of "push wait" combined with "push threshold" is shown in Table 4:
表4Table 4
Figure PCTCN2016102032-appb-000004
Figure PCTCN2016102032-appb-000004
Figure PCTCN2016102032-appb-000005
Figure PCTCN2016102032-appb-000005
(二)渐进式推送(2) Progressive push
1)“推送等待”使用示例如表5所示:1) The example of "push wait" is shown in Table 5:
表5table 5
Figure PCTCN2016102032-appb-000006
Figure PCTCN2016102032-appb-000006
2)“推送阈值”使用示例如表6所示:2) The "push threshold" usage example is shown in Table 6:
表6Table 6
Figure PCTCN2016102032-appb-000007
Figure PCTCN2016102032-appb-000007
3)“推送等待”与“推送阈值”联合使用示例如表7所示:3) The example of "push wait" combined with "push threshold" is shown in Table 7:
表7Table 7
Figure PCTCN2016102032-appb-000008
Figure PCTCN2016102032-appb-000008
图12是根据本发明可选实施例的一种自适应流媒体传输方法的流程图三,如图12所示,该流程包括如下步骤:FIG. 12 is a third flowchart of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 12, the process includes the following steps:
步骤S1202,设置所述第二媒体数据的推送指示中包含推送等待时间;Step S1202, setting a push indication of the second media data to include a push waiting time;
步骤S1204,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。Step S1204: The push waiting time is used to set an upper limit of the waiting time for the push commitment of the second media data to be sent by the server after receiving the first media data obtaining request.
特别地,当客户端设置所述第二媒体数据的推送指示中包含的推送等待时间为预先设定取值时,譬如:取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。Specifically, when the push waiting time included in the push indication of the second media data set by the client is a preset value, for example, a push waiting time with a value of zero, the push waiting time is used for the requesting The server pushes all media data referenced in the push indication of the second media data.
图13是根据本发明可选实施例的一种自适应流媒体传输方法的流程图四,如图13所示,该流程包括如下步骤:FIG. 13 is a flowchart 4 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 13, the process includes the following steps:
步骤S1302,设置所述第二媒体数据的推送指示中包含推送阈值;Step S1302, setting a push indication of the second media data to include a push threshold;
步骤S1304,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限。Step S1304: The push threshold is used to set the server to use the first media data as an initial index, and push a lower limit of the quantity of media data in the second media data.
图14是根据本发明可选实施例的一种自适应流媒体传输方法的流程图五,如图14所示,该流程包括如下步骤:FIG. 14 is a flowchart 5 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 14, the process includes the following steps:
步骤S1402,设置所述第二媒体数据的推送指示中包含推送阈值;Step S1402, setting a push indication of the second media data to include a push threshold;
步骤S1404,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。Step S1404: The push threshold is used to set a media time lower limit of the media data in the second media data from the media time of the first media data.
上述步骤S1004中记载了接收所述服务器返回的第一媒体数据以及第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;下面结合可选实施对此进行说明。In the above step S1004, it is described that the push response of the first media data and the second media data returned by the server is received, and the push commitment of the second media data sent by the server according to the push response is received; The implementation is described.
图15是根据本发明可选实施例的一种自适应流媒体传输方法的流程图六,如图15所示,该流程包括如下步骤:FIG. 15 is a flowchart 6 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 15, the process includes the following steps:
步骤S1502,接收服务器返回的第二媒体数据的推送应答;Step S1502: Receive a push response of the second media data returned by the server.
步骤S1504,判断所述推送应答是否引用第二媒体数据中所有媒体数据。若是,则执行步骤S1506,否则执行步骤S1510;Step S1504, determining whether the push response refers to all media data in the second media data. If yes, go to step S1506, otherwise go to step S1510;
步骤S1506,接收服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;Step S1506: The sending server sends a push commitment of the second media data according to the push response.
步骤S1508,接收所述服务器根据所述推送承诺推送的所述第二媒体数据;Step S1508, receiving the second media data that the server pushes according to the push commitment;
步骤S1510,接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺; Step S1510: Receive a push commitment of the second media data that is sent by the server according to the push parameter value returned by the push response.
步骤S1512,判断推送应答是否包含推送条件信息。若是,则执行步骤S1514,否则执行步骤1516;In step S1512, it is determined whether the push response includes push condition information. If yes, go to step S1514, otherwise go to step 1516;
步骤S1514,接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺;Step S1514: Receive a push commitment of the second media data that is sent by the server according to the push condition information returned by the push response.
步骤S1516,接收所述服务器根据所述推送承诺推送的所述第二媒体数据。Step S1516: Receive the second media data that is sent by the server according to the push commitment.
需要说明的是,如果服务器没有返回第二媒体数据推送应答,客户端可以认为服务器将不会推送第二媒体数据;如果服务器返回“拒绝推送”推送应答,客户端则可以确定服务器不会推送第二媒体数据。如果服务器返回包含推送条件信息的推送应答,客户端可以认为服务器将会推送第二媒体数据的推送指示中引用的尚不可访问的媒体数据。It should be noted that if the server does not return the second media data push response, the client may think that the server will not push the second media data; if the server returns a "reject push" push response, the client may determine that the server will not push the first Two media data. If the server returns a push response containing push condition information, the client can assume that the server will push the media data that is not yet accessible referenced in the push indication of the second media data.
图16是根据本发明可选实施例的一种自适应流媒体传输方法的流程图七,如图16所示,该流程包括如下步骤:16 is a flowchart 7 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 16, the process includes the following steps:
步骤S1602,接收客户端发送的第一媒体数据获取请求,所述获取请求中携带第二媒体数据的推送指示;Step S1602: Receive a first media data acquisition request sent by the client, where the acquisition request carries a push indication of the second media data.
步骤S1604,返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;Step S1604, returning a push response of the first media data and the second media data to the client, and sending a push commitment of the second media data to the client according to the push response;
步骤S1606,根据所述推送承诺推送所述第二媒体数据至所述客户端。Step S1606: Push the second media data to the client according to the push commitment.
通过上述步骤,服务器可以设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺,从而解决了相关技术中利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。Through the above steps, the server may set the push condition information of the push indication request of the second media data in the push response of the second media data, and the reference for the push indication of the second media data is not yet The accessed media data sends a push commitment, thereby solving the problem of the accessibility limitation of the push media data existing in the related art in the use of the server "push" feature for video streaming media transmission, and realizing the binding based on the full duplex transmission protocol. Efficient, low-latency adaptive streaming media transmission.
上述步骤S1604中记载了返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;下面结合可选实施对此进行说明。In the above step S1604, a push response that returns the first media data and the second media data is sent to the client, and a push commitment of the second media data is sent to the client according to the push response. This is explained below in conjunction with an optional implementation.
图17是根据本发明可选实施例的一种自适应流媒体传输方法的流程图八,如图17所示,该流程包括如下步骤:FIG. 17 is a flowchart 8 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 17, the process includes the following steps:
步骤S1702,接收客户端发送的第一媒体数据获取请求,所述获取请求中携带第二媒体数据的推送指示;Step S1702: Receive a first media data acquisition request sent by the client, where the acquisition request carries a push indication of the second media data.
步骤S1704,判断推送指示中引用的第二媒体数据是否全部可以访问。若是,则执行步骤S1706,否则执行步骤1712;Step S1704, determining whether the second media data referenced in the push indication is all accessible. If yes, go to step S1706, otherwise go to step 1712;
步骤S1706,返回所述第一媒体数据以及所述第二媒体数据的推送应答,设置所述推送应答中返回的推送参数值引用所述推送指示中引用的所有媒体数据; Step S1706, returning a push response of the first media data and the second media data, and setting a push parameter value returned in the push response to refer to all media data referenced in the push indication;
步骤S1708,根据所述推送应答返回的推送参数值,发送所述第二媒体数据的推送承诺至所述客户端;Step S1708: Send a push commitment of the second media data to the client according to the push parameter value returned by the push response.
步骤S1710,根据所述推送承诺推送所述第二媒体数据至所述客户端;Step S1710: Push the second media data to the client according to the push commitment.
步骤S1712,判断是否继续推送第二媒体数据。若是,则执行步骤S1714,否则执行步骤S1716;In step S1712, it is determined whether to continue pushing the second media data. If yes, go to step S1714, otherwise go to step S1716;
步骤S1714,判断所述推送指示中是否包含推送条件信息。若是,则执行步骤S1718,否则执行步骤S1722;In step S1714, it is determined whether the push condition information is included in the push instruction. If yes, go to step S1718, otherwise go to step S1722;
步骤S1716,返回所述第一媒体数据以及“拒绝推送”推送应答;Step S1716, returning the first media data and "rejecting push" push response;
步骤S1718,判断推送条件是否有效。若是,则执行步骤S1720,否则执行步骤S1722;In step S1718, it is judged whether or not the push condition is valid. If yes, go to step S1720, otherwise go to step S1722;
步骤S1720,设置所述推送应答中包含所述第二媒体数据的推送指示中请求的推送条件信息;Step S1720, setting the push condition information requested in the push instruction including the second media data in the push response;
步骤S1722,返回所述第一媒体数据以及所述第二媒体数据的推送应答,设置所述推送应答中返回的推送参数值引用所述推送指示中引用的可访问的媒体数据;Step S1722, returning a push response of the first media data and the second media data, and setting a push parameter value returned in the push response to reference the accessible media data referenced in the push indication;
步骤S1724,根据所述推送应答返回的推送参数值,发送所述第二媒体数据的推送承诺至所述客户端;Step S1724: Send a push commitment of the second media data to the client according to the push parameter value returned by the push response.
步骤S1726,判断所述推送应答是否包含推送条件信息。若是,则执行步骤S1728,否则执行步骤S1730;Step S1726, determining whether the push response includes push condition information. If yes, go to step S1728, otherwise go to step S1730;
步骤S1728,根据所述推送应答返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端;Step S1728: Send a push commitment of the second media data to the client according to the push condition information returned by the push response.
步骤S1730,根据所述推送承诺推送所述第二媒体数据至所述客户端。Step S1730: Push the second media data to the client according to the push commitment.
需要说明的是,如果所述第一媒体数据获取请求中携带所述第二媒体数据的推送指示,并且服务器支持所述推送指示,则服务器在响应中必须返回第二媒体数据的推送应答。其中,若服务器不支持所述推送指示,则服务器可以在响应明确返回“拒绝推送”推送应答。如果所述第一媒体数据获取请求没有携带所述第二媒体的推送指示,则禁止服务器在响应中返回第二媒体数据的推送应答。It should be noted that, if the first media data acquisition request carries the push indication of the second media data, and the server supports the push indication, the server must return a push response of the second media data in response. Wherein, if the server does not support the push indication, the server may explicitly return a "reject push" push response in response. If the first media data acquisition request does not carry the push indication of the second media, the server is prohibited from returning a push response of the second media data in response.
上述步骤S1728中记载了根据所述推送应答返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端;下面结合可选实施对此进行说明。In the above step S1728, the push commitment information returned by the push response is transmitted, and the push commitment of the second media data is transmitted to the client; this will be described below in conjunction with an optional implementation.
图18是根据本发明可选实施例的一种自适应流媒体传输方法的流程图九,如图18所示,在所述推送条件信息为推送等待时间的情况下,服务器自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端,该流程包括如下步骤: FIG. 18 is a flowchart 9 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 18, in a case where the push condition information is a push waiting time, the server receives the first After the media data acquisition request, the push commitment of the second media data is sent to the client in the push waiting time, and the process includes the following steps:
步骤S1802,等待推送所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据;Step S1802, waiting to push the media data that is not accessible in the push indication of the second media data;
步骤S1804,判断所述第二媒体数据的推送指示引用的媒体数据中是否存在新的可访问的媒体数据。若是,则执行步骤S1806,否则执行步骤S1810;Step S1804: Determine whether there is new accessible media data in the media data referenced by the push indication of the second media data. If yes, go to step S1806, otherwise go to step S1810;
步骤S1806,发送所述第二媒体数据中新的可访问的媒体数据的推送承诺至所述客户端;Step S1806, sending a push commitment of the new accessible media data in the second media data to the client;
步骤S1808,判断所述第二媒体数据是否已全部发送推送承诺。若是,则结束,否则执行步骤S1810。Step S1808, determining whether the second media data has all sent a push commitment. If yes, it ends, otherwise step S1810 is performed.
步骤S1810判断是否超出推送等待时间。若是,则结束,否则执行步骤S1802;At step S1810, it is judged whether or not the push waiting time is exceeded. If yes, then it ends, otherwise step S1802 is performed;
特别地,在所述推送条件信息为取值为零的推送等待时间的情况下,不必在步骤S1810判断是否超出推送等待时间,服务器将推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。In particular, in a case where the push condition information is a push waiting time with a value of zero, it is not necessary to determine whether the push wait time is exceeded in step S1810, and the server will push all the media referenced in the push instruction of the second media data. Data to the client.
图19是根据本发明可选实施例的一种自适应流媒体传输方法的流程图十,如图19所示,在所述推送条件信息为推送阈值的情况下,服务器以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,服务器自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。该流程包括如下步骤:FIG. 19 is a flowchart 10 of an adaptive streaming media transmission method according to an alternative embodiment of the present invention. As shown in FIG. 19, in a case where the push condition information is a push threshold, the server uses the first media. The data is an initial index, and at least the media data in the second media data that is the lower limit of the push threshold is pushed to the client; or the server pushes the at least the media time from the media time of the first media data. The second media data is sent to the client by the media data whose push threshold is the lower limit of the media time. The process includes the following steps:
步骤S1902,等待推送所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据;Step S1902, waiting to push the media data that is not accessible in the push indication of the second media data;
步骤S1904,判断所述第二媒体数据的推送指示引用的媒体数据中是否存在新的可访问的媒体数据。若是,则执行步骤S1906,否则执行步骤S1908;Step S1904: Determine whether there is new accessible media data in the media data referenced by the push indication of the second media data. If yes, go to step S1906, otherwise go to step S1908;
步骤S1906,发送所述第二媒体数据中新的可访问的媒体数据的推送承诺至所述客户端;Step S1906, sending a push commitment of the new accessible media data in the second media data to the client;
步骤S1908,判断是否达到推送阈值。若是,则结束,否则执行步骤S1902;In step S1908, it is determined whether the push threshold is reached. If yes, then it ends, otherwise step S1902 is performed;
上述步骤S1002~S1006中记载了客户端可以在第一媒体数据获取请求中携带第二媒体数据的推送指示,设置所述第二媒体数据推送指示中包含推送条件信息,用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。下面结合可选实施对此进行说明。In the above steps S1002 to S1006, it is described that the client may carry the push instruction of the second media data in the first media data acquisition request, and the second media data push instruction includes the push condition information, and is configured to request the server to be The inaccessible media data referenced in the push indication of the second media data sends a push commitment. This is explained below in conjunction with an alternative implementation.
图20是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图一。FIG. 20 is a flow chart 1 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
步骤1:客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。其中,HTTP GET消息中的“path”头域被设置为第一媒体片段统一资源标识符URI,用于请求服务器获取第一媒体片段,即步骤1中示例的:path="../rep1/segment1.mp4"。此外,HTTP GET消息中还包含用于请求服务器推送第二媒体片段的“dash-push”头域,即步骤1中示例的Step 1: The client sends a first media segment acquisition request to the server using a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol). The "path" header field in the HTTP GET message is set as the first media segment uniform resource identifier URI, and is used to request the server to obtain the first media segment, that is, the path in the example in step 1: path="../rep1/ Segment1.mp4". In addition, the HTTP GET message also includes a "dash-push" header field for requesting the server to push the second media segment, that is, the example in step 1.
:dash-push="urn:mpeg:dash:fdh:2015",push-template, :dash-push="urn:mpeg:dash:fdh:2015",push-template,
"../rep1/segment$Number$.mp4":{2-6},push-wait=2000"../rep1/segment$Number$.mp4":{2-6},push-wait=2000
至少包括:1)推送协议方案统一资源标识符(SchemeID)字段,用于标识推送协议版本;2)推送指示(PushDirective),用于发送推送会话中所请求的推送策略,包括:推型类型(PushType)字段,用于描述“推送策略”中被推送媒体片段的表示类型,譬如:“push-next”表示请求推送后续特定数量的媒体片段,“push-time”表示请求推送后续特定播放时间的媒体片段,“push-template”表示请求推送模板中明确指定的媒体片段,以及推送参数(PushParams)字段,携带“推送策略”中被推送媒体片段的推送参数值。The method further includes: 1) a push protocol scheme uniform resource identifier (SchemeID) field for identifying a push protocol version; and 2) a push directive (PushDirective) for sending the push policy requested in the push session, including: a push type ( The PushType field is used to describe the representation type of the pushed media segment in the Push Policy. For example, "push-next" indicates that a subsequent specific number of media segments are requested to be pushed, and "push-time" indicates that the request is pushed for a subsequent specific playing time. The media segment, "push-template", represents the media segment explicitly specified in the request push template, and the push parameter (PushParams) field, carrying the push parameter value of the pushed media segment in the "push policy".
可选地,“dash-push”头域中还可携带:3)推送条件(PushCoditions)字段,用于显示地请求服务器在推送会话中的特定条件下发送推送承诺,譬如:为新出现的可访问的媒体片段发送推送承诺,包括:“push-wait”关键字,用于请求服务器在推送会话中某个最大时间值内发送推送承诺,“push-threshold”关键字,用于请求服务器在推送会话中至少被推送一定数量下限或者媒体时间下限的媒体片段。Optionally, the "dash-push" header field may also carry: 3) PushCoditions field, which is used to explicitly request the server to send a push commitment under certain conditions in the push session, for example, for a newly appearable The accessed media segment sends a push commitment, including: a "push-wait" keyword, which is used to request the server to send a push commitment within a certain maximum time value in the push session, and a "push-threshold" keyword for requesting the server to push A media segment that is pushed at least by a certain number of lower limits or media time limits in the session.
在本实施例中,客户端请求获取表示(Representation)"rep1"中的"segment1"媒体片段,同时请求推送"rep1"中后续编号"segment2"至"segment6"的5个媒体片段,并通过“push-wait”关键字指示服务器在接收请求后的最多2000毫秒时间内发送推送承诺。In this embodiment, the client requests to acquire the "segment1" media segment in the "Representation" "rep1", and requests to push the 5 media segments of the subsequent numbers "segment2" to "segment6" in "rep1" and pass the " The push-wait keyword indicates that the server sends a push commitment within a maximum of 2000 milliseconds after receiving the request.
不失一般性,本实施例中用于请求服务器推送第二媒体片段的相关推送策略描述信息也可以通过HTTP GET消息中的“Accept-Push-Policy”等其他头域携带。In the embodiment, the related push policy description information for requesting the server to push the second media segment may also be carried by other header fields such as “Accept-Push-Policy” in the HTTP GET message.
步骤2:服务器返回HTTP 200OK响应消息(HTTP/2协议中HEADERS帧),作为所述第一媒体片段获取响应。其中,HTTP 200OK响应消息包含用于返回第二媒体片段推送应答的“dash-push”头域,即步骤2中示例的Step 2: The server returns an HTTP 200 OK response message (HEADERS frame in the HTTP/2 protocol) as the first media segment acquisition response. The HTTP 200 OK response message includes a "dash-push" header field for returning a second media segment push response, which is an example in step 2.
:dash-push="urn:mpeg:dash:fdh:2015",push-template,:dash-push="urn:mpeg:dash:fdh:2015",push-template,
"../rep1/segment$Number$.mp4":{2-6}"../rep1/segment$Number$.mp4":{2-6}
至少包括:1)推送协议方案统一资源标识符(SchemeID)字段,用于标识推送协议版本;2)推送应答(PushAck),用于返回服务器在推送会话中所接收的推送策略,并且携带与请求中具有相同类型的推型类型字段、推送参数字段,以及推送条件字段。At least: 1) a push protocol scheme uniform resource identifier (SchemeID) field for identifying a push protocol version; 2) a push response (PushAck) for returning a push policy received by the server in the push session, and carrying and requesting There are the same type of push type field, push parameter field, and push condition field.
在本实施例中,服务器所返回的推送应答信息表示可以立即为推送指示所请求推送的"rep1"中"segment2"至"segment6"的5个媒体片段发送推送承诺,因此推送应答中无需返回推送条件信息,推送会话中也不会存在“渐进式推送”过程。In this embodiment, the push response information returned by the server indicates that the push commitment can be immediately sent for the five media segments of "segment2" to "segment6" in the "rep1" requested to be pushed by the push indication, so there is no need to return the push in the push response. Conditional information, there is no "progressive push" process in the push session.
步骤3~5:服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(即,"segment2"至"segment6"的5个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。其中,服务器将PUSH_PROMISE帧中“path”头域设置为每一个确认被推送媒体片段统一资源标识符URI,并且将利用客户端在步骤1所发起的请求流中发送所述PUSH_PROMISE帧。 Steps 3 to 5: The server sends a push commitment message (HTTP/) to each of the media segments that are confirmed to be pushed (ie, 5 media segments of "segment2" to "segment6") according to the push parameter value returned by the push response in step 2. 2 PUSH_PROMISE frame in the protocol). The server sets the "path" header field in the PUSH_PROMISE frame to each of the acknowledgment pushed media segment uniform resource identifier URIs, and transmits the PUSH_PROMISE frame in the request stream initiated by the client in step 1.
步骤6:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4"。Step 6: The server returns the media segment requested by the client, that is, "../rep1/segment1.mp4" in this embodiment.
步骤7~12:根据在步骤3~5发送的推送承诺消息,服务器为每一个确认推送的媒体片段创建服务器发起的推送流,推送"rep1"中编号"segment2"至"segment6"的5个媒体片段至客户端。Steps 7 to 12: According to the push commitment message sent in steps 3 to 5, the server creates a push flow initiated by the server for each media segment that is confirmed to be pushed, and pushes 5 media of the number "segment2" to "segment6" in "rep1". Fragment to the client.
上述步骤S1202和S1204中记载了设置所述第二媒体数据的推送指示中包含推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。下面结合可选实施对此进行说明。In the above steps S1202 and S1204, it is described that the push instruction for setting the second media data includes a push waiting time, and the push waiting time is used to set the server to send the first media data acquisition request. The upper limit of the waiting time for the push commitment of the second media data. This is explained below in conjunction with an alternative implementation.
图21是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图二。FIG. 21 is a second flowchart of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
步骤1:与图20的实施例中步骤1类似,客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。Step 1: Similar to step 1 in the embodiment of Fig. 20, the client sends a first media segment acquisition request to the server using a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol).
步骤2:与图20的实施例中步骤2类似,服务器返回HTTP 200OK响应消息,其中包含用于返回第二媒体片段推送应答的“dash-push”头域。Step 2: Similar to step 2 in the embodiment of Fig. 20, the server returns an HTTP 200 OK response message containing a "dash-push" header field for returning a second media segment push response.
本实施例中推送应答所返回的推送参数字段值为"../rep1/segment$Number$.mp4":{2-4},表示服务器只确认为推送指示中所请求的"rep1"中"segment2"至"segment4"的3个媒体片段发送推送承诺。因此,推送指示中所请求的推送条件信息依然有效,推送应答同时还返回推送指示所请求的推送条件信息,即"push-wait=2000",表示服务器将在接收请求后最多2000毫秒时间内为新出现的可访问媒体片段发送推送承诺,即推送会话中存在“渐进式推送”过程。In this embodiment, the push parameter field value returned by the push response is "../rep1/segment$Number$.mp4": {2-4}, indicating that the server only confirms the "rep1" requested in the push indication. The 3 media segments of segment2" to "segment4" send push commitments. Therefore, the push condition information requested in the push indication is still valid, and the push response also returns the push condition information requested by the push indication, that is, "push-wait=2000", indicating that the server will be up to 2000 milliseconds after receiving the request. The emerging accessible media segment sends a push commitment, which is a "progressive push" process in the push session.
步骤3~4:与图20的实施例中步骤3~5类似,服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(即,"segment2"至"segment4"的3个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。 Steps 3 to 4: Similar to steps 3 to 5 in the embodiment of FIG. 20, the server confirms the pushed media segment according to the push parameter value returned by the push response in step 2 (ie, "segment2" to "segment4" The 3 media segments) send a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol).
步骤5~6:本实施例中假设,在推送等待的最大时间内新出现可访问的媒体片段"segment5"和"segment6",服务器将为它们发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。Steps 5-6: In this embodiment, it is assumed that the accessible media segments "segment5" and "segment6" appear newly during the maximum waiting time of the push waiting, and the server will send a push commitment message for them (PUSH_PROMISE frame in the HTTP/2 protocol) ).
步骤7:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4"。Step 7: The server returns the media segment requested by the client, that is, "../rep1/segment1.mp4" in this embodiment.
步骤8~11:根据在步骤3~6发送的推送承诺消息,服务器为每一个确认推送的媒体片段创建服务器发起的推送流,推送"rep1"中编号"segment2"至"segment6"的5个媒体片段至客户端。Steps 8-11: According to the push commitment message sent in steps 3-6, the server creates a push flow initiated by the server for each media segment that is confirmed to be pushed, and pushes 5 media of the number "segment2" to "segment6" in "rep1". Fragment to the client.
上述步骤S1402和S1404中记载了设置所述第二媒体数据的推送指示中包含推送阈值,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限,下面结合可选实施对此进行说明。In the above steps S1402 and S1404, it is described that the push instruction for setting the second media data includes a push threshold for setting the server to push the second from the media time of the first media data. The media time limit of the media data in the media data, which is described below in conjunction with an optional implementation.
图22是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图三。FIG. 22 is a third flowchart of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
步骤1:与图20的实施例中步骤1类似,客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。其中,HTTP GET消息中包含用于请求服务器推送第二媒体片段的"dash-push"头域,即步骤1中示例的Step 1: Similar to step 1 in the embodiment of Fig. 20, the client sends a first media segment acquisition request to the server using a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol). The HTTP GET message includes a "dash-push" header field for requesting the server to push the second media segment, that is, the example in step 1.
:dash-push="urn:mpeg:dash:fdh:2015",push-template, :dash-push="urn:mpeg:dash:fdh:2015",push-template,
"../rep1/segment$Time$.mp4":{5000},push-threshold=5000"../rep1/segment$Time$.mp4":{5000},push-threshold=5000
在本实施例中,客户端请求获取表示(Representation)"rep1"中的"segment1"媒体片段,同时请求推送"rep1"中后续5000毫秒媒体时间的媒体片段,并通过“push-threshold”关键字指示服务器至少推送下限为5000毫秒媒体时间的媒体片段。In this embodiment, the client requests to acquire the "segment1" media segment in the "Representation" "rep1", and requests to push the media segment of the subsequent 5000 milliseconds media time in "rep1", and passes the "push-threshold" keyword. Instruct the server to push at least the media segment with a lower limit of 5000 milliseconds of media time.
步骤2:与图20的实施例中步骤2类似,服务器返回HTTP 200OK响应消息,其中包含用于返回第二媒体片段推送应答的“dash-push”头域。Step 2: Similar to step 2 in the embodiment of Fig. 20, the server returns an HTTP 200 OK response message containing a "dash-push" header field for returning a second media segment push response.
本实施例中推送应答所返回的推送参数字段值为"../rep1/segment$Time$.mp4":{3000},表示服务器只确认为推送指示中所请求"rep1"中后续3000毫秒媒体时间的媒体片段发送推送承诺。因此,推送指示中所请求的推送条件信息依然有效,推送应答同时还返回推送指示中所请求的推送条件信息,即"push-threshold=5000",表示服务器至少推送5000毫秒媒体时间的媒体片段,即推送会话中存在“渐进式推送”过程。In this embodiment, the push parameter field value returned by the push response is "../rep1/segment$Time$.mp4": {3000}, indicating that the server only confirms the subsequent 3000 milliseconds of media in the "rep1" requested in the push indication. The media clip of the time sends a push promise. Therefore, the push condition information requested in the push indication is still valid, and the push response also returns the push condition information requested in the push indication, that is, "push-threshold=5000", indicating that the server pushes at least the media segment of 5000 milliseconds of media time. That is, there is a "progressive push" process in the push session.
步骤3~4:与图20的实施例中步骤3~5类似,服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(假设每个媒体片段的预设时长为1000毫秒,即"segment2"至"segment4"的3个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。 Steps 3 to 4: Similar to steps 3 to 5 in the embodiment of FIG. 20, the server confirms the pushed media segment according to the push parameter value returned by the push response in step 2 (assuming the preset duration of each media segment) A push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol) is sent for 1000 milliseconds, ie, 3 media segments of "segment2" to "segment4".
步骤5:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4",同时保持客户端请求流处于“开放”(Open)状态。Step 5: The server returns the media segment requested by the client, that is, "../rep1/segment1.mp4" in this embodiment, while keeping the client request flow in the "Open" state.
步骤6~7:服务器还将为剩余2000毫秒媒体时间的媒体片段(即,"segment5"和"segment6"),发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。Steps 6-7: The server will also send a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol) for the media segments (ie, "segment5" and "segment6") of the remaining 2000 milliseconds of media time.
步骤8~11:根据步骤3~4和步骤6~7中发送的推送承诺消息,服务器为每一个确认推送的媒体片段创建服务器发起的推送流,即推送"rep1"中编号"segment2"至"segment6"的5个媒体片段至客户端。Steps 8 to 11: According to the push commitment message sent in steps 3 to 4 and steps 6 to 7, the server creates a push flow initiated by the server for each media segment that is confirmed to be pushed, that is, pushes the number "segment2" in the "rep1" to "" 5 media segments of segment6" to the client.
上述步骤S1302和S1304中记载了设置所述第二媒体数据的推送指示中包含推送阈值;所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限,下面结合可选实施对此进行说明。In the above steps S1302 and S1304, it is described that the push instruction for setting the second media data includes a push threshold; the push threshold is used to set the server to use the first media data as an initial index to push the second media. The lower limit on the number of media data in the data, which is described below in conjunction with an optional implementation.
图23是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图四。FIG. 23 is a flow chart 4 of message interaction of an adaptive streaming media transmission method according to an embodiment of the present invention.
步骤1:与图20的实施例中步骤1类似,客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。其中,HTTP GET消息中包含用于请求服务器推送第二媒体片段的"dash-push"头域,即步骤1中示例的Step 1: Similar to step 1 in the embodiment of Fig. 20, the client sends a first media segment acquisition request to the server using a standard HTTP GET message (a HEADERS frame in the HTTP/2 protocol). The HTTP GET message includes a "dash-push" header field for requesting the server to push the second media segment, that is, the example in step 1.
:dash-push="urn:mpeg:dash:fdh:2015",push-template,:dash-push="urn:mpeg:dash:fdh:2015",push-template,
"../rep1/segment$Number$.mp4":{2~6},push-wait=2000,push-threshold=4"../rep1/segment$Number$.mp4":{2~6}, push-wait=2000, push-threshold=4
在本实施例中,客户端请求获取表示(Representation)"rep1"中的"segment1"媒体片段, 同时请求推送"rep1"中后续编号"segment2"至"segment6"的5个媒体片段,并通过“push-wait”关键字指示服务器在接收请求后的最多2000毫秒时间内发送推送承诺,并通过“push-threshold”关键字指示服务器至少推送下限为4个的媒体片段。In this embodiment, the client requests to obtain the "segment1" media segment in the representation "rep1". At the same time, it requests to push the 5 media segments of the subsequent numbers "segment2" to "segment6" in "rep1", and the "push-wait" keyword instructs the server to send the push commitment within 2000 milliseconds after receiving the request, and passes the " The push-threshold keyword indicates that the server pushes at least 4 media segments with a lower limit.
步骤2:与图20的实施例中步骤2类似,服务器返回HTTP 200OK响应消息,其中包含用于返回第二媒体片段推送应答的“dash-push”头域。Step 2: Similar to step 2 in the embodiment of Fig. 20, the server returns an HTTP 200 OK response message containing a "dash-push" header field for returning a second media segment push response.
本实施例中推送应答所返回的推送参数字段值为"../rep1/segment$Number$.mp4":{2-4},表示服务器只确认为推送指示所请求的"rep1"中"segment2"至"segment4"的3个媒体片段发送推送承诺。因此,推送指示中所请求的推送条件信息依然有效,推送应答同时返回推送指示所请求的推送条件信息,即"push-wait=2000"以及“push-threshold=4”,表示服务器在以上双重条件下为新出现的可访问媒体片段发送推送承诺,即推送会话中存在“渐进式推送”过程。In this embodiment, the push parameter field value returned by the push response is "../rep1/segment$Number$.mp4": {2-4}, indicating that the server only confirms that "p1" is requested in the "rep1" for the push indication. The 3 media clips to "segment4" send push commitments. Therefore, the push condition information requested in the push instruction is still valid, and the push response returns the push condition information requested by the push instruction, that is, "push-wait=2000" and "push-threshold=4", indicating that the server is in the above dual condition. A push commitment is sent for the newly emerging accessible media segment, ie there is a "progressive push" process in the push session.
步骤3~4:与图20的实施例中步骤3~5类似,服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(即,"segment2"至"segment4"的3个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。 Steps 3 to 4: Similar to steps 3 to 5 in the embodiment of FIG. 20, the server confirms the pushed media segment according to the push parameter value returned by the push response in step 2 (ie, "segment2" to "segment4" The 3 media segments) send a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol).
步骤5:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4",同时保持客户端请求流处于“开放”(Open)状态。Step 5: The server returns the media segment requested by the client, that is, "../rep1/segment1.mp4" in this embodiment, while keeping the client request flow in the "Open" state.
步骤6:本实施例假设,在最大推送等待时间(即2000毫秒)过期之前新出现可访问的媒体片段"segment5",服务器为它发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。Step 6: This embodiment assumes that the accessible media segment "segment5" newly appears before the maximum push latency (i.e., 2000 milliseconds) expires, and the server sends a push commitment message (PUSH_PROMISE frame in the HTTP/2 protocol) for it.
步骤7~10:根据在步骤3~4和步骤6发送的推送承诺消息,服务器为每一个确认推送的媒体片段创建服务器发起的推送流,推送"rep1"中编号"segment2"至"segment5"的4个媒体片段至客户端。Steps 7 to 10: According to the push commitment message sent in steps 3 to 4 and step 6, the server creates a server-initiated push stream for each media segment that is confirmed to be pushed, and pushes the number "segment2" to "segment5" in "rep1". 4 media clips to the client.
图24是根据本发明实施例的一种自适应流媒体传输装置的结构框图三,如图24所示,该装置包括获取模块242、第一确定模块244和第二确定模块246,下面对该自适应媒体流处理装置进行说明。FIG. 24 is a structural block diagram 3 of an adaptive streaming media transmission apparatus according to an embodiment of the present invention. As shown in FIG. 24, the apparatus includes an obtaining module 242, a first determining module 244, and a second determining module 246. The adaptive media stream processing device will be described.
获取模块242,设置为获取传输流中携带的自适应流媒体的位置信息和时间信息;第一确定模块244,连接至上述获取模块242,设置为根据上述位置信息确定自适应流媒体中需要与传输流进行时间轴对齐的媒体片段;第二确定模块246,连接至上述第一确定模块244,设置为根据时间信息确定自适应流媒体中媒体片段的媒体呈现时间相对于传输流时间轴的显示时间戳。The obtaining module 242 is configured to obtain the location information and the time information of the adaptive streaming media carried in the transport stream. The first determining module 244 is connected to the obtaining module 242, and is configured to determine, according to the location information, the need for the adaptive streaming media. The transport stream is time-axis aligned media segment; the second determining module 246 is coupled to the first determining module 244, and configured to determine, according to the time information, the media presentation time of the media segment in the adaptive streaming media relative to the time axis of the transport stream Timestamp.
本发明的优选实施例提供一种自适应流媒体传输方法及装置,以至少解决现有HTTP流媒体技术中推送媒体片段的可访问性限制的问题。A preferred embodiment of the present invention provides an adaptive streaming media transmission method and apparatus to address at least the problem of accessibility limitations of push media segments in existing HTTP streaming media technologies.
通过本发明方案,从而解决了现有HTTP流媒体技术中推送媒体片段的可访问性限制的问题,实现了基于HTTP 2.0协议绑定的高效、低延时自适应流媒体传输。Through the solution of the invention, the problem of the accessibility limitation of the push media segment in the existing HTTP streaming media technology is solved, and the efficient and low-latency adaptive streaming media transmission based on the HTTP 2.0 protocol binding is realized.
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方 法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。Through the description of the above embodiments, those skilled in the art can clearly understand the square according to the above embodiments. The method can be implemented by means of software plus the necessary general hardware platform, of course, it can also be through hardware, but in many cases the former is a better implementation. Based on such understanding, the technical solution of the present invention, which is essential or contributes to the prior art, may be embodied in the form of a software product stored in a storage medium (such as ROM/RAM, disk, The optical disc includes a number of instructions for causing a terminal device (which may be a cell phone, a computer, a server, or a network device, etc.) to perform the methods described in various embodiments of the present invention.
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。It should be noted that each of the above modules may be implemented by software or hardware. For the latter, 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 invention also provide a storage medium. Alternatively, in the present embodiment, the above storage medium may be arranged to store program code for performing the method steps of the above-described embodiments.
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。Optionally, in this embodiment, 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. A variety of media that can store program code, such as a disc or a disc.
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例的方法步骤。Optionally, in this embodiment, the processor performs the method steps of the foregoing embodiments according to the stored program code in the storage medium.
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。It will be apparent to those skilled in the art that the various modules or steps of the present invention 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. Thus, the invention is not limited to any specific combination of hardware and software.
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。The above description is only the preferred embodiment of the present invention, and is not intended to limit the present invention, and various modifications and changes can be made to the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and scope of the present invention are intended to be included within the scope of the present invention.
工业实用性Industrial applicability
如上所述,本发明实施例提供的一种自适应流媒体传输方法及装置具有以下有益效果:解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。 As described above, an adaptive streaming media transmission method and apparatus provided by an embodiment of the present invention have the following beneficial effects: solving the accessibility limitation of push media data existing when video streaming media transmission is performed by using a server "push" feature. The problem is to achieve efficient, low-latency adaptive streaming media transmission based on full-duplex transmission protocol binding.

Claims (28)

  1. 一种自适应流媒体传输方法,包括:An adaptive streaming media transmission method includes:
    发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;Sending a first media data acquisition request to the server, where the obtaining request carries a push indication of the second media data;
    接收所述服务器返回的所述第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;Receiving a push response of the first media data and the second media data returned by the server, and receiving a push commitment of the second media data sent by the server according to the push response;
    接收所述服务器根据所述推送承诺推送的所述第二媒体数据。Receiving, by the server, the second media data that is pushed according to the push commitment.
  2. 根据权利要求1所述的方法,其中,发送第一媒体数据获取请求至服务器之前,所述方法包括:The method of claim 1, wherein before the transmitting the first media data acquisition request to the server, the method comprises:
    设置所述第二媒体数据的推送指示中包含推送条件信息,所述推送条件信息用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。The push indication of the second media data includes push condition information, and the push condition information is used to request the server to send a push commitment for the media data that is not accessible in the push indication of the second media data.
  3. 根据权利要求2所述的方法,其中,所述方法包括:The method of claim 2 wherein said method comprises:
    设置所述推送条件信息为推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。The push condition information is set as a push wait time, and the push wait time is used to set an upper limit of a waiting time for the push commitment of the second media data to be sent by the server after receiving the first media data acquisition request.
  4. 根据权利要求2或3所述的方法,其中,所述方法包括:The method of claim 2 or 3, wherein the method comprises:
    设置所述推送条件信息为取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。The push condition information is set to a push wait time with a value of zero, and the push wait time is used to request the server to push all the media data referenced in the push indication of the second media data.
  5. 根据权利要求2所述的方法,其中,所述方法包括:The method of claim 2 wherein said method comprises:
    设置所述推送条件信息为推送阈值,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限;或者,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。Setting the push condition information as a push threshold, where the push threshold is used to set the server to use the first media data as an initial index, and push a lower limit of the quantity of media data in the second media data; or, the push The threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
  6. 根据权利要求1或2所述的方法,其中,接收所述服务器返回的第二媒体数据的推送应答包括:The method of claim 1 or 2, wherein receiving a push response of the second media data returned by the server comprises:
    接收所述服务器返回的第二媒体数据的推送应答,所述第二媒体数据的推送应答中包含所述第二媒体数据推送指示中请求的推送条件信息。Receiving a push response of the second media data returned by the server, and the push response of the second media data includes push condition information requested in the second media data push instruction.
  7. 根据权利要求1所述的方法,其中,接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺包括:The method of claim 1, wherein receiving a push commitment of the second media data sent by the server according to the push response comprises:
    接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺。Receiving, by the server, a push commitment of the second media data that is sent according to a push parameter value returned by the push response.
  8. 根据权利要求1所述的方法,其中,接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺包括: The method of claim 1, wherein receiving a push commitment of the second media data sent by the server according to the push response comprises:
    接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺。Receiving, by the server, the push commitment of the second media data that is sent according to the push condition information returned by the push response.
  9. 一种自适应流媒体传输方法,包括:An adaptive streaming media transmission method includes:
    接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;Receiving an acquisition request of the first media data sent by the client, where the obtaining request carries a push indication of the second media data;
    返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;Returning a push response of the first media data and the second media data to the client, and sending a push commitment of the second media data to the client according to the push response;
    根据所述推送承诺推送所述第二媒体数据至所述客户端。Pushing the second media data to the client according to the push commitment.
  10. 根据权利要求9所述的方法,其中,返回所述第二媒体数据的推送应答至所述客户端之前,包括:The method of claim 9, wherein before returning the push response of the second media data to the client, the method comprises:
    设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。And setting, in the push response of the second media data, push condition information including a push instruction request of the second media data, and sending, for sending, the inaccessible media data referenced in the push instruction of the second media data committed to.
  11. 根据权利要求9或10所述的方法,其中,根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端包括:The method according to claim 9 or 10, wherein the sending the push commitment of the second media data to the client according to the push response comprises:
    根据所述推送应答中返回的推送参数值,发送所述第二媒体数据的推送承诺至所述客户端;Transmitting, according to the push parameter value returned in the push response, a push commitment of the second media data to the client;
    根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端。Sending a push commitment of the second media data to the client according to the push condition information returned in the push response.
  12. 根据权利要求11所述的方法,其中,根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端包括:The method according to claim 11, wherein, according to the push condition information returned in the push response, sending the push commitment of the second media data to the client comprises:
    在所述推送条件信息为推送等待时间的情况下,自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端。When the push condition information is the push waiting time, the push commitment of the second media data is sent to the client within the push waiting time from receiving the first media data acquisition request.
  13. 根据权利要求11所述的方法,其中,根据所述推送应答中返回的推送条件信息发送所述第二媒体数据的推送承诺至所述客户端包括:The method of claim 11, wherein the transmitting the push commitment of the second media data to the client according to the push condition information returned in the push response comprises:
    在所述推送条件信息为取值为零的推送等待时间的情况下,推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。When the push condition information is a push waiting time with a value of zero, all media data referenced in the push instruction of the second media data is pushed to the client.
  14. 根据权利要求11所述的方法,其中,根据所述推送应答中返回的推送条件信息发送所述第二媒体数据的推送承诺至所述客户端包括:The method of claim 11, wherein the transmitting the push commitment of the second media data to the client according to the push condition information returned in the push response comprises:
    在所述推送条件信息为推送阈值的情况下,以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。 When the push condition information is a push threshold, the first media data is used as an initial index, and at least the media data in the second media data with the push threshold is a lower limit is pushed to the client; Or, at least the media data in the second media data with the push threshold being the media time lower limit is pushed to the client from the media time of the first media data.
  15. 一种自适应流媒体传输装置,位于终端侧,包括:An adaptive streaming media transmission device is located on the terminal side and includes:
    第一发送模块,设置为发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;The first sending module is configured to send a first media data obtaining request to the server, where the obtaining request carries a push indication of the second media data;
    第一接收模块,设置为接收所述服务器返回的所述第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;a first receiving module, configured to receive a push response of the first media data and the second media data returned by the server, and receive a push of the second media data sent by the server according to the push response committed to;
    第二接收模块,设置为接收所述服务器根据所述推送承诺推送的所述第二媒体数据。The second receiving module is configured to receive the second media data that is sent by the server according to the push commitment.
  16. 根据权利要求15所述的装置,其中,所述装置还包括:The apparatus of claim 15 wherein said apparatus further comprises:
    第一设置模块,设置为发送第一媒体数据获取请求至服务器之前,设置所述第二媒体数据的推送指示中包含的推送条件信息,所述推送条件信息用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。a first setting module, configured to set, before sending the first media data acquisition request to the server, push condition information included in the push indication of the second media data, where the push condition information is used to request the server to be the first The non-accessible media data referenced in the push indication of the second media data sends a push commitment.
  17. 根据权利要求16所述的装置,其中,所述第一设置模块包括:The apparatus of claim 16, wherein the first setting module comprises:
    第一设置单元,设置为设置所述推送条件信息为推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。a first setting unit, configured to set the push condition information to be a push wait time, where the push wait time is used to set the server to send the push of the second media data after receiving the first media data acquisition request The maximum waiting time for commitment.
  18. 根据权利要求16或17所述的装置,其中,所述第一设置模块包括:The apparatus according to claim 16 or 17, wherein the first setting module comprises:
    第二设置单元,设置为设置所述推送条件信息为取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。a second setting unit, configured to set the push condition information to a push waiting time with a value of zero, the push waiting time for requesting the server to push all the media data referenced in the push indication of the second media data .
  19. 根据权利要求16所述的装置,其中,所述第一设置模块包括:The apparatus of claim 16, wherein the first setting module comprises:
    第三设置单元,设置为设置所述推送条件信息为推送阈值,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限;或者,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。a third setting unit, configured to set the push condition information to be a push threshold, where the push threshold is used to set the server to use the first media data as an initial index, and push the quantity of media data in the second media data The lower limit is used; or the push threshold is used to set a lower limit of the media time of the media data in the second media data from the media time of the first media data.
  20. 根据权利要求15所述的装置,其中,所述第一接收模块包括:The apparatus of claim 15, wherein the first receiving module comprises:
    第一接收单元,设置为接收所述服务器返回的第二媒体数据的推送应答,所述第二媒体数据的推送应答中包含所述第二媒体数据推送指示中请求的推送条件信息。The first receiving unit is configured to receive a push response of the second media data returned by the server, and the push response of the second media data includes push condition information requested in the second media data push instruction.
  21. 根据权利要求15所述的装置,其中,所述第一接收模块包括:The apparatus of claim 15, wherein the first receiving module comprises:
    第二接收单元,设置为接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺。The second receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push parameter value returned by the push response.
  22. 根据权利要求15所述的装置,其中,所述第一接收模块包括:The apparatus of claim 15, wherein the first receiving module comprises:
    第三接收单元,设置为接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺。 The third receiving unit is configured to receive a push commitment of the second media data that is sent by the server according to the push condition information returned by the push response.
  23. 一种自适应流媒体传输装置,位于服务器侧,包括:An adaptive streaming media transmission device is located on the server side and includes:
    第三接收模块,设置为接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;a third receiving module, configured to receive a request for acquiring the first media data sent by the client, where the obtaining request carries a push indication of the second media data;
    第四接收模块,设置为返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;a fourth receiving module, configured to return a push response of the first media data and the second media data to the client, and send a push commitment of the second media data to the client according to the push response end;
    第二发送模块,设置为根据所述推送承诺推送所述第二媒体数据至所述客户端。The second sending module is configured to push the second media data to the client according to the push commitment.
  24. 根据权利要求23所述的装置,其中,所述装置还包括:The device of claim 23, wherein the device further comprises:
    第二设置模块,设置为返回所述第二媒体数据的推送应答至所述客户端之前,设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。a second setting module, configured to set, before returning the push response of the second media data to the client, a push condition information including a push indication request of the second media data in a push response of the second media data And sending a push commitment for the inaccessible media data referenced in the push indication of the second media data.
  25. 根据权利要求23或24所述的装置,其中,所述第二发送模块包括:The apparatus according to claim 23 or 24, wherein the second transmitting module comprises:
    第一发送单元,设置为根据所述推送应答中返回的推送参数值,发送所述第二媒体的数据推送承诺至所述客户端;The first sending unit is configured to send a data push commitment of the second media to the client according to the push parameter value returned in the push response;
    第二发送单元,设置为根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端。The second sending unit is configured to send a push commitment of the second media data to the client according to the push condition information returned in the push response.
  26. 根据权利要求25所述的装置,其中,所述第二发送模块包括:The apparatus of claim 25, wherein the second transmitting module comprises:
    第三发送单元,设置为在所述推送条件信息为推送等待时间的情况下,自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端。The third sending unit is configured to, when the push condition information is the push waiting time, send the push commitment of the second media data in the push waiting time from receiving the first media data obtaining request To the client.
  27. 根据权利要求25所述的装置,其中,所述第二发送模块包括:The apparatus of claim 25, wherein the second transmitting module comprises:
    第四发送单元,设置为在所述推送条件信息为取值为零的推送等待时间的情况下,推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。The fourth transmitting unit is configured to push all the media data referenced in the push instruction of the second media data to the client when the push condition information is a push waiting time with a value of zero.
  28. 根据权利要求25所述的装置,其中,所述第二发送模块包括:The apparatus of claim 25, wherein the second transmitting module comprises:
    第五发送单元,设置为在所述推送条件信息为推送阈值的情况下,以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,设置为自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。 The fifth sending unit is configured to: when the push condition information is a push threshold, use the first media data as an initial index to push at least the media in the second media data with the push threshold as a lower limit Data is sent to the client; or, at least from the media time of the first media data, the media data in the second media data with the push threshold being the media time lower limit is pushed to the client.
PCT/CN2016/102032 2015-10-14 2016-10-13 Streaming media adaptive transmission method and device WO2017063574A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510663013.1 2015-10-14
CN201510663013.1A CN106604077B (en) 2015-10-14 2015-10-14 Self-adaptive streaming media transmission method and device

Publications (1)

Publication Number Publication Date
WO2017063574A1 true WO2017063574A1 (en) 2017-04-20

Family

ID=58517119

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/102032 WO2017063574A1 (en) 2015-10-14 2016-10-13 Streaming media adaptive transmission method and device

Country Status (2)

Country Link
CN (1) CN106604077B (en)
WO (1) WO2017063574A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468435A (en) * 2019-09-09 2021-03-09 脸谱公司 Request stream

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110545492B (en) * 2018-09-05 2020-07-31 北京开广信息技术有限公司 Real-time delivery method and server of media stream
CN111669665B (en) * 2019-03-05 2021-12-21 北京开广信息技术有限公司 Real-time pushing method of media stream and server
CN110086797B (en) * 2019-04-22 2021-05-28 北京开广信息技术有限公司 Real-time receiving method of media stream, client, computer device and storage medium
CN111083217B (en) * 2019-12-11 2022-07-08 北京达佳互联信息技术有限公司 Method and device for pushing Feed stream and electronic equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015004276A2 (en) * 2013-07-12 2015-01-15 Canon Kabushiki Kaisha Adaptive data streaming method with push messages control
US20150032804A1 (en) * 2013-07-26 2015-01-29 Canon Kabushiki Kaisha Method and server device for exchanging information items with a plurality of client entities
CN104429093A (en) * 2012-07-09 2015-03-18 华为技术有限公司 Dynamic adaptive streaming over http client behavior framework and implementation of session management
WO2016120089A1 (en) * 2015-01-28 2016-08-04 Canon Kabushiki Kaisha Improved client-driven push of resources by a server device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543107B1 (en) * 2007-09-24 2013-09-24 Sprint Spectrum L.P. Method and system for delivering short message service (SMS) messages using the session initiation protocol (SIP)
US8352575B2 (en) * 2008-10-14 2013-01-08 Samaha Tareq A System and method for a server-based files and tasks brokerage
CN102232298B (en) * 2011-04-07 2013-10-09 华为技术有限公司 Method, device and system for transmitting and processing media content
CN102378043A (en) * 2011-09-29 2012-03-14 深圳市矽伟智科技有限公司 Content delivery method and Internet television (TV) playing method as well as corresponding device and systems
CN104883618B (en) * 2015-05-11 2018-03-02 腾讯科技(北京)有限公司 Programme televised live tries method, apparatus and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104429093A (en) * 2012-07-09 2015-03-18 华为技术有限公司 Dynamic adaptive streaming over http client behavior framework and implementation of session management
WO2015004276A2 (en) * 2013-07-12 2015-01-15 Canon Kabushiki Kaisha Adaptive data streaming method with push messages control
US20150032804A1 (en) * 2013-07-26 2015-01-29 Canon Kabushiki Kaisha Method and server device for exchanging information items with a plurality of client entities
WO2016120089A1 (en) * 2015-01-28 2016-08-04 Canon Kabushiki Kaisha Improved client-driven push of resources by a server device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468435A (en) * 2019-09-09 2021-03-09 脸谱公司 Request stream
CN112468435B (en) * 2019-09-09 2023-05-12 元平台公司 Request flow

Also Published As

Publication number Publication date
CN106604077B (en) 2020-09-29
CN106604077A (en) 2017-04-26

Similar Documents

Publication Publication Date Title
WO2017063574A1 (en) Streaming media adaptive transmission method and device
US9521180B2 (en) Adaptive variable fidelity media distribution system and method
US10439910B2 (en) Low-latency streaming
EP2797287B1 (en) Method and apparatus for supporting time shift playback in adaptive HTTP streaming transmission solution
US20140215545A1 (en) Online video playing method and video playing server
US20030126277A1 (en) Apparatus and method for providing multimedia streaming service by using point-to-point connection
CA2965795A1 (en) Hypermedia apparatus and method
EP2999187B1 (en) Method, computer program product and server for streaming media content from a server to a client
CN102055718B (en) Method, device and system for layering request content in http streaming system
WO2015121342A1 (en) Requesting multiple chunks from a network node on the basis of a single request message
CN108063769B (en) Method and device for realizing content service and content distribution network node
EP3120520B1 (en) Media streaming
WO2012171507A1 (en) Method and device for transmitting data file to client
CN107124668B (en) Streaming transmission device and method, streaming transmission service system, and recording medium
KR20120114016A (en) Method and apparatus for network adaptive streaming user data in a outer terminal
US20150271226A1 (en) Transport accelerator implementing a multiple interface architecture
US20210021655A1 (en) System and method for streaming music on mobile devices
JP2011082977A (en) P2p network system and data transmitting and receiving method therefor
WO2013185547A1 (en) Caching server service method, caching server and system thereof
WO2011143916A1 (en) Media adaptation method and apparatus
CN108124169A (en) A kind of P2P Video service accelerated methods of household radio router
CN111355979B (en) Online audio rapid playing method
US8412840B2 (en) Live media serving system and method
WO2017114393A1 (en) Http streaming media transmission method and device
WO2015168993A1 (en) Control method and apparatus based on separation between content provider and service provider

Legal Events

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

Ref document number: 16854950

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16854950

Country of ref document: EP

Kind code of ref document: A1