CN106936808B - Http流媒体传输方法及装置 - Google Patents
Http流媒体传输方法及装置 Download PDFInfo
- Publication number
- CN106936808B CN106936808B CN201511033565.0A CN201511033565A CN106936808B CN 106936808 B CN106936808 B CN 106936808B CN 201511033565 A CN201511033565 A CN 201511033565A CN 106936808 B CN106936808 B CN 106936808B
- Authority
- CN
- China
- Prior art keywords
- push
- media data
- stream
- server
- client
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种HTTP流媒体传输方法及装置,其中,该方法包括:发送第一媒体数据的获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;接收该服务器返回的该第一媒体数据、该第二媒体数据的推送应答,以及该服务器根据该推送应答发送的该第二媒体数据的推送承诺;发送流终止命令至该服务器,该流终止命令用于终止该服务器根据该推送承诺预留的该第二媒体数据的推送流,完善了HTTP流媒体传输会话中的推送更新机制,解决了尚不存在有效的HTTP流媒体推送更新解决方案的问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种HTTP流媒体传输方法及装置。
背景技术
近年来,通过互联网传播的视频内容呈现爆发性的增长,一方面源自于接入带宽的增加,包括3G、4G系统的规模应用,数字用户线(Digital Subscriber Line,简称为xDSL)和光纤接入在家庭用户的大量部署,有效地提高了最后一公里的接入带宽;另一方面,视频编码的进展提高了视频的压缩率,H.264/AVC,H.265/HEVC都是这方面的代表。据统计2014年HTTP视频数据已经占到北美互联网流量的50%以上,预计到2020年,移动视频数据流量将占到移动数据流量的70%以上。
超文本传输协议(Hypertext Transfer Protocol,简称为HTTP)流媒体(HTTPStreaming)以其兼容性、可扩展性而得到广泛应用,目前已成为互联网视频传输事实上的标准。HTTP流媒体是一种基于HTTP协议的码率自适应媒体传输技术,利用互联网上传统的HTTP Web服务器提供高品质的流媒体内容。HTTP流媒体将一段视频切分成许多小的HTTP服务器上的文件分块,每个文件分块包含一个较短播放时间的视频内容。这些小的视频片段可能是数个小时电影(点播)或者体育赛事现场视频(直播)的一部分。其中,视频可被编码成为多个不同码率的视频片段,以覆盖不同网络带宽需求。采用可扩展标记语言(Extensible Markup Language,简称为XML)格式定义的媒体呈现描述(MediaPresentation Description,简称为MPD)为客户端获取、播放视频内容中的媒体片段提供了位置信息和时间信息。MPD文件描述了媒体片段的持续时间,统一资源定位符(URL),以及视频分辨率、适配比特率等媒体属性。当客户端选择播放一个视频的时候,它可根据MPD文件中的信息选择下载适应于当前可用网络带宽和终端解码、渲染能力的媒体片段并进行播放。
然而,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提高了协议的传输性能,支持请求-应答复用、协议头压缩以及服务器“推”(ServerPush)特性。图2是根据相关技术中HTTP流媒体技术中的PUSH模式传输示意图,如图2所示,利用HTTP 2.0服务器“推”,服务器端能够主动将当前最新可用片段推送至客户端,而不需客户端额外请求。具体而言,在处理某个媒体片段HTTP请求后,HTTP 2.0服务器将就后续媒体片段推送策略(Push Strategy)与客户端达成一致,并根据该推送策略向客户端主动推送后续可用的K个媒体片段,或者后续一段播放时间为T秒的媒体片段,以实现降低直播延时,减少请求开销的目的。
在基于服务器“推”特性的HTTP流媒体传输技术中,客户端需要可根据可用网络带宽、播放器缓存状态等信息动态更新媒体片段的“推送策略”,即请求服务器改变推送媒体片段的数量(Push Sequence)和码率(Representation Switch)。然而,在相关技术中,目前尚不存在有效的HTTP流媒体推送更新解决方案。
发明内容
本发明提供了一种HTTP流媒体传输方法及装置,以至少解决相关技术中尚不存在有效的HTTP流媒体推送更新解决方案的问题。
根据本发明的一个方面,提供了一种HTTP流媒体传输方法,包括:
发送第一媒体数据的获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
接收所述服务器返回的所述第一媒体数据、所述第二媒体数据的推送应答,以及所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
发送流终止命令至所述服务器,所述流终止命令用于终止所述服务器根据所述推送承诺预留的所述第二媒体数据的推送流。
进一步地,接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺之后,所述方法还包括:
接收所述服务器根据所述推送承诺推送的所述第二媒体数据。
发送流终止命令至所述服务器,所述流终止命令用于终止所述服务器根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
进一步地,所述发送流终止命令至所述服务器之前,所述方法还包括:
在所述流终止命令中设置即时终止标记值,所述即时终止标记用于指示所述服务器在所述推送流中立即停止推送所述第二媒体数据,并终止所述推送流。
进一步地,所述发送流终止命令至所述服务器之前,所述方法还包括:
在所述流终止命令中设置即时终止标记值,所述即时终止标记用于指示所述服务器在所述推送流中完成推送所述第二媒体数据,然后终止所述推送流。
根据本发明的一个方面,还提供了一种HTTP流媒体传输方法,包括:
接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;
返回所述第一媒体数据、所述第二媒体数据的推送应答,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
接收所述客户端发送的流终止命令,并根据所述流终止命令终止根据所述推送承诺预留的所述第二媒体数据的推送流。
进一步地,根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端之后,所述方法还包括:
根据所述推送承诺推送所述第二媒体数据至所述客户端;
接收所述客户端发送的流终止命令,并根据所述流终止命令终止根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
进一步地,所述根据所述流终止命令终止根据所述推送承诺预留的所述第二媒体数据的推送流包括:
如果所述流终止命令中存在即时终止标记,在所述推送流中立即停止推送所述第二媒体数据,并终止所述推送流;
如果所述流终止命令中不存在即时终止标记,在所述推送流中完成推送所述第二媒体数据,然后终止所述推送流。
根据本发明的另一个方面,还提供了一种HTTP流媒体传输方法,包括:
发送第一媒体数据的获取请求至服务器,所述获取请求中携带第二媒体数据的推送更新指示;
接收所述服务器返回的所述第一媒体数据,以及所述第二媒体数据的推送更新应答;
接收所述服务器发送的流终止命令,根据所述流终止命令终止接收所述服务器推送的所述第二媒体数据。
进一步地,所述发送第一媒体数据的获取请求至服务器之后,所述方法还包括:
接收所述服务器发送的所述第二媒体数据的推送承诺;
接收所述服务器发送的流终止命令,根据所述流终止命令终止接收所述服务器根据所述推送承诺尚未完成推送的所述第二媒体数据。
进一步地,接收所述第二媒体数据的推送更新应答之后,所述方法还包括:
接收所述服务器根据所述推送更新应答发送的第三媒体数据的推送承诺;
接收所述服务器根据所述推送承诺推送的所述第三媒体数据。
根据本发明的另一个方面,还提供了一种HTTP流媒体传输方法,包括:
接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送更新指示;
返回所述第一媒体数据,以及所述第二媒体数据的推送更新应答至所述客户端;
发送流终止命令至所述客户端,所述流终止命令用于终止预留的所述第二媒体数据的推送流。
进一步地,所述接收客户端发送的第一媒体数据的获取请求之后,所述方法还包括:
发送所述第二媒体数据的推送承诺至所述客户端;
发送流终止命令至所述客户端,所述流终止命令用于终止根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
进一步地,所述返回所述第二媒体数据的推送更新应答至所述客户端之后,所述方法还包括:
根据所述推送更新应答发送第三媒体数据的推送承诺至所述客户端;
根据所述推送承诺推送所述第三媒体数据至所述客户端。
进一步地,所述发送流终止命令至所述客户端,所述流终止命令用于终止预留的所述第二媒体数据的推送流包括:
如果所述推送更新指示中存在即时终止标记,在所述推送流中立即发送流终止命令至所述客户端,终止所述推送流;
如果所述推送更新指示中不存在即时终止标记,完成所述推送流中正在推送的所述第二媒体数据至所述客户端,然后在所述推送流中发送流终止命令至所述客户端,终止所述推送流。
根据本发明的另一个方面,还提供了一种HTTP流媒体传输装置,位于终端中,包括:
第一发送模块,用于发送第一媒体数据的获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
第一接收模块,用于接收所述服务器返回的所述第一媒体数据、所述第二媒体数据的推送应答,以及所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
第二发送模块,用于发送流终止命令至所述服务器,所述流终止命令用于终止所述服务器根据所述推送承诺预留的所述第二媒体数据的推送流。
进一步地,所述装置还包括:
第二接收模块,用于接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺之后,接收所述服务器根据所述推送承诺推送的所述第二媒体数据。
第三发送模块,用于发送流终止命令至所述服务器,所述流终止命令用于终止所述服务器根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
进一步地,所述装置还包括:
第一设置模块,用于所述发送流终止命令至所述服务器之前,在所述流终止命令中设置即时终止标记值,所述即时终止标记用于指示所述服务器在所述推送流中立即停止推送所述第二媒体数据,并终止所述推送流。
进一步地,所述装置还包括:
第二设置模块,用于所述发送流终止命令至所述服务器之前,在所述流终止命令中设置即时终止标记值,所述即时终止标记用于指示所述服务器在所述推送流中完成推送所述第二媒体数据,然后终止所述推送流。
根据本发明的另一个方面,还提供了一种HTTP流媒体传输装置,位于服务器中,包括:
第四接收模块,用于接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;
第四发送模块,用于返回所述第一媒体数据、所述第二媒体数据的推送应答,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
第五接收模块,用于接收所述客户端发送的流终止命令,并根据所述流终止命令终止根据所述推送承诺预留的所述第二媒体数据的推送流。
进一步地,所述装置还包括:
第五发送模块,用于根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端之后,根据所述推送承诺推送所述第二媒体数据至所述客户端;
第六接收模块,用于接收所述客户端发送的流终止命令,并根据所述流终止命令终止根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
进一步地,所述第五接收模块包括:
第一终止单元,用于如果所述流终止命令中存在即时终止标记,在所述推送流中立即停止推送所述第二媒体数据,并终止所述推送流;
第二终止单元,用于如果所述流终止命令中不存在即时终止标记,在所述推送流中完成推送所述第二媒体数据,然后终止所述推送流。
根据本发明的另一个方面,还提供了一种HTTP流媒体传输装置,位于终端中,包括:
第六发送模块,用于发送第一媒体数据的获取请求至服务器,所述获取请求中携带第二媒体数据的推送更新指示;
第七接收模块,用于接收所述服务器返回的所述第一媒体数据,以及所述第二媒体数据的推送更新应答;
第八接收模块,用于接收所述服务器发送的流终止命令,根据所述流终止命令终止接收所述服务器推送的所述第二媒体数据。
进一步地,所述装置还包括:
第九接收模块,用于所述发送第一媒体数据的获取请求至服务器之后,接收所述服务器发送的所述第二媒体数据的推送承诺;
第十接收模块,用于接收所述服务器发送的流终止命令,根据所述流终止命令终止接收所述服务器根据所述推送承诺尚未完成推送的所述第二媒体数据。
进一步地,所述装置还包括:
第十一接收模块,用于接收所述第二媒体数据的推送更新应答之后,接收所述服务器根据所述推送更新应答发送的第三媒体数据的推送承诺;
第十二接收模块,用于接收所述服务器根据所述推送承诺推送的所述第三媒体数据。
根据本发明的另一个方面,还提供了一种HTTP流媒体传输装置,位于服务器中,包括:
第十三接收模块,接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送更新指示;
第七发送模块,用于返回所述第一媒体数据,以及所述第二媒体数据的推送更新应答至所述客户端;
第八发送模块,用于发送流终止命令至所述客户端,所述流终止命令用于终止预留的所述第二媒体数据的推送流。
进一步地,所述装置还包括:
第九发送模块,用于所述接收客户端发送的第一媒体数据的获取请求之后,发送所述第二媒体数据的推送承诺至所述客户端;
第十发送模块,用于发送流终止命令至所述客户端,所述流终止命令用于终止根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
进一步地,所述装置还包括:
第十一发送模块,用于所述返回所述第一媒体数据,以及所述第二媒体数据的推送更新应答至所述客户端之后,根据所述推送更新应答发送第三媒体数据的推送承诺至所述客户端;
第十二发送模块,用于根据所述推送承诺推送所述第三媒体数据至所述客户端。
进一步地,所述第八发送模块包括:
第三终止单元,用于如果所述推送更新指示中存在即时终止标记,在所述推送流中立即发送流终止命令至所述客户端,终止所述推送流;
第四终止单元,用于如果所述推送更新指示中不存在即时终止标记,完成所述推送流中正在推送的所述第二媒体数据至所述客户端,然后在所述推送流中发送流终止命令至所述客户端,终止所述推送流。
通过本发明,发送第一媒体数据的获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;接收该服务器返回的该第一媒体数据、该第二媒体数据的推送应答,以及该服务器根据该推送应答发送的该第二媒体数据的推送承诺;发送流终止命令至该服务器,该流终止命令用于终止该服务器根据该推送承诺预留的该第二媒体数据的推送流,解决了尚不存在有效的HTTP流媒体推送更新解决方案的问题,完善了HTTP流媒体传输会话中的推送更新机制。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术中HTTP流媒体技术中的PULL模式传输示意图;
图2是根据相关技术中HTTP流媒体技术中的PUSH模式传输示意图;
图3是根据本发明实施例的一种HTTP流媒体传输的流程图一;
图4是根据本发明实施例的一种HTTP流媒体传输的流程图二;
图5是根据本发明实施例的一种HTTP流媒体传输的流程图三;
图6是根据本发明实施例的一种HTTP流媒体传输的流程图四;
图7是根据本发明实施例的一种HTTP流媒体传输装置的结构框图一;
图8是根据本发明实施例的一种HTTP流媒体传输装置的结构框图二;
图9是根据本发明实施例的一种HTTP流媒体传输装置的结构框图三;
图10是根据本发明实施例的一种HTTP流媒体传输装置的结构框图四;
图11是根据本发明实施例的一种HTTP流媒体传输装置的结构框图五;
图12是根据本发明实施例的一种HTTP流媒体传输装置的结构框图六;
图13是根据本发明实施例的一种HTTP流媒体传输装置的结构框图七;
图14是根据本发明实施例的一种HTTP流媒体传输装置的结构框图八;
图15是根据本发明实施例的一种HTTP流媒体传输装置的结构框图九;
图16是根据本发明实施例的一种HTTP流媒体传输装置的结构框图十;
图17是根据本发明实施例的一种HTTP流媒体传输装置的结构框图十一;
图18是根据本发明实施例的一种HTTP流媒体传输装置的结构框图十二;
图19是根据本发明实施例的一种HTTP流媒体传输系统架构的示意图;
图20是根据本发明优选实施例的基于媒体片段取消命令实现HTTP流媒体推送会话更新的交互流程图;
图21是根据本发明优选实施例的一种HTTP流媒体传输方法的消息交互流程图一;
图22是根据本发明优选实施例的基于媒体片段更新命令实现HTTP流媒体推送会话更新的交互流程图;
图23是根据本发明优选实施例的另一种HTTP流媒体传输方法的消息交互流程图二;
图24是根据本发明优选实施例的另一种HTTP流媒体传输方法的消息交互流程图三;
图25是根据本发明实施例的一种HTTP流媒体传输装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种HTTP流媒体传输方法,图3是根据本发明实施例的一种HTTP流媒体传输的流程图一,如图3所示,该流程包括如下步骤:
步骤S302,发送第一媒体数据的获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;
步骤S304,接收该服务器返回的该第一媒体数据、该第二媒体数据的推送应答,以及该服务器根据该推送应答发送的该第二媒体数据的推送承诺;
步骤S306,发送流终止命令至该服务器,该流终止命令用于终止该服务器根据该推送承诺预留的该第二媒体数据的推送流。
通过上述步骤,解决了尚不存在有效的HTTP流媒体推送更新解决方案的问题,完善了HTTP流媒体传输会话中的推送更新机制。
在本发明的实施例中,接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺之后,该方法还包括:
接收该服务器根据该推送承诺推送的该第二媒体数据。
发送流终止命令至该服务器,该流终止命令用于终止该服务器根据该推送承诺预留的尚未完成推送该第二媒体数据的推送流。
在本发明的实施例中,该发送流终止命令至该服务器之前,在该流终止命令中设置即时终止标记值,该即时终止标记用于指示该服务器在该推送流中立即停止推送该第二媒体数据,并终止该推送流。
在本发明的实施例中,该发送流终止命令至该服务器之前,在该流终止命令中设置即时终止标记值,该即时终止标记用于指示该服务器在该推送流中完成推送该第二媒体数据,然后终止该推送流。
在本实施例中还提供了一种HTTP流媒体传输方法,图4是根据本发明实施例的一种HTTP流媒体传输的流程图二,如图4所示,该流程包括如下步骤:
步骤S402,接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示;
步骤S404,返回该第一媒体数据、该第二媒体数据的推送应答,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端;
步骤S406,接收该客户端发送的流终止命令,并根据该流终止命令终止根据该推送承诺预留的该第二媒体数据的推送流。
通过上述步骤,解决了尚不存在有效的HTTP流媒体推送更新解决方案的问题,完善了HTTP流媒体传输会话中的推送更新机制。
在本发明的实施例中,根据该推送应答发送该第二媒体数据的推送承诺至该客户端之后,根据该推送承诺推送该第二媒体数据至该客户端;
接收该客户端发送的流终止命令,并根据该流终止命令终止根据该推送承诺预留的尚未完成推送该第二媒体数据的推送流。
在本发明的实施例中,该根据该流终止命令终止根据该推送承诺预留的该第二媒体数据的推送流包括:
如果该流终止命令中存在即时终止标记,在该推送流中立即停止推送该第二媒体数据,并终止该推送流;
如果该流终止命令中不存在即时终止标记,在该推送流中完成推送该第二媒体数据,然后终止该推送流。
在本实施例中还提供了一种HTTP流媒体传输方法,图5是根据本发明实施例的一种HTTP流媒体传输的流程图三,如图5所示,该流程包括如下步骤:
步骤S502,发送第一媒体数据的获取请求至服务器,该获取请求中携带第二媒体数据的推送更新指示;
步骤S504,接收该服务器返回的该第一媒体数据,以及该第二媒体数据的推送更新应答;
步骤S506,接收该服务器发送的流终止命令,根据该流终止命令终止接收该服务器推送的该第二媒体数据。
通过上述步骤,解决了尚不存在有效的HTTP流媒体推送更新解决方案的问题,完善了HTTP流媒体传输会话中的推送更新机制。
在本发明的实施例中,该发送第一媒体数据的获取请求至服务器之后,接收该服务器发送的该第二媒体数据的推送承诺;
接收该服务器发送的流终止命令,根据该流终止命令终止接收该服务器根据该推送承诺尚未完成推送的该第二媒体数据。
在本发明的实施例中,接收该第二媒体数据的推送更新应答之后,接收该服务器根据该推送更新应答发送的第三媒体数据的推送承诺;
接收该服务器根据该推送承诺推送的该第三媒体数据。
在本实施例中还提供了一种HTTP流媒体传输方法,图6是根据本发明实施例的一种HTTP流媒体传输的流程图四,如图6所示,该流程包括如下步骤:
步骤S602,接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送更新指示;
步骤S604,返回该第一媒体数据,以及该第二媒体数据的推送更新应答至该客户端;
步骤S606,发送流终止命令至该客户端,该流终止命令用于终止预留的该第二媒体数据的推送流。
通过上述步骤,解决了尚不存在有效的HTTP流媒体推送更新解决方案的问题,完善了HTTP流媒体传输会话中的推送更新机制。
在本发明的实施例中,该接收客户端发送的第一媒体数据的获取请求之后,发送该第二媒体数据的推送承诺至该客户端;发送流终止命令至该客户端,该流终止命令用于终止根据该推送承诺预留的尚未完成推送该第二媒体数据的推送流。
在本发明的实施例中,该返回该第二媒体数据的推送更新应答至该客户端之后,根据该推送更新应答发送第三媒体数据的推送承诺至该客户端;根据该推送承诺推送该第三媒体数据至该客户端。
在本发明的实施例中,该发送流终止命令至该客户端,该流终止命令用于终止预留的该第二媒体数据的推送流包括:如果该推送更新指示中存在即时终止标记,在该推送流中立即发送流终止命令至该客户端,终止该推送流;如果该推送更新指示中不存在即时终止标记,完成该推送流中正在推送的该第二媒体数据至该客户端,然后在该推送流中发送流终止命令至该客户端,终止该推送流。
在本实施例中还提供了一种HTTP流媒体传输装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的一种HTTP流媒体传输装置的结构框图一,如图7所示,该装置位于终端中,包括:
第一发送模块72,用于发送第一媒体数据的获取请求至服务器,该获取请求中携带第二媒体数据的推送指示;
第一接收模块74,用于接收该服务器返回的该第一媒体数据、该第二媒体数据的推送应答,以及该服务器根据该推送应答发送的该第二媒体数据的推送承诺;
第二发送模块76,用于发送流终止命令至该服务器,该流终止命令用于终止该服务器根据该推送承诺预留的该第二媒体数据的推送流。
通过上述装置,解决了尚不存在有效的HTTP流媒体推送更新解决方案的问题,完善了HTTP流媒体传输会话中的推送更新机制。
在本发明的实施例中,图8是根据本发明实施例的一种HTTP流媒体传输装置的结构框图二,除了包括图7的第一发送模块72和第一接收模块74,还包括:
第二接收模块82,用于接收该服务器根据该推送应答发送的该第二媒体数据的推送承诺之后,接收该服务器根据该推送承诺推送的该第二媒体数据。
第三发送模块84,用于发送流终止命令至该服务器,该流终止命令用于终止该服务器根据该推送承诺预留的尚未完成推送该第二媒体数据的推送流。
在本发明的实施例中,图9是根据本发明实施例的一种HTTP流媒体传输装置的结构框图三,除了包括图7的模块外,该装置还包括:
第一设置模块92,用于该发送流终止命令至该服务器之前,在该流终止命令中设置即时终止标记值,该即时终止标记用于指示该服务器在该推送流中立即停止推送该第二媒体数据,并终止该推送流。
在本发明的实施例中,图10是根据本发明实施例的一种HTTP流媒体传输装置的结构框图四,除了包括图7的模块外,该装置还包括:
第二设置模块102,用于该发送流终止命令至该服务器之前,在该流终止命令中设置即时终止标记值,该即时终止标记用于指示该服务器在该推送流中完成推送该第二媒体数据,然后终止该推送流。
图11是根据本发明实施例的一种HTTP流媒体传输装置的结构框图五,该装置位于服务器中,包括:
第四接收模块112,用于接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送指示;
第四发送模块114,用于返回该第一媒体数据、该第二媒体数据的推送应答,并根据该推送应答发送该第二媒体数据的推送承诺至该客户端;
第五接收模块116,用于接收该客户端发送的流终止命令,并根据该流终止命令终止根据该推送承诺预留的该第二媒体数据的推送流。
图12是根据本发明实施例的一种HTTP流媒体传输装置的结构框图六,除了包括图11的第四接收模块112和第四发送模块114,还包括:
第五发送模块122,用于根据该推送应答发送该第二媒体数据的推送承诺至该客户端之后,根据该推送承诺推送该第二媒体数据至该客户端;
第六接收模块124,用于接收该客户端发送的流终止命令,并根据该流终止命令终止根据该推送承诺预留的尚未完成推送该第二媒体数据的推送流。
在本发明的实施例中,该第五接收模块116包括:
第一终止单元,用于如果该流终止命令中存在即时终止标记,在该推送流中立即停止推送该第二媒体数据,并终止该推送流;
第二终止单元,用于如果该流终止命令中不存在即时终止标记,在该推送流中完成推送该第二媒体数据,然后终止该推送流。
图13是根据本发明实施例的一种HTTP流媒体传输装置的结构框图七,该装置位于终端中,包括:
第六发送模块132,用于发送第一媒体数据的获取请求至服务器,该获取请求中携带第二媒体数据的推送更新指示;
第七接收模块134,用于接收该服务器返回的该第一媒体数据,以及该第二媒体数据的推送更新应答;
第八接收模块136,用于接收该服务器发送的流终止命令,根据该流终止命令终止接收该服务器推送的该第二媒体数据。
在本发明的实施例中,图14是根据本发明实施例的一种HTTP流媒体传输装置的结构框图八,除了包括图13的第六发送模块132,还包括:
第九接收模块142,用于该发送第一媒体数据的获取请求至服务器之后,接收该服务器发送的该第二媒体数据的推送承诺;
第十接收模块144,用于接收该服务器发送的流终止命令,根据该流终止命令终止接收该服务器根据该推送承诺尚未完成推送的该第二媒体数据。
在本发明的实施例中,图15是根据本发明实施例的一种HTTP流媒体传输装置的结构框图九,除了包括图13的第六发送模块132和第七接收模块134,还包括:
第十一接收模块152,用于接收该第二媒体数据的推送更新应答之后,接收该服务器根据该推送更新应答发送的第三媒体数据的推送承诺;
第十二接收模块154,用于接收该服务器根据该推送承诺推送的该第三媒体数据。
图16是根据本发明实施例的一种HTTP流媒体传输装置的结构框图十,该装置位于服务器中,包括:
第十三接收模块162,接收客户端发送的第一媒体数据的获取请求,该获取请求中携带第二媒体数据的推送更新指示;
第七发送模块164,用于返回该第一媒体数据,以及该第二媒体数据的推送更新应答至该客户端;
第八发送模块166,用于发送流终止命令至该客户端,该流终止命令用于终止预留的该第二媒体数据的推送流。
在本发明的实施例中,图17是根据本发明实施例的一种HTTP流媒体传输装置的结构框图十一,除了包括图16的第十三接收模块162,还包括:
第九发送模块172,用于该接收客户端发送的第一媒体数据的获取请求之后,发送该第二媒体数据的推送承诺至该客户端;
第十发送模块174,用于发送流终止命令至该客户端,该流终止命令用于终止根据该推送承诺预留的尚未完成推送该第二媒体数据的推送流。
在本发明的实施例中,图18是根据本发明实施例的一种HTTP流媒体传输装置的结构框图十二,除了包括图16的第十三接收模块162和第七发送模块164,还包括:
第十一发送模块182,用于该返回该第一媒体数据,以及该第二媒体数据的推送更新应答至该客户端之后,根据该推送更新应答发送第三媒体数据的推送承诺至该客户端;
第十二发送模块184,用于根据该推送承诺推送该第三媒体数据至该客户端。
在本发明的实施例中,该第八发送模块166包括:
第三终止单元,用于如果该推送更新指示中存在即时终止标记,在该推送流中立即发送流终止命令至该客户端,终止该推送流;
第四终止单元,用于如果该推送更新指示中不存在即时终止标记,完成该推送流中正在推送的该第二媒体数据至该客户端,然后在该推送流中发送流终止命令至该客户端,终止该推送流。
下面结合优选实施例和实施方式对本发明进行详细说明。
本发明优选实施例提供了一种HTTP流媒体传输系统,图19是根据本发明实施例的一种HTTP流媒体传输系统架构的示意图,如图19所示,包括:终端100、流媒体客户端200、HTTP客户端300及其缓存310、网络400,以及服务器500,包括:HTTP服务器510、内容源服务器520。下面对图19中示出的系统进行说明。
终端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。
拉模块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中最适合当前网络带宽和缓存状况的流媒体资源。其中,缓存310提供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文件给DASH客户端提供了足够的HTTP-URL信息用于访问流媒体内容资源,当DASH客户端开始播放一个视频的时候,它根据MPD文件中的信息选择下载适应于当前可用网络带宽和终端缓存状况的媒体片段并进行播放。
在本发明的实施例中,涉及到的自适应流媒体(或者称为动态自适应流媒体)有多种实现方式,例如,可以采用基于HTTP的动态自适应流媒体(Dynamic Adaptive Streamingover HTTP,简称为DASH)。下面以DASH为例对MPD服务器和流媒体服务器进行说明。以下实施例对其他自适应流媒体技术也同样适用。
在本发明的一个优选实施例中,HTTP流媒体客户端向HTTP流媒体服务器发送媒体片段取消命令,请求服务器终止推送不再需要的媒体片段,从而实现HTTP流媒体推送会话更新。其中,该命令包括两个层面处理过程:其一,在接收完毕所有需要的媒体片段之后,客户端首先应关闭由它发起的请求流(Request Stream),避免服务器继续在请求流中为那些不再需要的媒体片段发送推送承诺(PUSH_PROMISE);其二,客户端还应发送推送流(PushStream)关闭请求,关闭服务器为那些不再需要的媒体片段所预留的推送流。此外,为避免造成带宽浪费,客户端在媒体片段取消命令中可以携带指示符,用于指示服务器在终止推送会话之前是否继续发送在接收取消命令时已经推送的媒体片段。
图20是根据本发明优选实施例的基于媒体片段取消命令实现HTTP流媒体推送会话更新的交互流程图。如图20所示,该流程包括如下步骤:
步骤1,客户端创建请求流(request stream),并基于该请求流发送媒体片段获取请求(get_segment)至服务器,请求中携带媒体片段统一资源标识符(segment_uri)参数,用于指定所请求的媒体片段资源,推送指示符(push_directive)参数,用于协商HTTP流媒体推送会话中媒体片段推送策略,以及方案标识(scheme)参数,用于标识方案的版本;
步骤2,服务器返回所请求的媒体片段(segment#i)至客户端,同时返回推送应答(push_ack)参数,完成HTTP流媒体推送会话中媒体片段推送策略应答,以及方案标识参数;在此其间,服务器将为推送应答中所承诺推送的媒体片段预留推送流(push stream);
步骤3~步骤4,服务器基于所预留的推送流,分别推送各个媒体片段(segment#i+1~#i+j)至客户端;
步骤5,客户端发送媒体片段取消(segment_cancel)命令至服务器,请求更新HTTP流媒体推送会话。可选地,所述取消请求中携带即时(immediate)参数,用于指示服务器在接收媒体片段取消命令时,如何处理推送流中正在传输的媒体片段;
步骤6,如果即时参数取值为“true”,则服务器立即终止传输正在推送的媒体片段(segment#i+j+1),并取消推送会话,包括:不再发送媒体片段推送承诺,并关闭已经预留的推送流;如果即时参数取值为“false”,则服务器将继续传输正在推送的媒体片段(segment#i+j+1),然后再取消推送会话(如本实施例所示)。
图21是根据本发明优选实施例的一种HTTP流媒体传输方法的消息交互流程图一。
步骤1:客户端利用标准的HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送第一媒体片段获取请求。其中,HTTP GET消息中的“path”头域被设置为第一媒体片段统一资源标识符URI,用于请求服务器获取第一媒体片段,即步骤1中示例的:path="../rep1/segment1.mp4"。此外,HTTP GET消息中还包含用于请求服务器推送第二媒体片段的“accept-push-policy”头域,即步骤1中示例的:
“accept-push-policy="urn:mpeg:dash:fdh:2015:push-template",
"../rep1/segment$Number$.mp4":{2-6}”,至少包含:
1)推送协议方案统一资源标识符(SchemeID)字段,用于标识推送协议版本;
2)推送指示(PushDirective),用于请求推送会话中所执行的推送策略,包括:
推型类型(PushType)字段,用于描述“推送策略”中被推送媒体片段的表示类型,譬如:“push-next”表示请求推送后续特定数量的媒体片段,“push-time”表示请求推送后续特定播放时间的媒体片段,“push-template”表示请求推送模板中明确指定的媒体片段,
以及推送参数(PushParams)字段,携带“推送策略”中被推送媒体片段的推送参数值。
在本实施例中,客户端请求获取表示(Representation)"rep1"中的"segment1"媒体片段,同时请求推送"rep1"中后续编号"segment2"至"segment6"的5个媒体片段。
步骤2:服务器返回HTTP 200OK响应消息(HTTP/2协议中HEADERS帧),作为所述第一媒体片段获取响应。其中,HTTP 200OK响应消息包含用于返回第二媒体片段推送应答的“accept-push-policy”头域,即步骤2中示例的:“accept-push-policy="urn:mpeg:dash:fdh:2015:push-template","../rep1/segment$Number$.mp4":{2-6}”,至少包含:
1)推送协议方案统一资源标识符(SchemeID)字段,用于标识推送协议版本;
2)推送应答(PushAck),用于返回服务器在推送会话中所接收的推送策略,并且携带与请求中具有相同类型的推型类型字段、推送参数字段。
在本实施例中,服务器所返回的推送应答表示可以立即为推送指示所请求推送的"rep1"中"segment2"至"segment6"的5个媒体片段发送推送承诺。
步骤3~4:服务器根据在步骤2中推送应答所返回的推送参数值为每一个确认推送的媒体片段(即,"segment2"至"segment6"的5个媒体片段)发送推送承诺消息(HTTP/2协议中的PUSH_PROMISE帧)。其中,服务器将PUSH_PROMISE帧中“path”头域设置为每一个确认被推送媒体片段统一资源标识符URI,并且利用客户端在步骤1所发起的请求流中发送所述PUSH_PROMISE帧。
步骤5:服务器返回客户端请求获取的媒体片段,即本实施例中的"../rep1/segment1.mp4"。
步骤6~7:服务器为"rep1"中编号"segment2"的媒体片段发起推送流,推送"rep1"中编号"segment2"的媒体片段至客户端。
步骤8~10:由于检测到当前可用网络带宽发生变化,或者媒体播放引擎缓存状态等原因,客户端不再希望接收某些原本计划推送的媒体片段。本实施例假定,客户端不再需要服务器推送"segment3"至"segment6"的4个媒体片段。客户端为每一个不再需要推送的媒体片段,向服务器发送流重置(RST_STREAM)帧,并将该帧中携带的错误码(Error Code)设置为“CANCEL(0x8)”,以关闭服务器为"segment3"至"segment6"的4个媒体片段所预留的推送流,即编号为Stream4,Stream6,Stream8和Stream10的推送流。
可选地,客户端可以为所述流重置帧设置“即时”(immediate)标记(Flag),用于指示服务器在接收流重置帧时,如何处理推送流中正在传输的媒体片段。“即时”标记定义如下:
IMMEDIATE(0x1):第0个比特一旦被设置,则表示请求方指示接收方立即关闭流重置帧所引用的流,终止该流中正在进行的数据传输。否则,接收方在完成数据传输后再关闭该流。
假定在本实施例中,客户端向服务器发送流重置帧中并未设置“即时”标记,并且服务器在编号Stream4推送流中接收流重置帧时,服务器正在推送"rep1"中"segment3"至客户端。根据上述说明,服务器将在步骤9~10继续推送"rep1"中编号"segment3"的媒体片段至客户端,然后再关闭编号Stream4的推送流。
步骤11~12:接收客户端发送的流重置帧后,服务器关闭编号为Stream6,Stream8和Stream10的推送流,不再推送其他媒体片段至客户端。
在本发明的一个优选实施例中,HTTP流媒体客户端向HTTP流媒体服务器发送媒体片段更新命令,请求重新协商媒体片段的推送策略,从而实现HTTP流媒体推送会话更新。其中,客户端在它发起的请求流中发送媒体片段更新请求,请求服务器更新推送会话中的推送策略;根据重新协商的推送策略,服务器将为不再需要推送的媒体片段发送推送流(PushStream)关闭请求。同时,服务器还将为新的需要推送的媒体片段发送推送承诺(PUSH_PROMISE)。
图22是根据本发明优选实施例的基于媒体片段更新命令实现HTTP流媒体推送会话更新的交互流程图。如图22所示,该流程包括如下步骤:
步骤1,客户端创建请求流(request stream),并基于该请求流发送媒体片段获取请求(get_segment)至服务器,请求中携带媒体片段统一资源标识符(segment_uri)参数,用于指定所请求的媒体片段资源,推送指示符(push_directive)参数,用于协商HTTP流媒体推送会话中媒体片段推送策略,以及方案标识(scheme)参数,用于标识方案的版本;
步骤2,服务器返回所请求的媒体片段(segment#i)至客户端,同时返回推送应答(push_ack)参数,完成HTTP流媒体推送会话中媒体片段推送策略应答,以及方案标识参数;在此其间,服务器将为推送应答中所承诺推送的媒体片段预留推送流(push stream);
步骤3~步骤4,服务器基于所预留的推送流,分别推送各个媒体片段(segment#i+1~#i+j)至客户端;
步骤5,客户端发送媒体片段更新(segment_update)命令至服务器,请求更新HTTP流媒体推送会话。可选地,所述取消请求中携带即时(immediate)参数,用于指示服务器在接收媒体片段更新命令是时,如何处理推送流中正在传输的媒体片段;
步骤6,如果即时参数取值为“true”,则服务器立即终止传输正在推送的媒体片段(segment#i+j+1),并取消推送会话(如本实施例所示),包括:不再发送媒体片段推送承诺,并关闭已经预留的推送流;如果即时参数取值为“false”,则服务器将继续传输正在推送的媒体片段(segment#i+j+1),然后再取消推送会话。
图23是根据本发明优选实施例的另一种HTTP流媒体传输方法的消息交互流程图二。
步骤1~7:类似实施例一图21中相关执行步骤,此处不再重复。
步骤8:本实施例假定,客户端请求推送会话仅仅推送"rep1"中的"segment2"媒体片段,不再推送"rep1"中编号"segment3"至"segment6"的媒体片段。客户端利用标准HTTPGET消息(HTTP/2协议中的HEADERS帧)向服务器发送媒体片段推送会话更新请求。其中,HTTP GET消息中“path”头域值保持不变,仍然为所请求获取的媒体片段统一资源标识符URI,即步骤1中示例的:path="../rep1/segment1.mp4"。此外,HTTP GET消息还包含用于请求服务器推送第二媒体片段的“accept-push-policy”头域,即步骤8中示例的:“accept-push-policy="urn:mpeg:dash:fdh:2015:push-update","../rep1/segment$Number$.mp4":{2}”,至少包含:
1)推送协议方案统一资源标识符(SchemeID)字段,用于标识推送协议版本;
2)推送更新指示(PushUpdateDirective),用于更新推送会话中所执行的推送策略,包括:
推型类型(PushType)字段,用于描述“推送策略”中被推送媒体片段的表示类型,譬如:“push-next”表示请求推送后续特定数量的媒体片段,“push-time”表示请求推送后续特定播放时间的媒体片段,“push-template”表示请求推送模板中明确指定的媒体片段,
以及推送参数(PushParams)字段,携带“推送策略”中被推送媒体片段的推送参数值。
其中,推送更新指示所表达的推送类型默认与推送会话中推送指示的推送类型保持一致。
可选地,客户端可以为所述“accept-push-policy”头域设置“即时”(immediate)字段,用于指示服务器在接收推送更新请求时,如何处理推送流中正在传输的媒体片段。一旦携带“即时”字段,服务器应立即终止推送流中正在进行的数据传输,关闭所有推送流;否则,服务器在完成数据传输后再关闭推送流。
步骤9:服务器返回HTTP 200OK响应消息(HTTP/2协议中HEADERS帧),作为所述媒体片段推送会话更新响应。其中,HTTP 200OK响应消息包含用于返回第二媒体片段推送应答的“accept-push-policy”头域,即步骤9中示例的:“accept-push-policy="urn:mpeg:dash:fdh:2015:push-update","../rep1/segment$Number$.mp4":{2}”,至少包含:
1)推送协议方案统一资源标识符(SchemeID)字段,用于标识推送协议版本;
2)推送更新应答(PushUpdateAck),用于返回服务器在推送会话中所更新的推送策略,并且携带与推送更新请求中具有相同类型的推型类型字段、推送参数字段。
在本实施例中,服务器所返回的推送更新应答表示可以更新媒体片段推送会话,仅推送更新应答中所指定的"rep1"中"segment2"至客户端。
步骤10~11:服务器为每一个不再需要推送的媒体片段向客户端发送流重置(RST_STREAM)帧,并将该帧中携带的错误码(Error Code)设置为“CANCEL(0x8)”,以关闭服务器为编号"segment3"至"segment6"的媒体片段所预留的推送流,即编号为Stream4,Stream6,Stream8和Stream10的推送流。
图24是根据本发明优选实施例的另一种HTTP流媒体传输方法的消息交互流程图三。
步骤1~7:类似实施例一图21中相关执行步骤,此处不再重复。
步骤8:本实施例假定,客户端请求推送会话不再推送"rep1"中其他媒体片段,请求推送"rep2"中编号"segment3"至"segment6"的媒体片段。客户端利用标准HTTP GET消息(HTTP/2协议中的HEADERS帧)向服务器发送媒体片段推送会话更新请求。其中,HTTP GET消息中“path”头域值保持不变,仍然为所请求获取的媒体片段统一资源标识符URI,即步骤1中示例的:path="../rep1/segment1.mp4"。类似地,HTTP GET消息包含用于请求服务器推送第二媒体片段的“accept-push-policy”头域,即步骤8中示例的:“accept-push-policy="urn:mpeg:dash:fdh:2015:push-update","../rep2/segment$Number$.mp4":{3-6}”。
可选地,客户端可以为所述“accept-push-policy”头域设置“即时”(immediate)字段,用于指示服务器在接收推送更新请求时,如何处理推送流中正在传输的媒体片段。一旦携带“即时”字段,服务器应立即终止推送流中正在进行的数据传输,关闭所有推送流;否则,服务器在完成数据传输后再关闭推送流。
步骤9:服务器返回HTTP 200OK响应消息(HTTP/2协议中HEADERS帧),作为所述媒体片段推送会话更新响应。其中,HTTP 200OK响应消息包含用于返回第二媒体片段推送应答的“accept-push-policy”头域,即步骤9中示例的:“accept-push-policy="urn:mpeg:dash:fdh:2015:push-update","../rep1/segment$Number$.mp4":{2}”。
在本实施例中,服务器所返回的推送更新应答表示,不再推送"rep1"中其他媒体片段,而推送"rep2"中编号"segment3"至"segment6"的媒体片段至客户端。
与图23中相关步骤类似,服务器为每一个不再需要推送的媒体片段向客户端发送流重置(RST_STREAM)帧,关闭服务器为"rep1"中其他媒体片段所预留的推送流。
步骤10~11:根据重新协商的推送策略,服务器向客户端发送媒体片段推送承诺,并基于预留的推送流推送"rep2"中编号"segment3"至"segment6"的媒体片段至客户端。
图25是根据本发明实施例的一种HTTP流媒体传输装置的结构框图,如图25所示,该装置包括获取模块252、第一确定模块254和第二确定模块256,下面对该自适应媒体流处理装置进行说明。
获取模块252,用于获取传输流中携带的自适应流媒体的位置信息和时间信息;第一确定模块254,连接至上述获取模块252,用于根据上述位置信息确定自适应流媒体中需要与传输流进行时间轴对齐的媒体片段;第二确定模块256,连接至上述第一确定模块254,用于根据时间信息确定自适应流媒体中媒体片段的媒体呈现时间相对于传输流时间轴的显示时间戳。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例该的方法。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行上述实施例的方法步骤的程序代码:
可选地,存储介质还被设置为存储用于执行上述方法步骤的程序代码:
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例的方法步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种HTTP流媒体传输方法,其特征在于,包括:
发送第一媒体数据的获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
接收所述服务器返回的所述第一媒体数据、所述第二媒体数据的推送应答,以及所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;发送流终止命令至所述服务器,所述流终止命令用于终止所述服务器根据所述推送承诺预留的所述第二媒体数据的推送流;
所述发送流终止命令至所述服务器之前,所述方法还包括:
在所述流终止命令中设置即时终止标记,所述即时终止标记用于指示所述服务器在所述推送流中立即停止推送所述第二媒体数据,并终止所述推送流,或用于指示所述服务器在所述推送流中完成推送所述第二媒体数据,然后终止所述推送流。
2.根据权利要求1所述的方法,其特征在于,接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺之后,所述方法还包括:
接收所述服务器根据所述推送承诺推送的所述第二媒体数据;
发送流终止命令至所述服务器,所述流终止命令用于终止所述服务器根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
3.一种HTTP流媒体传输方法,其特征在于,包括:
接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;
返回所述第一媒体数据、所述第二媒体数据的推送应答,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
接收所述客户端发送的流终止命令,并根据所述流终止命令终止根据所述推送承诺预留的所述第二媒体数据的推送流;
所述根据所述流终止命令终止根据所述推送承诺预留的所述第二媒体数据的推送流包括:
如果所述流终止命令中存在即时终止标记,在所述推送流中立即停止推送所述第二媒体数据,并终止所述推送流;
如果所述流终止命令中不存在即时终止标记,在所述推送流中完成推送所述第二媒体数据,然后终止所述推送流。
4.根据权利要求3所述的方法,其特征在于,根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端之后,所述方法还包括:
根据所述推送承诺推送所述第二媒体数据至所述客户端;
接收所述客户端发送的流终止命令,并根据所述流终止命令终止根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
5.一种HTTP流媒体传输方法,其特征在于,包括:
发送第一媒体数据的获取请求至服务器,所述获取请求中携带第二媒体数据的推送更新指示;
接收所述服务器返回的所述第一媒体数据,以及所述第二媒体数据的推送更新应答;
接收所述服务器发送的流终止命令,根据所述流终止命令终止接收所述服务器推送的所述第二媒体数据;
所述根据所述流终止命令终止接收所述服务器推送的所述第二媒体数据包括:
如果所述推送更新指示中存在即时终止标记,立即终止接收所述第二媒体数据;
如果所述推送更新指示中不存在所述即时终止标记,完成接收正在推送的所述第二媒体数据。
6.根据权利要求5所述的方法,其特征在于,所述发送第一媒体数据的获取请求至服务器之后,所述方法还包括:
接收所述服务器发送的所述第二媒体数据的推送承诺;
接收所述服务器发送的流终止命令,根据所述流终止命令终止接收所述服务器根据所述推送承诺尚未完成推送的所述第二媒体数据。
7.根据权利要求5或6所述的方法,其特征在于,接收所述第二媒体数据的推送更新应答之后,所述方法还包括:
接收所述服务器根据所述推送更新应答发送的第三媒体数据的推送承诺;
接收所述服务器根据所述推送承诺推送的所述第三媒体数据。
8.一种HTTP流媒体传输方法,其特征在于,包括:
接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送更新指示;
返回所述第一媒体数据,以及所述第二媒体数据的推送更新应答至所述客户端;发送流终止命令至所述客户端,所述流终止命令用于终止预留的所述第二媒体数据的推送流;
所述发送流终止命令至所述客户端,所述流终止命令用于终止预留的所述第二媒体数据的推送流包括:
如果所述推送更新指示中存在即时终止标记,在所述推送流中立即发送所述流终止命令至所述客户端,终止所述推送流;
如果所述推送更新指示中不存在所述即时终止标记,完成所述推送流中正在推送的所述第二媒体数据至所述客户端,然后在所述推送流中发送所述流终止命令至所述客户端,终止所述推送流。
9.根据权利要求8所述的方法,其特征在于,所述接收客户端发送的第一媒体数据的获取请求之后,所述方法还包括:
发送所述第二媒体数据的推送承诺至所述客户端;
发送流终止命令至所述客户端,所述流终止命令用于终止根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
10.根据权利要求8或9所述的方法,其特征在于,所述返回所述第二媒体数据的推送更新应答至所述客户端之后,所述方法还包括:
根据所述推送更新应答发送第三媒体数据的推送承诺至所述客户端;
根据所述推送承诺推送所述第三媒体数据至所述客户端。
11.一种HTTP流媒体传输装置,位于终端中,其特征在于,包括:
第一发送模块,用于发送第一媒体数据的获取请求至服务器,所述获取请求中携带第二媒体数据的推送指示;
第一接收模块,用于接收所述服务器返回的所述第一媒体数据、所述第二媒体数据的推送应答,以及所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺;
第二发送模块,用于发送流终止命令至所述服务器,所述流终止命令用于终止所述服务器根据所述推送承诺预留的所述第二媒体数据的推送流;
第一设置模块,用于所述发送流终止命令至所述服务器之前,在所述流终止命令中设置即时终止标记,所述即时终止标记用于指示所述服务器在所述推送流中立即停止推送所述第二媒体数据,并终止所述推送流;
第二设置模块,用于所述发送流终止命令至所述服务器之前,在所述流终止命令中设置所述即时终止标记,指示所述服务器在所述推送流中完成推送所述第二媒体数据,然后终止所述推送流。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述服务器根据所述推送应答发送的所述第二媒体数据的推送承诺之后,接收所述服务器根据所述推送承诺推送的所述第二媒体数据;
第三发送模块,用于发送流终止命令至所述服务器,所述流终止命令用于终止所述服务器根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
13.一种HTTP流媒体传输装置,位于服务器中,其特征在于,包括:
第四接收模块,用于接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送指示;
第四发送模块,用于返回所述第一媒体数据、所述第二媒体数据的推送应答,并根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端;
第五接收模块,用于接收所述客户端发送的流终止命令,并根据所述流终止命令终止根据所述推送承诺预留的所述第二媒体数据的推送流;
所述第五接收模块包括:
第一终止单元,用于如果所述流终止命令中存在即时终止标记,在所述推送流中立即停止推送所述第二媒体数据,并终止所述推送流;
第二终止单元,用于如果所述流终止命令中不存在即时终止标记,在所述推送流中完成推送所述第二媒体数据,然后终止所述推送流。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第五发送模块,用于根据所述推送应答发送所述第二媒体数据的推送承诺至所述客户端之后,根据所述推送承诺推送所述第二媒体数据至所述客户端;
第六接收模块,用于接收所述客户端发送的流终止命令,并根据所述流终止命令终止根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
15.一种HTTP流媒体传输装置,位于终端中,其特征在于,包括:
第六发送模块,用于发送第一媒体数据的获取请求至服务器,所述获取请求中携带第二媒体数据的推送更新指示;
第七接收模块,用于接收所述服务器返回的所述第一媒体数据,以及所述第二媒体数据的推送更新应答;
第八接收模块,用于接收所述服务器发送的流终止命令,根据所述流终止命令终止接收所述服务器推送的所述第二媒体数据;
所述第八接收模块包括:
第五终止单元,用于如果所述推送更新指示中存在即时终止标记,立即终止接收所述第二媒体数据;
第六终止单元,用于如果所述推送更新指示中不存在即时终止标记,完成接收正在推送的所述第二媒体数据。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第九接收模块,用于所述发送第一媒体数据的获取请求至服务器之后,接收所述服务器发送的所述第二媒体数据的推送承诺;
第十接收模块,用于接收所述服务器发送的流终止命令,根据所述流终止命令终止接收所述服务器根据所述推送承诺尚未完成推送的所述第二媒体数据。
17.根据权利要求15或16所述的装置,其特征在于,所述装置还包括:
第十一接收模块,用于接收所述第二媒体数据的推送更新应答之后,接收所述服务器根据所述推送更新应答发送的第三媒体数据的推送承诺;
第十二接收模块,用于接收所述服务器根据所述推送承诺推送的所述第三媒体数据。
18.一种HTTP流媒体传输装置,位于服务器中,其特征在于,包括:
第十三接收模块,接收客户端发送的第一媒体数据的获取请求,所述获取请求中携带第二媒体数据的推送更新指示;
第七发送模块,用于返回所述第一媒体数据,以及所述第二媒体数据的推送更新应答至所述客户端;
第八发送模块,用于发送流终止命令至所述客户端,所述流终止命令用于终止预留的所述第二媒体数据的推送流;
所述第八发送模块包括:
第三终止单元,用于如果所述推送更新指示中存在即时终止标记,在所述推送流中立即发送流终止命令至所述客户端,终止所述推送流;
第四终止单元,用于如果所述推送更新指示中不存在即时终止标记,完成所述推送流中正在推送的所述第二媒体数据至所述客户端,然后在所述推送流中发送流终止命令至所述客户端,终止所述推送流。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
第九发送模块,用于所述接收客户端发送的第一媒体数据的获取请求之后,发送所述第二媒体数据的推送承诺至所述客户端;
第十发送模块,用于发送流终止命令至所述客户端,所述流终止命令用于终止根据所述推送承诺预留的尚未完成推送所述第二媒体数据的推送流。
20.根据权利要求18或19所述的装置,其特征在于,所述装置还包括:
第十一发送模块,用于所述返回所述第一媒体数据,以及所述第二媒体数据的推送更新应答至所述客户端之后,根据所述推送更新应答发送第三媒体数据的推送承诺至所述客户端;
第十二发送模块,用于根据所述推送承诺推送所述第三媒体数据至所述客户端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511033565.0A CN106936808B (zh) | 2015-12-31 | 2015-12-31 | Http流媒体传输方法及装置 |
PCT/CN2016/112430 WO2017114393A1 (zh) | 2015-12-31 | 2016-12-27 | Http流媒体传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511033565.0A CN106936808B (zh) | 2015-12-31 | 2015-12-31 | Http流媒体传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106936808A CN106936808A (zh) | 2017-07-07 |
CN106936808B true CN106936808B (zh) | 2021-01-26 |
Family
ID=59224571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511033565.0A Active CN106936808B (zh) | 2015-12-31 | 2015-12-31 | Http流媒体传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106936808B (zh) |
WO (1) | WO2017114393A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111654725B (zh) * | 2019-03-04 | 2021-12-21 | 北京开广信息技术有限公司 | 媒体流的实时接收方法及客户端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102714662A (zh) * | 2010-01-18 | 2012-10-03 | 瑞典爱立信有限公司 | 用于http媒体流分发的方法和装置 |
CN103716371A (zh) * | 2013-10-31 | 2014-04-09 | 国家电网公司 | 一种Web实时数据主动推送方法 |
GB2517060A (en) * | 2013-07-12 | 2015-02-11 | Canon Kk | Adaptive data streaming method with push messages control |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102122002B1 (ko) * | 2012-07-19 | 2020-06-12 | 글랜스 네트웍스, 인크 | 다른 형태의 정보 공유를 통한 코브라우징의 통합 |
GB2516641B (en) * | 2013-07-26 | 2015-12-16 | Canon Kk | Method and server device for exchanging information items with a plurality of client entities |
US9813515B2 (en) * | 2013-10-04 | 2017-11-07 | Akamai Technologies, Inc. | Systems and methods for caching content with notification-based invalidation with extension to clients |
GB2527116B (en) * | 2014-06-12 | 2017-09-20 | Canon Kk | Adaptative persistent push |
CN104408132B (zh) * | 2014-11-28 | 2018-03-02 | 北京京东尚科信息技术有限公司 | 数据推送方法和系统 |
-
2015
- 2015-12-31 CN CN201511033565.0A patent/CN106936808B/zh active Active
-
2016
- 2016-12-27 WO PCT/CN2016/112430 patent/WO2017114393A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102714662A (zh) * | 2010-01-18 | 2012-10-03 | 瑞典爱立信有限公司 | 用于http媒体流分发的方法和装置 |
GB2517060A (en) * | 2013-07-12 | 2015-02-11 | Canon Kk | Adaptive data streaming method with push messages control |
CN103716371A (zh) * | 2013-10-31 | 2014-04-09 | 国家电网公司 | 一种Web实时数据主动推送方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017114393A1 (zh) | 2017-07-06 |
CN106936808A (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108063769B (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
EP2592809B1 (en) | Method and device for supporting time shift review in dynamic hypertext transfer protocol streaming transmission solution | |
CN102232298B (zh) | 媒体内容的传输处理方法、装置与系统 | |
US20120060178A1 (en) | Continuable communication management apparatus and continuable communication managing method | |
EP2493191B1 (en) | Method, device and system for realizing hierarchically requesting content in http streaming system | |
CN110933517B (zh) | 码率切换方法、客户端和计算机可读存储介质 | |
CN107124668B (zh) | 流式传输装置及方法、流式传输服务系统及记录介质 | |
CN102577420A (zh) | 用于能够访问广播网络和互联网网络的客户端接收应用的方法和设备 | |
CA2850416C (en) | Method and device for transmitting streaming media | |
EP3047627B1 (en) | Dash representations adaptations in network | |
CN106604077B (zh) | 自适应流媒体传输方法及装置 | |
CN106303682B (zh) | 频道切换的方法、装置、终端及服务器 | |
US20220060532A1 (en) | Method for transmitting resources and electronic device | |
CN117596232A (zh) | 流媒体快速启动方法、装置和系统 | |
KR20170141677A (ko) | 수신 장치, 송신 장치 및 데이터 처리 방법 | |
CN109151614B (zh) | 一种降低hls直播播放延迟的方法及装置 | |
CN110113298B (zh) | 数据传输方法、装置、信令服务器和计算机可读介质 | |
WO2013185547A1 (zh) | 一种缓存服务器的服务方法、缓存服务器及系统 | |
EP2477397A1 (en) | Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections | |
CN110832821B (zh) | 下载视听内容的方法和设备 | |
CN108271039B (zh) | 一种文件发送方法及装置 | |
JP2014090419A (ja) | 通信パラメータに従ってコンテンツをダウンロードするための方法、および、関連するコンテンツ受信機 | |
CN104854872A (zh) | 发送装置、传输方法、接收装置以及接收方法 | |
CN106936808B (zh) | Http流媒体传输方法及装置 | |
CN108737355A (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 |