CN106604077A - 自适应流媒体传输方法及装置 - Google Patents
自适应流媒体传输方法及装置 Download PDFInfo
- Publication number
- CN106604077A CN106604077A CN201510663013.1A CN201510663013A CN106604077A CN 106604077 A CN106604077 A CN 106604077A CN 201510663013 A CN201510663013 A CN 201510663013A CN 106604077 A CN106604077 A CN 106604077A
- Authority
- CN
- China
- Prior art keywords
- push
- media data
- media
- server
- undertake
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content 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/26208—Content 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/26241—Content 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content 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/26208—Content 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/26216—Content 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种自适应流媒体传输方法及装置,其中,该方法包括:发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;接收该服务器根据该推送承诺推送的该第二媒体数据,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种自适应流媒体传输方法及装置。
背景技术
近年来,通过互联网传播的视频内容呈现爆发性的增长,一方面源自于接入带宽的增加,包括3G、4G***的规模应用,数字用户线(Digital Subscriber Line,简称为xDSL)和光纤接入在家庭用户的大量部署,有效地提高了最后一公里的接入带宽;另一方面,视频编码的进展提高了视频的压缩率,H.264/AVC,H.265/HEVC都是这方面的代表。据统计2014年HTTP视频数据已经占到北美互联网流量的50%以上,预计到2020年,移动视频数据流量将占到移动数据流量的70%以上。
HTTP流媒体(HTTP Streaming)以其兼容性、可扩展性而得到广泛应用,目前已成为互联网视频传输事实上的标准。HTTP流媒体是一种基于HTTP协议的码率自适应媒体传输技术,利用互联网上传统的HTTP Web服务器提供高品质的流媒体内容。HTTP流媒体将一段视频切分成许多小的HTTP服务器上的文件分块,每个文件分块包含一个较短播放时间的视频内容。这些小的视频片段可能是数个小时电影(点播)或者体育赛事现场视频(直播)的一部分。其中,视频可被编码成为多个不同码率的视频片段,以覆盖不同网络带宽需求。
然而,HTTP协议最初是为文件传输(譬如Web网页)设计的,没有考虑视频实时传输特性,因此无法满足低延迟视频传输的需求:首先,HTTP流媒体是一种以媒体片段(segment)为单位的文件下载技术,一个片段中包含若干秒的视频帧,这将导致无法避免的媒体分段与编码延迟;其次,尽管内容分发网络(Content Delivery Network,简称为CDN)已广泛部署,为用户提供就近接入服务,但基于客户端轮询(Poll)的异步数据获取仍将带来额外延迟;最后,图1是根据相关技术中HTTP流媒体技术中的PULL模式传输示意图,如图1所示,现有HTTP 1.1协议提供的是一种拉模式(PULL)传输机制,客户端必须针对每一个媒体片段发送HTTP请求,HTTP请求开销大且与媒体片段播放时长成反比例增长,并不适合资源受限的移动终端。因此,实现互联网条件下高效的(低延时、请求开销合理)视频传输,特别是视频直播(Live Video)应用,依然是HTTP流媒体面临的一个巨大挑战。
目前,HTTP协议的升级版本HTTP 2.0带来了可行的解决手段。与HTTP 1.1相比,HTTP2.0提高了协议的传输性能,支持请求-应答复用、协议头压缩以及服务器“推”(Server Push)特性。图2是根据相关技术中HTTP流媒体技术中的PUSH模式传输示意图,如图2所示,利用HTTP 2.0服务器“推”,服务器端能够主动将当前最新可用片段推送至客户端,而不需客户端额外请求,可以极大减少传输开销和延迟。具体而言,在处理某个媒体片段HTTP请求后,HTTP 2.0服务器将就后续媒体片段推送策略(Push Strategy)与客户端达成一致,并根据该推送策略向客户端主动推送后续可用的媒体片段。
采用可扩展标记语言(Extensible Markup Language,简称为XML)格式定义的媒体呈现描述(Media Presentation Description,简称为MPD)为客户端获取、播放视频内容中的媒体片段提供了位置信息和时间信息。MPD文件描述了媒体片段的持续时间,统一资源定位符(URL),以及视频分辨率、适配比特率等媒体属性。当客户端选择播放一个视频的时候,它可根据MPD文件中的信息选择下载适应于当前可用网络带宽和终端解码、渲染能力的媒体片段并进行播放。
客户端只有在媒体片段可用性时间范围内才可基于MPD文件中提供的URL信息访问到相应的媒体片段。MPD文件中定义了@availabilityStartTime字段和@availabilityEndTime字段,分别用于提供流媒体播放的最早开始时间以及最晚终止时间。对于视频直播应用,客户端根据MPD文件中的时间信息可以推算出每个媒体片段的可用性开始时间以及可用性终止时间,任何媒体片段只有在上述两个时间点之间才可能被访问。
为了提供流畅的视频流媒体播放体验,客户端通常需要在保证本地时钟时间与服务器端全局时钟时间同步的基础上,获取并解析MPD文件以创建在当前客户端本地时间(Client-Local time NOW)下可供访问的媒体片段列表,并根据该列表向HTTP服务器发送媒体片段获取请求。图3是根据相关技术中HTTP流媒体技术中的媒体片段可访问性示意图一,如图3所示,请求获取媒体片段时,客户端应根据与服务器端同步的本地时钟时间值tnow以及MPD文件中时间信息,譬如:媒体片段相对所在时段(Period)的开始时间、持续时长等,计算可用性开始时间小于或者等于tnow且可用性终止时间大于或者等于tnow媒体片段,获得当前可访问的媒体片段列表,进而确定下一个请求获取媒体片段URL(即,图中对应tnext时刻编号为#N的媒体片段),并触发相应的HTTP请求操作。
不同与此,利用服务器“推”特性,HTTP 2.0协议绑定实现的流媒体***允许服务器按照与客户端达成的“推送策略”主动推送后续出现的媒体片段,以实现降低直播延时,减少请求开销的目的。图4是根据相关技术中HTTP流媒体技术中的媒体片段可访问性示意图二,如图4所示,客户端可以请求推送后续K个媒体片段,或者推送后续一段播放时间为T秒的媒体片段。然而,推送模式下传输的媒体片段的“可用性”与“推送策略”相互独立,亦即,“推送策略”中请求推送的媒体片段在客户端发送请求时刻未必全部可用(即,图中编号为#N+J+1~#N+K的媒体片段)。因此,如何实现在充分利用HTTP 2.0服务器“推”特性进行视频流媒体传输的同时,满足媒体片段的可访问性限制是一个目前需要研究解决的问题。
针对相关技术中,利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,目前还没有有效的解决方案。
发明内容
本发明提供了一种自适应流媒体传输方法及装置,以至少解决相关技术中利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题。
根据本发明的一个方面,提供了一种自适应流媒体传输方法,包括:
发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
接收所述服务器返回的所述第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
接收所述服务器根据所述推送承诺推送的所述第二媒体数据。
进一步地,发送第一媒体数据获取请求至服务器之前,所述方法包括:
设置所述第二媒体数据的推送指示中包含推送条件信息,所述推送条件信息用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
进一步地,所述方法包括:
设置所述推送条件信息为推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。
进一步地,所述方法包括:
设置所述推送条件信息为取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。
进一步地,所述方法包括:
设置所述推送条件信息为推送阈值,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限;或者,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。
进一步地,接收所述服务器返回的第二媒体数据的推送应答包括:
接收所述服务器返回的第二媒体数据的推送应答,所述第二媒体数据的推送应答中包含所述第二媒体数据推送指示中请求的推送条件信息。
进一步地,接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺包括:
接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺;
接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺。
根据本发明的另一个方面,还提供了一种自适应流媒体传输方法,其特征在于,包括:
接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;
返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
根据所述推送承诺推送所述第二媒体数据至所述客户端。
进一步地,返回所述第二媒体数据的推送应答至所述客户端之前,包括:
设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
进一步地,根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端包括:
根据所述推送应答中返回的推送参数值,发送所述第二媒体数据的推送承诺至所述客户端;
根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端。
进一步地,根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端包括:
在所述推送条件信息为推送等待时间的情况下,自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端。
进一步地,根据所述推送应答中返回的推送条件信息发送所述第二媒体数据的推送承诺至所述客户端包括:
在所述推送条件信息为取值为零的推送等待时间的情况下,推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。
进一步地,根据所述推送应答中返回的推送条件信息发送所述第二媒体数据的推送承诺至所述客户端包括:
在所述推送条件信息为推送阈值的情况下,以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。
根据本发明的另一个方面,还提供了一种自适应流媒体传输装置,位于终端侧,包括:
第一发送模块,用于发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
第一接收模块,用于接收所述服务器返回的所述第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
第二接收模块,用于接收所述服务器根据所述推送承诺推送的所述第二媒体数据。
进一步地,所述装置还包括:
第一设置模块,用于发送第一媒体数据获取请求至服务器之前,设置所述第二媒体数据的推送指示中包含的推送条件信息,所述推送条件信息用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
进一步地,所述第一设置模块包括:
第一设置单元,用于设置所述推送条件信息为推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。
进一步地,所述第一设置模块包括:
第二设置单元,用于设置所述推送条件信息为取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。
进一步地,所述第一设置模块包括:
第三设置单元,用于设置所述推送条件信息为推送阈值,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限;或者,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。
进一步地,所述第一接收模块包括:
第一接收单元,用于接收所述服务器返回的第二媒体数据的推送应答,所述第二媒体数据的推送应答中包含所述第二媒体数据推送指示中请求的推送条件信息。
进一步地,所述第一接收模块包括:
第二接收单元,用于接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺;
第三接收单元,用于接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺。
根据本发明的另一个方面,还提供了一种自适应流媒体传输装置,位于服务器侧,包括:
第三接收模块,用于接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;
第四接收模块,用于返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
第二发送模块,用于根据所述推送承诺推送所述第二媒体数据至所述客户端。
进一步地,所述装置还包括:
第二设置模块,用于返回所述第二媒体数据的推送应答至所述客户端之前,设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
进一步地,所述第二发送模块包括:
第一发送单元,用于根据所述推送应答中返回的推送参数值,发送所述第二媒体的数据推送承诺至所述客户端;
第二发送单元,用于根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端。
进一步地,所述第二发送模块包括:
第三发送单元,用于在所述推送条件信息为推送等待时间的情况下,自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端。
进一步地,所述第二发送模块包括:
第四发送单元,用于在所述推送条件信息为取值为零的推送等待时间的情况下,推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。
进一步地,所述第二发送模块包括:
第五发送单元,用于在所述推送条件信息为推送阈值的情况下,以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,用于自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。
通过本发明,发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;接收该服务器根据该推送承诺推送的该第二媒体数据,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术中HTTP流媒体技术中的PULL模式传输示意图;
图2是根据相关技术中HTTP流媒体技术中的PUSH模式传输示意图;
图3是根据相关技术中HTTP流媒体技术中的媒体片段可访问性示意图一;
图4是根据相关技术中HTTP流媒体技术中的媒体片段可访问性示意图二;
图5是根据本发明实施例的一种自适应流媒体传输方法的流程图一;
图6是根据本发明实施例的一种自适应流媒体传输方法的流程图二;
图7是根据本发明实施例的一种自适应流媒体传输装置的结构框图一;
图8是根据本发明实施例的一种自适应流媒体传输装置的结构框图二;
图9是根据本发明实施例的一种自适应流媒体***架构图;
图10是根据本发明可选实施例的一种自适应流媒体传输方法的流程图一;
图11是根据本发明可选实施例的一种自适应流媒体传输方法的流程图二;
图12是根据本发明可选实施例的一种自适应流媒体传输方法的流程图三;
图13是根据本发明可选实施例的一种自适应流媒体传输方法的流程图四;
图14是根据本发明可选实施例的一种自适应流媒体传输方法的流程图五;
图15是根据本发明可选实施例的一种自适应流媒体传输方法的流程图六;
图16是根据本发明可选实施例的一种自适应流媒体传输方法的流程图七;
图17是根据本发明可选实施例的一种自适应流媒体传输方法的流程图八;
图18是根据本发明可选实施例的一种自适应流媒体传输方法的流程图九;
图19是根据本发明可选实施例的一种自适应流媒体传输方法的流程图十;
图20是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图一;
图21是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图二;
图22是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图三;
图23是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图四;
图24是根据本发明实施例的一种自适应流媒体传输装置的结构框图三。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种自适应流媒体传输方法,图5是根据本发明实施例的一种自适应流媒体传输方法的流程图一,如图5所示,该流程包括如下步骤:
步骤S502,发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;
步骤S504,接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;
步骤S506,接收该服务器根据该推送承诺推送的该第二媒体数据。
通过上述步骤,发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;接收该服务器根据该推送承诺推送的该第二媒体数据,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。
在本实施例中,发送第一媒体数据获取请求至服务器之前,设置该第二媒体数据的推送指示中包含推送条件信息,该推送条件信息用于请求该服务器为该第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
在本实施例中,设置该推送条件信息为推送等待时间,该推送等待时间用于设置该服务器自接收该第一媒体数据获取请求起,发送该第二媒体数据的推送承诺的等待时间上限。
在本实施例中,设置该推送条件信息为取值为零的推送等待时间,该推送等待时间用于请求该服务器推送该第二媒体数据的推送指示中引用的所有媒体数据。
在本实施例中,设置该推送条件信息为推送阈值,该推送阈值用于设置该服务器以该第一媒体数据为初始索引,推送该第二媒体数据中媒体数据的数量下限;或者,该推送阈值用于设置该服务器自该第一媒体数据的媒体时间起,推送该第二媒体数据中媒体数据的媒体时间下限。
在本实施例中,接收该服务器返回的第二媒体数据的推送应答包括:接收该服务器返回的第二媒体数据的推送应答,该第二媒体数据的推送应答中包含该第二媒体数据推送指示中请求的推送条件信息。
在本实施例中,接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺包括:接收该服务器根据该推送应答返回的推送参数值,发送的该第二媒体数据的推送承诺;接收该服务器根据该推送应答返回的推送条件信息,发送的该第二媒体数据的推送承诺。
图6是根据本发明实施例的一种自适应流媒体传输方法的流程图二,如图6所示,该流程包括如下步骤:
步骤S602,接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示;
步骤S604,返回该第一媒体数据以及该第二媒体数据的推送应答至该客户端,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端;
步骤S606,根据该推送承诺推送该第二媒体数据至该客户端。
通过上述步骤,接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示;返回该第一媒体数据以及该第二媒体数据的推送应答至该客户端,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端;根据该推送承诺推送该第二媒体数据至该客户端,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。
在本实施例中,返回该第二媒体数据的推送应答至该客户端之前,设置该第二媒体数据的推送应答中包含该第二媒体数据的推送指示请求的推送条件信息,用于为该第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
在本实施例中,根据该推送应答发送该第二媒体数据的推送承诺至该客户端包括:根据该推送应答中返回的推送参数值,发送该第二媒体数据的推送承诺至该客户端;根据该推送应答中返回的推送条件信息,发送该第二媒体数据的推送承诺至该客户端。
在本实施例中,根据该推送应答中返回的推送条件信息,发送该第二媒体数据的推送承诺至该客户端包括:
在该推送条件信息为推送等待时间的情况下,自接收该第一媒体数据获取请求起,在该推送等待时间内发送该第二媒体数据的推送承诺至该客户端。
在本实施例中,根据该推送应答中返回的推送条件信息发送该第二媒体数据的推送承诺至该客户端包括:
在该推送条件信息为取值为零的推送等待时间的情况下,推送该第二媒体数据的推送指示中引用的所有媒体数据至该客户端。
在本实施例中,根据该推送应答中返回的推送条件信息发送该第二媒体数据的推送承诺至该客户端包括:
在该推送条件信息为推送阈值的情况下,以该第一媒体数据为初始索引,至少推送该第二媒体数据中以该推送阈值为数量下限的媒体数据至该客户端;或者,自该第一媒体数据的媒体时间起,至少推送该第二媒体数据中以该推送阈值为媒体时间下限的媒体数据至该客户端。
在本实施例中还提供了一种自适应流媒体传输装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的一种自适应流媒体传输装置的结构框图一,如图7所示,该装置位于终端侧,包括:
第一发送模块72,用于发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;
第一接收模块74,用于接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺;
第二接收模块76,用于接收该服务器根据该推送承诺推送的该第二媒体数据。
通过上述装置,第一发送模块72发送第一媒体数据获取请求至服务器,该获取请求中携带第二媒体数据的推送指示,第一接收模块74接收该服务器返回的该第一媒体数据以及该第二媒体数据的推送应答,并接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺,第二接收模块76接收该服务器根据该推送承诺推送的该第二媒体数据,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。
在本实施例中,该装置还包括:
第一设置模块,用于发送第一媒体数据获取请求至服务器之前,设置该第二媒体数据的推送指示中包含的推送条件信息,该推送条件信息用于请求该服务器为该第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
在本实施例中,该第一设置模块包括:
第一设置单元,用于设置该推送条件信息为推送等待时间,该推送等待时间用于设置该服务器自接收该第一媒体数据获取请求起,发送该第二媒体数据的推送承诺的等待时间上限。
在本实施例中,该第一设置模块包括:
第二设置单元,用于设置该推送条件信息为取值为零的推送等待时间,该推送等待时间用于请求该服务器推送该第二媒体数据的推送指示中引用的所有媒体数据。
在本实施例中,该第一设置模块包括:
第三设置单元,用于设置该推送条件信息为推送阈值,该推送阈值用于设置该服务器以该第一媒体数据为初始索引,推送该第二媒体数据中媒体数据的数量下限;或者,该推送阈值用于设置该服务器自该第一媒体数据的媒体时间起,推送该第二媒体数据中媒体数据的媒体时间下限。
在本实施例中,该第一接收模块74包括:
第一接收单元,用于接收该服务器返回的第二媒体数据的推送应答,该第二媒体数据的推送应答中包含该第二媒体数据推送指示中请求的推送条件信息。
在本实施例中,该第一接收模块74包括:
第二接收单元,用于接收该服务器根据该推送应答返回的推送参数值,发送的该第二媒体数据的推送承诺;
第三接收单元,用于接收该服务器根据该推送应答返回的推送条件信息,发送的该第二媒体数据的推送承诺。
图8是根据本发明实施例的一种自适应流媒体传输装置的结构框图二,如图8所示,该装置位于服务器侧,包括:
第三接收模块82,用于接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示;
第四接收模块84,用于返回该第一媒体数据以及该第二媒体数据的推送应答至该客户端,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端;
第二发送模块86,用于根据该推送承诺推送该第二媒体数据至该客户端。
通过上述装置,第三接收模块82接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示,第四接收模块84返回该第一媒体数据以及该第二媒体数据的推送应答至该客户端,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端,第二发送模块86根据该推送承诺推送该第二媒体数据至该客户端,解决了利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。
在本实施例中,该装置还包括:
第二设置模块,用于返回该第二媒体数据的推送应答至该客户端之前,设置该第二媒体数据的推送应答中包含该第二媒体数据的推送指示请求的推送条件信息,用于为该第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
在本实施例中,该第二发送模块86包括:
第一发送单元,用于根据该推送应答中返回的推送参数值,发送该第二媒体的数据推送承诺至该客户端;
第二发送单元,用于根据该推送应答中返回的推送条件信息,发送该第二媒体数据的推送承诺至该客户端。
第三发送单元,用于在该推送条件信息为推送等待时间的情况下,自接收该第一媒体数据获取请求起,在该推送等待时间内发送该第二媒体数据的推送承诺至该客户端。
第四发送单元,用于在该推送条件信息为取值为零的推送等待时间的情况下,推送该第二媒体数据的推送指示中引用的所有媒体数据至该客户端。
第五发送单元,用于在该推送条件信息为推送阈值的情况下,以该第一媒体数据为初始索引,至少推送该第二媒体数据中以该推送阈值为数量下限的媒体数据至该客户端;或者,用于自该第一媒体数据的媒体时间起,至少推送该第二媒体数据中以该推送阈值为媒体时间下限的媒体数据至该客户端。
下面结合优选实施例和实施方式对本发明进行详细说明。
本发明优选实施例提供了一种自适应流媒体传输***,图9是根据本发明实施例的一种自适应流媒体***架构图,如图9所示,包括:终端100、流媒体客户端200、HTTP/2客户端300、网络400,以及服务器500。下面对图9中示出的***进行说明。
终端100,为流媒体客户端200提供运行环境的用户侧硬件设备,终端100部署实例可以包括:机顶盒、台式机、平板电脑,智能手机等;
流媒体客户端200,提供针对服务器500中流媒体资源的访问、解码、缓存和播放控制,包括:码率自适应模块210,媒体播放引擎220,推模块230,拉模块240。
流媒体客户端200指示HTTP客户端300与服务器500建立媒体传输信道,服务器500利用该媒体信道主动向终端100推送流媒体数据。所述媒体信道可以通过HTTP/1.1协议升级机制建立。流媒体客户端200通过HTTP客户端300向服务器500发送媒体片段或者MPD文件访问请求。其中媒体片段访问请求中可以携带请求媒体片段的统一资源标识符URI以及后续媒体片段的“推送策略”。“推送策略”用于流媒体客户端200与服务器500协商后续媒体片段的推送机制。除了返回请求的媒体片段数据,服务器500在收到媒体片段推送请求后,将根据媒体片段的可用性以及本地策略返回推送应答,一旦流媒体客户端200与服务器500就后续媒体片段“推送策略”达成一致,服务器500将发起媒体片段推送会话,向终端100主动推送后续可用的媒体片段。流媒体客户端200在缓存足够数量媒体片段数据后即可开始播放视频内容。
码率自适应模块210,检测当前可用网络带宽以及媒体播放引擎220中媒体片段缓存状态,执行码率自适应算法,并向推模块230、拉模块240发送码率切换指示。
媒体播放引擎220,对接收到的媒体片段进行解码,媒体数据缓存以及视频播放控制。
推模块230,基于HTTP 2.0协议所支持的服务器发起会话功能,通过HTTP客户端300请求服务器500推送流媒体资源至终端100。
本发明方案中,推模块230支持以下“推送行为”(Push Behavior):
推模块230,支持“即时推送”(Instant Push)行为:
在本发明上下文中,“即时推送”(Instant Push)特指一旦服务器向客户端返回推送应答,则服务器在推送会话中将会发送的所有推送承诺就已经被确定的推送行为。在“即时推送”行为中,服务器占据着推送策略协商的主导地位,由它完全决定如何推送后续媒体片段。
1.根据本地策略,如果服务器可以完全满足推送请求中携带的推送指示,譬如:推送指示只引用当前可访问的媒体片段,则服务器可以通过执行“即时推送”,直接返回具有与推送指示中相同推送参数值的推送应答
2.如果服务器无法完全满足推送请求中携带的推送指示,譬如:推送指示中引用了当前尚不可访问的媒体片段,并且推送指示没有直接请求服务器推送当前尚不可访问的媒体片段,则服务器同样可以通过执行“即时推送”,返回与推送指示中具有不同推送参数值的推送应答
3.特别地,当判断无法推送任何媒体片段时,服务器可以利用“即时推送”返回“拒绝推送”推送应答
推模块230,支持“渐进式推送”(Progressive Push)行为:
在本发明上下文中,“渐进式推送”(Progressive Push)或者“长时间推送”(Long Push)代表服务器返回推送应答时,并不排除后续将会渐进地、有条件地发送超出所述推送应答中所返回推送参数值的推送承诺的推送行为。在“渐进式推送”过程中,服务器将为新出现的可访问的媒体片段推送承诺,直至推送指示所引用的媒体片段已全部被推送,或者不在满足推送指示中所设定的推送条件。
1.根据本地策略,如果服务器无法完全满足推送请求中携带的推送指示,譬如:推送指示中引用了尚不可访问的媒体片段,但是推送指示明确请求服务器推送尚不可访问的媒体片段,则服务器可以执行“渐进式推送”
1)初始阶段,服务器在返回的推送应答中根据当前可访问的媒体片段返回推送参数值,并且确认后续将会为新出现的可访问的媒体片段发送推送承诺
2)在推送会话的后续阶段,服务器将为新出现的可访问的媒体片段推送承诺,直至推送指示中所引用的媒体片段已全部被推送,或者推送指示中设定的推送条件已经失效
“渐进式推送”(Progressive Push)行为能够使服务器根据客户端所设置的推送条件为当前尚不可访问的(即,暂时无法确定访问地址的)媒体片段发送推送承诺:
1.客户端在所述第二媒体数据推送指示中设置推送条件信息,用于请求所述服务器推送所述第二媒体数据推送指示中引用的尚不可访问的媒体数据;
2.服务器将为新出现的可访问的媒体片段推送承诺,直至推送指示中所引用的媒体片段已全部被推送,或者推送指示中设定的推送条件已经失效
推送条件失效通常伴随着推送会话中特定事件或状态的发生,例如,为发送尚不可访问的媒体片段推送承诺的推送等待时间已经过期,或者所推送媒体片段数量或者媒体片段时间已经达到推送阈值等。
“渐进式推送”(Progressive Push)行为的基本过程如下:
1.客户端在所发送的推送请求中携带包含推送条件信息的第二媒体数据推送指示
2.服务器返回第二媒体数据推送应答,并且不排除后续将会根据所述推送指示中请求的推送条件信息,发送超出所述推送应答中返回的推送参数值的推送承诺
3.服务器在返回推送应答后立即向客户端发送当前可访问媒体片段的推送承诺,此外,服务器还将为新出现的可访问的媒体片段推送承诺
需要指出的是,尽管渐进式推送过程天然地包含着即时推送过程,然而上文提到的推送条件信息将不会对即时推送过程施加任何限制。
拉模块240,基于HTTP 1.1协议或HTTP 2.0协议所支持的客户端发起会话功能,通过HTTP客户端300,请求下载服务器500中流媒体资源至终端100。
HTTP客户端300,包括:HTTP/2客户端,以及HTTP/1.1客户端。HTTP客户端300根据流媒体客户端200内部推模块230或者拉模块240的媒体片段访问请求以及码率切换指示,向服务器500发送HTTP请求,请求获取服务器500中最适合当前网络带宽和缓存状况的流媒体资源。其中,缓存330提供HTTP客户端300所下载媒体资源的本地存储。
网络400可以包括:数字用户线路(X Digital Subscriber Line,简称为xDSL)、光纤接入(Fiber-to-the-x,简称为FTTx)、有线电视电缆Cable等有线通信网络,以及Wi-Fi、2G、3G、长期演进(Long Term Evolution,简称为LTE)等无线通信网络。
服务器500,完成对原始视频的切片和MPD文件的生成。其中,内容源520负责内容源捕获、编码压缩、分段处理,将原始视频内容划分成为具有固定时间间隔的多个视频片段。HTTP服务器510,将每一个视频片段作为可被HTTP请求和响应独立访问的HTTP资源,即视频文件,并以时段(period)、表示(representation)和媒体片段(segment)的层次存储。根据请求,HTTP服务器510将向终端返回适当的媒体分片。
服务器500,还提供动态自适应流媒体中MPD文件存储。MPD文件描述了每个媒体片段的持续时间,URL,媒体属性,如视频分辨率、适配比特率等。MPD文件给流媒体客户端提供了足够的HTTP-URL信息用于访问流媒体内容资源,当流媒体客户端开始播放一个视频的时候,它根据MPD文件中的信息选择下载适应于当前可用网络带宽和终端缓存状况的媒体片段并进行播放。
在本发明的实施例中,涉及到的自适应流媒体(或者称为动态自适应流媒体)有多种实现方式,例如,可以采用基于HTTP的动态自适应流媒体(Dynamic Adaptive Streaming overHTTP,简称为DASH)。下面以DASH为例对MPD服务器和流媒体服务器进行说明。以下实施例对其他自适应流媒体技术也同样适用。
图10是根据本发明可选实施例的一种自适应流媒体传输方法的流程图一,如图10所示,该流程包括如下步骤:
步骤S1002,发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
步骤S1004,接收所述服务器返回的该第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
步骤S1006,接收所述服务器根据所述推送承诺推送的该第二媒体数据。
通过上述步骤,客户端可以在第一媒体数据获取请求中携带第二媒体数据的推送指示,设置所述第二媒体数据推送指示中包含推送条件信息,用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。从而解决了相关技术中利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。
上述步骤S1002中记载了发送第一媒体数据获取请求至服务器,所述请求中携带第二媒体数据的推送指示;下面结合可选实施对此进行说明。
图11是根据本发明可选实施例的一种自适应流媒体传输方法的流程图二,如图11所示,该流程包括如下步骤:
步骤S1102,确定请求获取的第一媒体数据统一资源标识符URI;
步骤S1104,判断是否请求服务器推送第二媒体数据。若是,则执行步骤S1106;若否,则执行步骤S1105,发送所述第一媒体数据获取请求至服务器,结束。
步骤S1105,发送第一媒体数据获取请求至所述服务器;
步骤S1106,设置用于请求服务器推送所述第二媒体数据的推送指示;
步骤S1108,判断所述推送指示是否引用所述第二媒体数据中的尚不可访问的媒体数据。若是,则执行步骤S1110,若否,则执行步骤S1114;
步骤S1110,判断是否请求推送所述第二媒体数据中的尚不可访问的媒体数据,若是,则执行步骤S1112,若否,则执行步骤S1114。
步骤S1112,设置所述第二媒体数据的推送指示中包含推送条件信息,用于请求所述服务器推送所述第二媒体数据中的尚不可访问的媒体数据;
步骤S1114,发送第一媒体数据获取请求至所述服务器,所述获取请求中携带所述第二媒体数据的推送指示。
上述步骤S1112中记载了设置所述第二媒体数据推送指示中包含推送条件信息,用于请求所述服务器推送所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据;下面结合可选实施对此进行说明。
下面针对本发明中提出的“推送条件”(PushConditions)做出具体说明:
作为推送请求中推送指示的组成部分,“推送条件”可以被客户端用来显示地请求服务器在推送会话中的特定条件下发送推送承诺,譬如:为新出现的可访问媒体片段发送推送承诺。“推送条件”是由一系列(关键字,值)对所构成的字符串,其中每对(关键字,值)代表一个特定的推送条件,用于平等地评估“推送条件”在推送会话中的有效性。
“推送条件”字符串扩展的巴科斯范式(ABNF)定义如下:
PUSH_CONDITIONS=key BWS"="BWS value
*(OWS","[OWS parameter])
parameter=key BWS"="BWS value
下表1为“推送条件”提供了正式的关键字和取值定义:
表1
表1中所定义的“推送等待”(push-wait)推送条件用于表示:
1.客户端愿意在推送会话中等待某个最大时间值以接收服务器后续发送的推送承诺
2.客户端可能会在等待某个最大时间值之后为那些尚未收到推送承诺的媒体片段再次发送推送请求
“推送等待”指示符用于请求服务器即便已经向客户端发送完毕所有可访问媒体片段的推送承诺,仍然在某个最大时间值内保持推送请求流处于“开放”状态。在某些情况之下,譬如:在多个连续推送事务中,服务器无法为客户端请求推送的后续媒体片段发送推送承诺,客户端可以利用“推送等待”机制减少创建新的请求流,从而避免不必要的请求开销。
表1中所定义的“推送阈值”(push-threshold)推送条件用于表示:
1.客户端要求在推送会话中至少被推送一定数量下限或者媒体时间下限的媒体片段
2.客户端可能会在被推送一定数量下限或者媒体时间下限的媒体片段之后为那些尚未收到推送承诺的媒体片段再次发送推送请求
“推送阈值”指示符用于请求服务器即便已经向客户端发送完毕所有可访问媒体片段的推送承诺,仍然保持推送请求流处于“开放”状态,直至客户端被推送一定下限的媒体片段。
下面针对本发明中提出的“推送条件”(PushConditions)做出示例如下:
(一)非渐进式推送
1)“推送等待”使用示例如表2所示:
表2
2)“推送阈值”使用示例如表3所示:
表3
3)“推送等待”与“推送阈值”联合使用示例如表4所示:
表4
(二)渐进式推送
1)“推送等待”使用示例如表5所示:
表5
2)“推送阈值”使用示例如表6所示:
表6
3)“推送等待”与“推送阈值”联合使用示例如表7所示:
表7
图12是根据本发明可选实施例的一种自适应流媒体传输方法的流程图三,如图12所示,该流程包括如下步骤:
步骤S1202,设置所述第二媒体数据的推送指示中包含推送等待时间;
步骤S1204,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。
特别地,当客户端设置所述第二媒体数据的推送指示中包含的推送等待时间为预先设定取值时,譬如:取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。
图13是根据本发明可选实施例的一种自适应流媒体传输方法的流程图四,如图13所示,该流程包括如下步骤:
步骤S1302,设置所述第二媒体数据的推送指示中包含推送阈值;
步骤S1304,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限。
图14是根据本发明可选实施例的一种自适应流媒体传输方法的流程图五,如图14所示,该流程包括如下步骤:
步骤S1402,设置所述第二媒体数据的推送指示中包含推送阈值;
步骤S1404,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。
上述步骤S1004中记载了接收所述服务器返回的第一媒体数据以及第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;下面结合可选实施对此进行说明。
图15是根据本发明可选实施例的一种自适应流媒体传输方法的流程图六,如图15所示,该流程包括如下步骤:
步骤S1502,接收服务器返回的第二媒体数据的推送应答;
步骤S1504,判断所述推送应答是否引用第二媒体数据中所有媒体数据。若是,则执行步骤S1506,否则执行步骤S1510;
步骤S1506,接收服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
步骤S1508,接收所述服务器根据所述推送承诺推送的所述第二媒体数据;
步骤S1510,接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺;
步骤S1512,判断推送应答是否包含推送条件信息。若是,则执行步骤S1514,否则执行步骤1516;
步骤S1514,接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺;
步骤S1516,接收所述服务器根据所述推送承诺推送的所述第二媒体数据。
需要说明的是,如果服务器没有返回第二媒体数据推送应答,客户端可以认为服务器将不会推送第二媒体数据;如果服务器返回“拒绝推送”推送应答,客户端则可以确定服务器不会推送第二媒体数据。如果服务器返回包含推送条件信息的推送应答,客户端可以认为服务器将会推送第二媒体数据的推送指示中引用的尚不可访问的媒体数据。
图16是根据本发明可选实施例的一种自适应流媒体传输方法的流程图七,如图16所示,该流程包括如下步骤:
步骤S1602,接收客户端发送的第一媒体数据获取请求,所述获取请求中携带第二媒体数据的推送指示;
步骤S1604,返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
步骤S1606,根据所述推送承诺推送所述第二媒体数据至所述客户端。
通过上述步骤,服务器可以设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺,从而解决了相关技术中利用服务器“推”特性进行视频流媒体传输时存在的推送媒体数据的可访问性限制的问题,实现了基于全双工传输协议绑定的高效、低延时自适应流媒体传输。
上述步骤S1604中记载了返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;下面结合可选实施对此进行说明。
图17是根据本发明可选实施例的一种自适应流媒体传输方法的流程图八,如图17所示,该流程包括如下步骤:
步骤S1702,接收客户端发送的第一媒体数据获取请求,所述获取请求中携带第二媒体数据的推送指示;
步骤S1704,判断推送指示中引用的第二媒体数据是否全部可以访问。若是,则执行步骤S1706,否则执行步骤1712;
步骤S1706,返回所述第一媒体数据以及所述第二媒体数据的推送应答,设置所述推送应答中返回的推送参数值引用所述推送指示中引用的所有媒体数据;
步骤S1708,根据所述推送应答返回的推送参数值,发送所述第二媒体数据的推送承诺至所述客户端;
步骤S1710,根据所述推送承诺推送所述第二媒体数据至所述客户端;
步骤S1712,判断是否继续推送第二媒体数据。若是,则执行步骤S1714,否则执行步骤S1716;
步骤S1714,判断所述推送指示中是否包含推送条件信息。若是,则执行步骤S1718,否则执行步骤S1722;
步骤S1716,返回所述第一媒体数据以及“拒绝推送”推送应答;
步骤S1718,判断推送条件是否有效。若是,则执行步骤S1720,否则执行步骤S1722;
步骤S1720,设置所述推送应答中包含所述第二媒体数据的推送指示中请求的推送条件信息;
步骤S1722,返回所述第一媒体数据以及所述第二媒体数据的推送应答,设置所述推送应答中返回的推送参数值引用所述推送指示中引用的可访问的媒体数据;
步骤S1724,根据所述推送应答返回的推送参数值,发送所述第二媒体数据的推送承诺至所述客户端;
步骤S1726,判断所述推送应答是否包含推送条件信息。若是,则执行步骤S1728,否则执行步骤S1730;
步骤S1728,根据所述推送应答返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端;
步骤S1730,根据所述推送承诺推送所述第二媒体数据至所述客户端。
需要说明的是,如果所述第一媒体数据获取请求中携带所述第二媒体数据的推送指示,并且服务器支持所述推送指示,则服务器在响应中必须返回第二媒体数据的推送应答。其中,若服务器不支持所述推送指示,则服务器可以在响应明确返回“拒绝推送”推送应答。如果所述第一媒体数据获取请求没有携带所述第二媒体的推送指示,则禁止服务器在响应中返回第二媒体数据的推送应答。
上述步骤S1728中记载了根据所述推送应答返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端;下面结合可选实施对此进行说明。
图18是根据本发明可选实施例的一种自适应流媒体传输方法的流程图九,如图18所示,在所述推送条件信息为推送等待时间的情况下,服务器自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端,该流程包括如下步骤:
步骤S1802,等待推送所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据;
步骤S1804,判断所述第二媒体数据的推送指示引用的媒体数据中是否存在新的可访问的媒体数据。若是,则执行步骤S1806,否则执行步骤S1810;
步骤S1806,发送所述第二媒体数据中新的可访问的媒体数据的推送承诺至所述客户端;
步骤S1808,判断所述第二媒体数据是否已全部发送推送承诺。若是,则结束,否则执行步骤S1810。
步骤S1810判断是否超出推送等待时间。若是,则结束,否则执行步骤S1802;
特别地,在所述推送条件信息为取值为零的推送等待时间的情况下,不必在步骤S1810判断是否超出推送等待时间,服务器将推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。
图19是根据本发明可选实施例的一种自适应流媒体传输方法的流程图十,如图19所示,在所述推送条件信息为推送阈值的情况下,服务器以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,服务器自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。该流程包括如下步骤:
步骤S1902,等待推送所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据;
步骤S1904,判断所述第二媒体数据的推送指示引用的媒体数据中是否存在新的可访问的媒体数据。若是,则执行步骤S1906,否则执行步骤S1908;
步骤S1906,发送所述第二媒体数据中新的可访问的媒体数据的推送承诺至所述客户端;
步骤S1908,判断是否达到推送阈值。若是,则结束,否则执行步骤S1902;
上述步骤S1002~S1006中记载了客户端可以在第一媒体数据获取请求中携带第二媒体数据的推送指示,设置所述第二媒体数据推送指示中包含推送条件信息,用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。下面结合可选实施对此进行说明。
图20是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图一。
步骤1:客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。其中,HTTP GET消息中的“path”头域被设置为第一媒体片段统一资源标识符URI,用于请求服务器获取第一媒体片段,即步骤1中示例的:path="../rep1/segment1.mp4"。此外,HTTP GET消息中还包含用于请求服务器推送第二媒体片段的“dash-push”头域,即步骤1中示例的
:dash-push="urn:mpeg:dash:fdh:2015",push-template,
"../rep1/segment$Number$.mp4":{2-6},push-wait=2000
至少包括:1)推送协议方案统一资源标识符(SchemeID)字段,用于标识推送协议版本;2)推送指示(PushDirective),用于发送推送会话中所请求的推送策略,包括:推型类型(PushType)字段,用于描述“推送策略”中被推送媒体片段的表示类型,譬如:“push-next”表示请求推送后续特定数量的媒体片段,“push-time”表示请求推送后续特定播放时间的媒体片段,“push-template”表示请求推送模板中明确指定的媒体片段,以及推送参数(PushParams)字段,携带“推送策略”中被推送媒体片段的推送参数值。
可选地,“dash-push”头域中还可携带:3)推送条件(PushCoditions)字段,用于显示地请求服务器在推送会话中的特定条件下发送推送承诺,譬如:为新出现的可访问的媒体片段发送推送承诺,包括:“push-wait”关键字,用于请求服务器在推送会话中某个最大时间值内发送推送承诺,“push-threshold”关键字,用于请求服务器在推送会话中至少被推送一定数量下限或者媒体时间下限的媒体片段。
在本实施例中,客户端请求获取表示(Representation)"rep1"中的"segment1"媒体片段,同时请求推送"rep1"中后续编号"segment2"至"segment6"的5个媒体片段,并通过“push-wait”关键字指示服务器在接收请求后的最多2000毫秒时间内发送推送承诺。
不失一般性,本实施例中用于请求服务器推送第二媒体片段的相关推送策略描述信息也可以通过HTTP GET消息中的“Accept-Push-Policy”等其他头域携带。
步骤2:服务器返回HTTP 200OK响应消息(HTTP/2协议中HEADERS帧),作为所述第一媒体片段获取响应。其中,HTTP 200OK响应消息包含用于返回第二媒体片段推送应答的“dash-push”头域,即步骤2中示例的
:dash-push="urn:mpeg:dash:fdh:2015",push-template,
"../rep1/segment$Number$.mp4":{2-6}
至少包括:1)推送协议方案统一资源标识符(SchemeID)字段,用于标识推送协议版本;2)推送应答(PushAck),用于返回服务器在推送会话中所接收的推送策略,并且携带与请求中具有相同类型的推型类型字段、推送参数字段,以及推送条件字段。
在本实施例中,服务器所返回的推送应答信息表示可以立即为推送指示所请求推送的"rep1"中"segment2"至"segment6"的5个媒体片段发送推送承诺,因此推送应答中无需返回推送条件信息,推送会话中也不会存在“渐进式推送”过程。
步骤3~5:服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(即,"segment2"至"segment6"的5个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。其中,服务器将PUSH_PROMISE帧中“path”头域设置为每一个确认被推送媒体片段统一资源标识符URI,并且将利用客户端在步骤1所发起的请求流中发送所述PUSH_PROMISE帧。
步骤6:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4"。
步骤7~12:根据在步骤3~5发送的推送承诺消息,服务器为每一个确认推送的媒体片段创建服务器发起的推送流,推送"rep1"中编号"segment2"至"segment6"的5个媒体片段至客户端。
上述步骤S1202和S1204中记载了设置所述第二媒体数据的推送指示中包含推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。下面结合可选实施对此进行说明。
图21是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图二。
步骤1:与图20的实施例中步骤1类似,客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。
步骤2:与图20的实施例中步骤2类似,服务器返回HTTP 200OK响应消息,其中包含用于返回第二媒体片段推送应答的“dash-push”头域。
本实施例中推送应答所返回的推送参数字段值为"../rep1/segment$Number$.mp4":{2-4},表示服务器只确认为推送指示中所请求的"rep1"中"segment2"至"segment4"的3个媒体片段发送推送承诺。因此,推送指示中所请求的推送条件信息依然有效,推送应答同时还返回推送指示所请求的推送条件信息,即"push-wait=2000",表示服务器将在接收请求后最多2000毫秒时间内为新出现的可访问媒体片段发送推送承诺,即推送会话中存在“渐进式推送”过程。
步骤3~4:与图20的实施例中步骤3~5类似,服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(即,"segment2"至"segment4"的3个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。
步骤5~6:本实施例中假设,在推送等待的最大时间内新出现可访问的媒体片段"segment5"和"segment6",服务器将为它们发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。
步骤7:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4"。
步骤8~11:根据在步骤3~6发送的推送承诺消息,服务器为每一个确认推送的媒体片段创建服务器发起的推送流,推送"rep1"中编号"segment2"至"segment6"的5个媒体片段至客户端。
上述步骤S1402和S1404中记载了设置所述第二媒体数据的推送指示中包含推送阈值,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限,下面结合可选实施对此进行说明。
图22是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图三。
步骤1:与图20的实施例中步骤1类似,客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。其中,HTTP GET消息中包含用于请求服务器推送第二媒体片段的"dash-push"头域,即步骤1中示例的
:dash-push="urn:mpeg:dash:fdh:2015",push-template,
"../rep1/segment$Time$.mp4":{5000},push-threshold=5000
在本实施例中,客户端请求获取表示(Representation)"rep1"中的"segment1"媒体片段,同时请求推送"rep1"中后续5000毫秒媒体时间的媒体片段,并通过“push-threshold”关键字指示服务器至少推送下限为5000毫秒媒体时间的媒体片段。
步骤2:与图20的实施例中步骤2类似,服务器返回HTTP 200OK响应消息,其中包含用于返回第二媒体片段推送应答的“dash-push”头域。
本实施例中推送应答所返回的推送参数字段值为"../rep1/segment$Time$.mp4":{3000},表示服务器只确认为推送指示中所请求"rep1"中后续3000毫秒媒体时间的媒体片段发送推送承诺。因此,推送指示中所请求的推送条件信息依然有效,推送应答同时还返回推送指示中所请求的推送条件信息,即"push-threshold=5000",表示服务器至少推送5000毫秒媒体时间的媒体片段,即推送会话中存在“渐进式推送”过程。
步骤3~4:与图20的实施例中步骤3~5类似,服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(假设每个媒体片段的预设时长为1000毫秒,即"segment2"至"segment4"的3个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。
步骤5:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4",同时保持客户端请求流处于“开放”(Open)状态。
步骤6~7:服务器还将为剩余2000毫秒媒体时间的媒体片段(即,"segment5"和"segment6"),发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。
步骤8~11:根据步骤3~4和步骤6~7中发送的推送承诺消息,服务器为每一个确认推送的媒体片段创建服务器发起的推送流,即推送"rep1"中编号"segment2"至"segment6"的5个媒体片段至客户端。
上述步骤S1302和S1304中记载了设置所述第二媒体数据的推送指示中包含推送阈值;所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限,下面结合可选实施对此进行说明。
图23是根据本发明实施例的一种自适应流媒体传输方法的消息交互流程图四。
步骤1:与图20的实施例中步骤1类似,客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。其中,HTTP GET消息中包含用于请求服务器推送第二媒体片段的"dash-push"头域,即步骤1中示例的
:dash-push="urn:mpeg:dash:fdh:2015",push-template,
"../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个的媒体片段。
步骤2:与图20的实施例中步骤2类似,服务器返回HTTP 200OK响应消息,其中包含用于返回第二媒体片段推送应答的“dash-push”头域。
本实施例中推送应答所返回的推送参数字段值为"../rep1/segment$Number$.mp4":{2-4},表示服务器只确认为推送指示所请求的"rep1"中"segment2"至"segment4"的3个媒体片段发送推送承诺。因此,推送指示中所请求的推送条件信息依然有效,推送应答同时返回推送指示所请求的推送条件信息,即"push-wait=2000"以及“push-threshold=4”,表示服务器在以上双重条件下为新出现的可访问媒体片段发送推送承诺,即推送会话中存在“渐进式推送”过程。
步骤3~4:与图20的实施例中步骤3~5类似,服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(即,"segment2"至"segment4"的3个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。
步骤5:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4",同时保持客户端请求流处于“开放”(Open)状态。
步骤6:本实施例假设,在最大推送等待时间(即2000毫秒)过期之前新出现可访问的媒体片段"segment5",服务器为它发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。
步骤7~10:根据在步骤3~4和步骤6发送的推送承诺消息,服务器为每一个确认推送的媒体片段创建服务器发起的推送流,推送"rep1"中编号"segment2"至"segment5"的4个媒体片段至客户端。
图24是根据本发明实施例的一种自适应流媒体传输装置的结构框图三,如图24所示,该装置包括获取模块242、第一确定模块244和第二确定模块246,下面对该自适应媒体流处理装置进行说明。
获取模块242,用于获取传输流中携带的自适应流媒体的位置信息和时间信息;第一确定模块244,连接至上述获取模块242,用于根据上述位置信息确定自适应流媒体中需要与传输流进行时间轴对齐的媒体片段;第二确定模块246,连接至上述第一确定模块244,用于根据时间信息确定自适应流媒体中媒体片段的媒体呈现时间相对于传输流时间轴的显示时间戳。
本发明的优选实施例提供一种自适应流媒体传输方法及装置,以至少解决现有HTTP流媒体技术中推送媒体片段的可访问性限制的问题。
通过本发明方案,从而解决了现有HTTP流媒体技术中推送媒体片段的可访问性限制的问题,实现了基于HTTP 2.0协议绑定的高效、低延时自适应流媒体传输。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行上述实施例的方法步骤的程序代码:
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例的方法步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (26)
1.一种自适应流媒体传输方法,其特征在于,包括:
发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
接收所述服务器返回的所述第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
接收所述服务器根据所述推送承诺推送的所述第二媒体数据。
2.根据权利要求1所述的方法,其特征在于,发送第一媒体数据获取请求至服务器之前,所述方法包括:
设置所述第二媒体数据的推送指示中包含推送条件信息,所述推送条件信息用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
3.根据权利要求2所述的方法,其特征在于,所述方法包括:
设置所述推送条件信息为推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。
4.根据权利要求2或3所述的方法,其特征在于,所述方法包括:
设置所述推送条件信息为取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。
5.根据权利要求2所述的方法,其特征在于,所述方法包括:
设置所述推送条件信息为推送阈值,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限;或者,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。
6.根据权利要求1或2所述的方法,其特征在于,接收所述服务器返回的第二媒体数据的推送应答包括:
接收所述服务器返回的第二媒体数据的推送应答,所述第二媒体数据的推送应答中包含所述第二媒体数据推送指示中请求的推送条件信息。
7.根据权利要求1所述的方法,其特征在于,接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺包括:
接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺;
接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺。
8.一种自适应流媒体传输方法,其特征在于,包括:
接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;
返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
根据所述推送承诺推送所述第二媒体数据至所述客户端。
9.根据权利要求8所述的方法,其特征在于,返回所述第二媒体数据的推送应答至所述客户端之前,包括:
设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
10.根据权利要求8或9所述的方法,其特征在于,根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端包括:
根据所述推送应答中返回的推送参数值,发送所述第二媒体数据的推送承诺至所述客户端;
根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端。
11.根据权利要求10所述的方法,其特征在于,根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端包括:
在所述推送条件信息为推送等待时间的情况下,自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端。
12.根据权利要求10所述的方法,其特征在于,根据所述推送应答中返回的推送条件信息发送所述第二媒体数据的推送承诺至所述客户端包括:
在所述推送条件信息为取值为零的推送等待时间的情况下,推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。
13.根据权利要求10所述的方法,其特征在于,根据所述推送应答中返回的推送条件信息发送所述第二媒体数据的推送承诺至所述客户端包括:
在所述推送条件信息为推送阈值的情况下,以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。
14.一种自适应流媒体传输装置,位于终端侧,其特征在于,包括:
第一发送模块,用于发送第一媒体数据获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
第一接收模块,用于接收所述服务器返回的所述第一媒体数据以及所述第二媒体数据的推送应答,并接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
第二接收模块,用于接收所述服务器根据所述推送承诺推送的所述第二媒体数据。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第一设置模块,用于发送第一媒体数据获取请求至服务器之前,设置所述第二媒体数据的推送指示中包含的推送条件信息,所述推送条件信息用于请求所述服务器为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
16.根据权利要求15所述的装置,其特征在于,所述第一设置模块包括:
第一设置单元,用于设置所述推送条件信息为推送等待时间,所述推送等待时间用于设置所述服务器自接收所述第一媒体数据获取请求起,发送所述第二媒体数据的推送承诺的等待时间上限。
17.根据权利要求15或16所述的装置,其特征在于,所述第一设置模块包括:
第二设置单元,用于设置所述推送条件信息为取值为零的推送等待时间,所述推送等待时间用于请求所述服务器推送所述第二媒体数据的推送指示中引用的所有媒体数据。
18.根据权利要求15所述的装置,其特征在于,所述第一设置模块包括:
第三设置单元,用于设置所述推送条件信息为推送阈值,所述推送阈值用于设置所述服务器以所述第一媒体数据为初始索引,推送所述第二媒体数据中媒体数据的数量下限;或者,所述推送阈值用于设置所述服务器自所述第一媒体数据的媒体时间起,推送所述第二媒体数据中媒体数据的媒体时间下限。
19.根据权利要求14所述的装置,其特征在于,所述第一接收模块包括:
第一接收单元,用于接收所述服务器返回的第二媒体数据的推送应答,所述第二媒体数据的推送应答中包含所述第二媒体数据推送指示中请求的推送条件信息。
20.根据权利要求14所述的装置,其特征在于,所述第一接收模块包括:
第二接收单元,用于接收所述服务器根据所述推送应答返回的推送参数值,发送的所述第二媒体数据的推送承诺;
第三接收单元,用于接收所述服务器根据所述推送应答返回的推送条件信息,发送的所述第二媒体数据的推送承诺。
21.一种自适应流媒体传输装置,位于服务器侧,其特征在于,包括:
第三接收模块,用于接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;
第四接收模块,用于返回所述第一媒体数据以及所述第二媒体数据的推送应答至所述客户端,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
第二发送模块,用于根据所述推送承诺推送所述第二媒体数据至所述客户端。
22.根据权利要求21所述的装置,其特征在于,所述装置还包括:
第二设置模块,用于返回所述第二媒体数据的推送应答至所述客户端之前,设置所述第二媒体数据的推送应答中包含所述第二媒体数据的推送指示请求的推送条件信息,用于为所述第二媒体数据的推送指示中引用的尚不可访问的媒体数据发送推送承诺。
23.根据权利要求21或22所述的装置,其特征在于,所述第二发送模块包括:
第一发送单元,用于根据所述推送应答中返回的推送参数值,发送所述第二媒体的数据推送承诺至所述客户端;
第二发送单元,用于根据所述推送应答中返回的推送条件信息,发送所述第二媒体数据的推送承诺至所述客户端。
24.根据权利要求23所述的装置,其特征在于,所述第二发送模块包括:
第三发送单元,用于在所述推送条件信息为推送等待时间的情况下,自接收所述第一媒体数据获取请求起,在所述推送等待时间内发送所述第二媒体数据的推送承诺至所述客户端。
25.根据权利要求23所述的装置,其特征在于,所述第二发送模块包括:
第四发送单元,用于在所述推送条件信息为取值为零的推送等待时间的情况下,推送所述第二媒体数据的推送指示中引用的所有媒体数据至所述客户端。
26.根据权利要求23所述的装置,其特征在于,所述第二发送模块包括:
第五发送单元,用于在所述推送条件信息为推送阈值的情况下,以所述第一媒体数据为初始索引,至少推送所述第二媒体数据中以所述推送阈值为数量下限的媒体数据至所述客户端;或者,用于自所述第一媒体数据的媒体时间起,至少推送所述第二媒体数据中以所述推送阈值为媒体时间下限的媒体数据至所述客户端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510663013.1A CN106604077B (zh) | 2015-10-14 | 2015-10-14 | 自适应流媒体传输方法及装置 |
PCT/CN2016/102032 WO2017063574A1 (zh) | 2015-10-14 | 2016-10-13 | 自适应流媒体传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510663013.1A CN106604077B (zh) | 2015-10-14 | 2015-10-14 | 自适应流媒体传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106604077A true CN106604077A (zh) | 2017-04-26 |
CN106604077B CN106604077B (zh) | 2020-09-29 |
Family
ID=58517119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510663013.1A Active CN106604077B (zh) | 2015-10-14 | 2015-10-14 | 自适应流媒体传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106604077B (zh) |
WO (1) | WO2017063574A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086797A (zh) * | 2019-04-22 | 2019-08-02 | 北京开广信息技术有限公司 | 媒体流的实时接收方法及客户端 |
CN110545492A (zh) * | 2018-09-05 | 2019-12-06 | 北京开广信息技术有限公司 | 媒体流的实时递送方法及服务器 |
CN111083217A (zh) * | 2019-12-11 | 2020-04-28 | 北京达佳互联信息技术有限公司 | 一种推送Feed流的方法、装置及电子设备 |
CN111669665A (zh) * | 2019-03-05 | 2020-09-15 | 北京开广信息技术有限公司 | 媒体流的实时推送方法及服务器 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11228626B1 (en) * | 2019-09-09 | 2022-01-18 | Facebook, Inc. | Request stream |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100094996A1 (en) * | 2008-10-14 | 2010-04-15 | Samaha Tareq A | System and method for a server-based files and tasks brokerage |
CN102232298A (zh) * | 2011-04-07 | 2011-11-02 | 华为技术有限公司 | 媒体内容的传输处理方法、装置与*** |
CN102378043A (zh) * | 2011-09-29 | 2012-03-14 | 深圳市矽伟智科技有限公司 | 内容推送方法、互联网电视播放方法及对应装置、*** |
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) |
WO2015004276A2 (en) * | 2013-07-12 | 2015-01-15 | Canon Kabushiki Kaisha | Adaptive data streaming method with push messages control |
CN104883618A (zh) * | 2015-05-11 | 2015-09-02 | 腾讯科技(北京)有限公司 | 直播节目试看方法、装置及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2850845A1 (en) * | 2012-07-09 | 2015-03-25 | Huawei Technologies Co., Ltd. | Dynamic adaptive streaming over http client behavior framework and implementation of session management |
GB2516641B (en) * | 2013-07-26 | 2015-12-16 | Canon Kk | Method and server device for exchanging information items with a plurality of client entities |
GB2534849A (en) * | 2015-01-28 | 2016-08-10 | Canon Kk | Client-driven push of resources by a server device |
-
2015
- 2015-10-14 CN CN201510663013.1A patent/CN106604077B/zh active Active
-
2016
- 2016-10-13 WO PCT/CN2016/102032 patent/WO2017063574A1/zh active Application Filing
Patent Citations (6)
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) |
US20100094996A1 (en) * | 2008-10-14 | 2010-04-15 | Samaha Tareq A | System and method for a server-based files and tasks brokerage |
CN102232298A (zh) * | 2011-04-07 | 2011-11-02 | 华为技术有限公司 | 媒体内容的传输处理方法、装置与*** |
CN102378043A (zh) * | 2011-09-29 | 2012-03-14 | 深圳市矽伟智科技有限公司 | 内容推送方法、互联网电视播放方法及对应装置、*** |
WO2015004276A2 (en) * | 2013-07-12 | 2015-01-15 | Canon Kabushiki Kaisha | Adaptive data streaming method with push messages control |
CN104883618A (zh) * | 2015-05-11 | 2015-09-02 | 腾讯科技(北京)有限公司 | 直播节目试看方法、装置及*** |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110545492A (zh) * | 2018-09-05 | 2019-12-06 | 北京开广信息技术有限公司 | 媒体流的实时递送方法及服务器 |
CN110545492B (zh) * | 2018-09-05 | 2020-07-31 | 北京开广信息技术有限公司 | 媒体流的实时递送方法及服务器 |
CN111669665A (zh) * | 2019-03-05 | 2020-09-15 | 北京开广信息技术有限公司 | 媒体流的实时推送方法及服务器 |
CN110086797A (zh) * | 2019-04-22 | 2019-08-02 | 北京开广信息技术有限公司 | 媒体流的实时接收方法及客户端 |
CN110086797B (zh) * | 2019-04-22 | 2021-05-28 | 北京开广信息技术有限公司 | 媒体流的实时接收方法、客户端、计算机设备和存储介质 |
CN111083217A (zh) * | 2019-12-11 | 2020-04-28 | 北京达佳互联信息技术有限公司 | 一种推送Feed流的方法、装置及电子设备 |
CN111083217B (zh) * | 2019-12-11 | 2022-07-08 | 北京达佳互联信息技术有限公司 | 一种推送Feed流的方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106604077B (zh) | 2020-09-29 |
WO2017063574A1 (zh) | 2017-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106604077A (zh) | 自适应流媒体传输方法及装置 | |
CN108063769B (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
CN103888818B (zh) | 一种电视节目播放方法、设备和*** | |
WO2012011467A1 (ja) | データ配信システム、データ配信方法、配信側データ中継装置、及び受信側データ中継装置 | |
CN102055718B (zh) | 一种在http streaming***中实现分层请求内容的方法,装置和*** | |
CN102571726A (zh) | 多媒体数据共享的方法、***及状态判定服务器 | |
EP3515083B1 (en) | Method and apparatus for performing synchronization operation on contents | |
CN110933517B (zh) | 码率切换方法、客户端和计算机可读存储介质 | |
CN103442259B (zh) | 媒体数据的重组方法和装置 | |
CN104040992A (zh) | 移动网络中具有改善的效率的媒体流 | |
CN102006519A (zh) | 多媒体终端和ip机顶盒之间的互动方法和*** | |
KR20120114016A (ko) | 사용자 컨텐츠를 외부 단말기에서 네트워크 적응적으로 스트리밍하는 방법 및 장치 | |
US20220060532A1 (en) | Method for transmitting resources and electronic device | |
US20150095447A1 (en) | Serving method of cache server, cache server, and system | |
CN107547517B (zh) | 音视频节目录制方法和网络设备及计算机装置 | |
EP2477397A1 (en) | Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections | |
CN106331763A (zh) | 无缝播放分片媒体文件的方法及实现该方法的装置 | |
MX2013001555A (es) | Metodo de conmutacion de canal de medios de transmision, agente de conmutacion, cliente y terminal. | |
US8412840B2 (en) | Live media serving system and method | |
EP2819384A1 (en) | Method, device and system for video monitoring based on universal plug and play (upnp) | |
CN111200562B (zh) | 导流方法、静态父节点、边缘节点以及cdn网络 | |
CN106936808B (zh) | Http流媒体传输方法及装置 | |
KR101678388B1 (ko) | 레이턴시를 고려한 영상 처리 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템 | |
JP2016531485A (ja) | Mbmsサービスによって伝送されるマルチメディアコンテンツのアイテムを処理している間のマルチメディアプレーヤによる同期方法 | |
WO2017071524A1 (zh) | 多媒体资源的发布方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |