CN107810624B - 用于检索媒体数据的方法、设备和计算机可读存储介质 - Google Patents
用于检索媒体数据的方法、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN107810624B CN107810624B CN201680035148.6A CN201680035148A CN107810624B CN 107810624 B CN107810624 B CN 107810624B CN 201680035148 A CN201680035148 A CN 201680035148A CN 107810624 B CN107810624 B CN 107810624B
- Authority
- CN
- China
- Prior art keywords
- data
- media data
- unit
- request
- media
- 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
- 238000000034 method Methods 0.000 title claims description 103
- 230000003044 adaptive effect Effects 0.000 claims abstract description 3
- 239000004576 sand Substances 0.000 claims description 45
- 230000004044 response Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 12
- 230000014509 gene expression Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 58
- 230000000875 corresponding effect Effects 0.000 description 40
- 239000012634 fragment Substances 0.000 description 39
- 230000006978 adaptation Effects 0.000 description 23
- 238000005538 encapsulation Methods 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 12
- 238000002360 preparation method Methods 0.000 description 12
- 230000002123 temporal effect Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 239000012092 media component Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101000995861 Arabidopsis thaliana Regulatory protein NPR1 Proteins 0.000 description 2
- 101100412093 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rec16 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000037406 food intake Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000002716 delivery method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- 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/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4622—Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6131—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一个示例客户端设备包括用于取决于广播服务是否可用的经由广播服务或者单播服务接收媒体数据的中间件单元。所述客户端设备还包括诸如是通过HTTP的动态自适应流传送(DASH)客户端之类的流传送客户端。所述DASH客户端发送对于经由所述中间件单元检索媒体数据的请求。所述中间件单元可以高速缓存经由所述广播服务被接收的媒体数据,以使得甚至在所述广播服务不是活跃的时,如果所述流传送客户端请求之前经由所述广播服务被接收的媒体数据,则所述中间件单元可以从所述高速缓存向所述流传送客户端提供所述媒体数据,而不是从在来自所述流传送客户端的所述请求中指定的外部服务器设备请求所述媒体数据。
Description
本申请要求于2015年6月18日递交的美国临时申请No.62/181,684的优先权和于2015年6月23日递交的美国临时申请No.62/183,615的利益,以引用方式将所述申请中的每件申请的全部内容并入本文。
技术领域
本公开内容涉及对经编码的视频数据的存储和传输。
背景技术
数字视频能力可以被并入各种设备,这样的设备包括数字电视、数字直接广播***、无线广播***、个人数字助理(PDA)、膝上型或者桌面型计算机、数字照相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或者卫星无线电话、视频电话会议设备等。数字视频设备实现视频压缩技术(诸如,在由MPEG-2、MPEG-4、ITU-T H.263或者ITU-T H.264/MPEG-4,部分10,高级视频编码(AVC)定义的标准或者这样的标准的扩展中描述的那些视频压缩技术)以更高效地发送和接收数字视频信息。
视频压缩技术执行空间预测和/或时间预测以减少或者移除视频序列中固有的冗余度。对于基于块的视频编码,可以将视频帧或者切片划分成宏块。可以对每个宏块进行进一步划分。使用就相邻的宏块而言的空间预测对经帧内编码的(I)帧或者切片中的宏块进行编码。经帧间编码的(P或者B)帧或者切片中的宏块可以使用就同一个帧或者切片中的相邻的宏块而言的空间预测或者就其它的参考帧而言的时间预测。
在视频数据已经被编码之后,可以对视频数据进行分组化以用于传输或者存储。可以将视频数据汇编成符合多种标准(诸如,国际标准化组织基本媒体文件格式以及其扩展,例如,AVC)中的任一种标准的视频文件。
可以用多种传输方法传递视频(以及,概括地说,数据)。一种这样的方法是第三代合作伙伴计划(3GPP)网络中的多媒体广播/多播服务(MBMS)或者增强型MBMS(eMBMS)。MBMS和eMBMS允许使用单个传递管道向大量用户传递感兴趣的服务。具体地说,服务器设备可以例如使用可以包括经由MBMS或者eMBMS的广播或者多播传递的3GPP向客户端设备发送媒体数据。额外地或者替换地,服务器设备可以例如根据超文本传输协议(HTTP)或者通过HTTP的动态自适应流传送(DASH)使用单播发送媒体数据。
发明内容
概括地说,本申请涉及与广播或者多播与单播媒体数据传输技术之间的切换相关的技术。具体地说,这样的切换可以基于根据客户端设备的地理位置广播或者多播服务是否可用而发生。即,所述客户端设备可以被放置在具体的服务区域中,该服务区域可以或者可以不为媒体数据的传输提供广播或者多播服务。在所述广播或者多播服务可用时,所述客户端设备可以使用所述广播或者多播服务接收媒体数据,而在所述广播或者多播服务不可用时,所述客户端设备可以使用单播接收所述媒体数据。
在媒体数据例如经由广播或者多播被接收时,所述客户端设备高速缓存所述媒体数据以用于由诸如是DASH客户端(例如,web浏览器插件)这样的目标应用进行的随后的检索。有时,所述客户端设备可以从广播或者多播切换到单播,同时之前经由广播或者多播被接收的媒体数据仍然被高速缓存。因此,本公开内容的技术包括在从广播或者多播向单播的切换之后确定是否这样的媒体数据被高速缓存,以及如果是,则确定是否要使用所高速缓存的媒体数据,而不是立即经由单播来检索类似的媒体数据。
在一个示例中,一种检索媒体数据的方法被客户端设备的中间件单元执行,其中,所述中间件单元控制所述客户端设备的超文本传输协议(HTTP)代理单元,并且其中,所述客户端设备包括本地服务器单元。所述方法包括:经由广播服务接收媒体会话的第一媒体数据集合;确定在接收所述第一媒体数据集合之后所述广播服务不再可用;基于对所述广播服务不再可用的所述确定经由单播服务从由所述客户端设备执行的流传送应用接收对于检索所述媒体会话的第二媒体数据集合的请求,其中,所述请求指定所述客户端设备外部的地址;以及响应于所述请求,在所述第二媒体数据集合在之前经由所述广播服务被接收时,使所述HTTP代理单元将所述请求重定向到所述本地服务器单元而不是所述客户端设备外部的所述地址,其中,所述第二媒体数据集合是之前经由所述广播服务被接收的。
在另一个示例中,一种用于检索的设备包括超文本传输协议(HTTP)代理单元、本地服务器单元和中间件单元。所述中间件单元控制所述HTTP代理单元,并且所述中间件单元是由包括逻辑电路的基于硬件的处理单元实现的。所述中间件单元被配置为执行以下操作:经由广播服务接收媒体会话的第一媒体数据集合;确定在接收所述第一媒体数据集合之后所述广播服务不再可用;基于对所述广播服务不再可用的所述确定经由单播服务从由所述客户端设备执行的流传送应用接收对于检索所述媒体会话的第二媒体数据集合的请求,其中,所述请求指定所述客户端设备外部的地址;以及响应于所述请求,在所述第二媒体数据集合在之前经由所述广播服务被接收时,使所述HTTP代理单元将所述请求重定向到所述本地服务器单元而不是所述客户端设备外部的所述地址,其中,所述第二媒体数据集合是之前经由所述广播服务被接收的。
在另一个示例中,一种用于检索的设备包括超文本传输协议(HTTP)代理单元和本地服务器单元。所述设备进一步包括:用于经由广播服务接收媒体会话的第一媒体数据集合的单元;用于确定在接收所述第一媒体数据集合之后所述广播服务不再可用的单元;用于基于对所述广播服务不再可用的所述确定经由单播服务从由所述客户端设备执行的流传送应用接收对于检索所述媒体会话的第二媒体数据集合的请求的单元,其中,所述请求指定所述客户端设备外部的地址;以及用于响应于所述请求,在所述第二媒体数据集合在之前经由所述广播服务被接收时,使所述HTTP代理单元将所述请求重定向到所述本地服务器单元而不是所述客户端设备外部的所述地址的单元,其中,所述第二媒体数据集合是之前经由所述广播服务被接收的。
在另一个示例中,一种计算机可读存储介质具有存储在其上的指令,所述指令在被执行时使包括客户端设备的中间件单元的处理器执行操作,其中,所述中间件单元控制所述客户端设备的超文本传输协议(HTTP)代理单元,并且其中,所述客户端设备包括本地服务器单元,所述操作为:经由广播服务接收媒体会话的第一媒体数据集合;确定在接收所述第一媒体数据集合之后所述广播服务不再可用;基于对所述广播服务不再可用的所述确定经由单播服务从由所述客户端设备执行的流传送应用接收对于检索所述媒体会话的第二媒体数据集合的请求,其中,所述请求指定所述客户端设备外部的地址;以及响应于所述请求,在所述第二媒体数据集合在之前经由所述广播服务被接收时,使所述HTTP代理单元将所述请求重定向到所述本地服务器单元而不是所述客户端设备外部的所述地址,其中,所述第二媒体数据集合是之前经由所述广播服务被接收的。
下面在附图和描述内容中阐述了一个或多个示例的细节。其它的特征、目的和优点将是从描述内容和附图中以及从权利要求中显而易见的。
附图说明
图1是示出实现用于通过网络流传送媒体内容的技术的一个示例***的方框图。
图2是详细示出图1的检索单元的部件的一个示例集合的方框图。
图3是示出示例多媒体内容的元素的概念图。
图4是示出可以与表示的段相对应的一个示例视频文件的元素的方框图。
图5是示出例如无线接入网(RAN)的各种服务区域的概念图。
图6是示出根据本公开内容的技术的MooD服务的端到端架构的概念图。
图7是示出根据本公开内容的技术的在其中DASH HTTP请求被定向到HTTP代理的一种示例技术的概念图。
图8是示出具有每媒体类型(例如,视频和音频)的单个表示的一种示例媒体呈现描述(MPD)的概念图。
图9是示出用于将HTTP代理单元配置为在从单播向广播的切换期间对DASH客户端进行定向的一种示例技术的概念图。
图10是示出用于将HTTP代理单元配置为在从广播向单播的切换期间对DASH客户端进行定向的一种示例技术的概念图。
图11是示出根据本公开内容的技术的用于HTTP代理在从广播向单播的切换期间的一种示例配置的概念图。
图12是示出在其中MPD包括多个表示的一个示例用例的概念图。
图13是示出根据就图12所描述的用例的一种示例技术的概念图。
图14是示出一个示例服务器和网络辅助DASH(SAND)强制施行消息的概念图。
图15是示出(例如,从HTTP代理单元)接收HTTP 300响应时的DASH客户端行为的一个示例的概念图。
图16是示出根据图12的用例的在将HTTP代理单元配置为在从广播向单播的切换期间对DASH客户端进行定向时的一种示例技术的概念图。
图17是示出在接收SAND辅助时的DASH客户端行为的一个示例的概念图。
图18是示出根据本公开内容的用于使用eMBMS DASH知晓的网络单元(DANE)的一种示例技术的概念图。
图19是示出根据本公开内容的用于使用eMBMS DASH知晓的网络单元(DANE)的一种示例技术的概念图。
图20是示出在其中HTTP代理单元辅助DASH客户端使用替换的本地段的一种示例技术的概念图。
图21是示出可以被包括在根据本公开内容的一个示例中的SAND消息中的数据的概念图。
图22是示出可以被包括在根据本公开内容的SAND消息中的数据的另一个示例集合的概念图。
图23是示出具有多个表示的一个示例MPD的概念图。
图24是示出根据图23的用例的用于将HTTP代理单元配置为在从单播向广播的切换期间对DASH客户端进行定向的一种示例技术的概念图。
图25是示出根据图23和24的用例的从单播向广播的切换期间的一个示例SAND消息的概念图。
图26是示出根据图23-25的用例的用于将HTTP代理配置为在从广播向单播的切换期间对DASH客户端进行定向的一种示例技术的概念图。
图27是示出根据本公开内容的技术的MPD的数据的一个示例集合的概念图。
图28是示出可以被包括在图27的用例的SAND消息中的数据的一个示例集合的概念图。
图29是示出用于使用DANE来辅助DASH客户端使用替换的本地段的一种示例技术的概念图。
图30是示出根据本公开内容的技术的一种示例方法的流程图。
具体实施方式
本公开内容的技术可以被应用于符合根据ISO基本媒体文件格式、可伸缩视频编码(SVC)文件格式、高级视频编码(AVC)文件格式、第三代合作伙伴计划(3GPP)文件格式和/或多视图视频编码(MVC)文件格式或者其它类似的视频文件格式中的任一种文件格式被封装的视频数据的视频文件。
在HTTP流传送中,被频繁使用的操作包括HEAD、GET和部分的GET。HEAD操作检索与给定的统一资源定位符(URL)或者统一资源名称(URN)相关联的文件的报头,而不检索与该URL或者URN相关联的有效载荷。GET操作检索与给定的URL或者URN相关联的整个文件。部分的GET操作接收字节范围作为输入参数,并且检索文件的连续的一定数量的字节,其中,字节的数量与所接收的字节范围相对应。因此,可以为HTTP流传送提供电影片段,因为部分的GET操作可以获得一个或多个单个的电影片段。在一个电影片段中,可以存在不同的轨道的若干个轨道片段。在HTTP流传送中,媒体表示可以是对于客户端可访问的数据的结构化的汇集。客户端可以请求并且下载媒体数据信息以向用户呈现流传送服务。
在使用HTTP流传送对3GPP数据进行流传送的示例中,可以存在针对多媒体内容的视频和/或音频数据的多个表示。如下面阐述的,不同的表示可以与不同的编码特性(例如,不同的视频编码标准简档或者水平)、不同的编码标准或者编码标准的扩展(诸如,多视图和/或可伸缩扩展)或者不同的比特速率相对应。可以在媒体呈现描述(MPD)数据结构中定义这样的表示的清单。媒体呈现可以与HTTP流传送客户端设备可访问的数据的结构化的汇集相对应。HTTP流传送客户端设备可以请求并且下载媒体数据信息以向客户端设备的用户呈现流传送服务。可以在可以包括对MPD的更新的MPD数据结构中描述媒体呈现。
媒体呈现可以包含一个或多个时段的序列。时段可以由MPD中的Period(时段)元素定义。每个时段在MPD中可以具有属性start(起始)。MPD可以包括针对每个时段的start属性和availableStartTime(可用起始时间)属性。对于直播服务,时段的start属性和MPD属性availableStartTime的和可以指定采用UTC格式的时段(具体地说,对应的时段中的每个表示的第一个媒体段)的可用时间。对于按需服务,第一个时段的start属性可以是0。对于任何其它的时段,start属性可以指定对应的时段的开始时间相对于第一个时段的开始时间的时间偏移。每个时段可以延伸直到下一个时段开始为止,或者在最后一个时段的情况下则直到媒体呈现结束为止。时段开始时间可以是精确的。它们可以反映由播放全部在先的时段的媒体产生的实际的时序。
每个时段可以包含相同的媒体内容的一个或多个表示。表示可以是音频或者视频数据的一些替换的经编码的版本中的一个版本。表示可以通过编码类型(例如,对于视频数据通过比特速率、分辨率和/或编解码器以及对于音频数据通过比特速率、语言和/或编解码器)而不同。术语表示可以被用于指与多媒体内容的具体的时段相对应并且通过一种具体的方法被编码的经编码的音频或者视频数据的部分。
可以将具体的时段的表示分配给由MPD中指示该表示所属于的适配集合的属性来指示的组。同一个适配集合中的表示被总体地看作彼此的替换项,这在于客户端设备可以在这些表示之间动态地和无缝地切换,例如用以执行带宽适配。例如,可以将具体的时段的视频数据的每个表示分配给同一个适配集合,以使得可以选择表示中的任一个表示用于解码以呈现对应的时段的多媒体内容的媒体数据(诸如,视频数据或者音频数据)。在一些示例中,一个时段内的媒体内容可以由来自组0(如果存在的话)的一个表示或者来自每个非零组的至多一个表示的组合表示。可以相对于时段的开始时间来表述时段的每个表示的时序数据。
一个表示可以包括一个或多个段。每个表示可以包括一个初始化段,或者表示的每个段可以是自初始化的。在出现时,初始化段可以包含用于访问表示的初始化信息。总体上,初始化段不包含媒体数据。可以通过标识符(诸如,统一资源定位符(URL)、统一资源名称(URN)或者统一资源标识符(URI))唯一地引用段。MPD可以为每个段提供标识符。在一些示例中,MPD还可以以range(范围)属性的形式提供字节范围,字节范围可以与可通过URL、URN或者URI访问的文件内的段的数据相对应。
可以选择不同的表示以用于对不同类型的媒体数据的大致上同时的检索。例如,客户端设备可以选择要从其中检索段的音频表示、视频表示和定时的文本表示。在一些示例中,客户端设备可以选择用于执行带宽适配的具体的适配集合。即,客户端设备可以选择包括视频表示的适配集合、包括音频表示的适配集合和/或包括定时的文本的适配集合。替换地,客户端设备可以为特定类型的媒体(例如,视频)选择适配集合,以及为其它类型的媒体(例如,音频和/或定时的文本)直接地选择表示。
图1是示出实现用于通过网络流传送媒体数据的技术的一个示例***10的方框图。在该示例中,***10包括内容准备设备20、服务器设备60和客户端设备40。客户端设备40和服务器设备60被可以包括互联网的网络74通信地耦合。在一些示例中,内容准备设备20和服务器设备60也可以被网络74或者另一个网络耦合,或者可以被直接地通信地耦合。在一些示例中,内容准备设备20和服务器设备60可以包括同一个设备。
图1的示例中的内容准备设备20包括音频源22和视频源24。音频源22可以例如包括产生代表所捕获的将被音频编码器26编码的音频数据的电信号的麦克风。替换地,音频源22可以包括存储之前被记录的音频数据的存储介质、诸如是计算机化的合成器这样的音频数据生成器或者任何其它的音频数据源。视频源24可以包括产生将被视频编码器28编码的视频数据的视频照相机、被编码为具有之前被记录的视频数据的存储介质、诸如是计算机图形源这样的视频数据生成单元或者任何其它的视频数据源。内容准备设备20不必在全部示例中被通信地耦合到服务器设备60,而可以将多媒体内容存储到被服务器设备60读取的单独的介质。
原始的音频和视频数据可以包括模拟的或者数字的数据。模拟的数据可以在被音频编码器26和/或视频编码器28编码之前被数字化。音频源22可以在说话的参与者正在说话时从说话的参与者获得音频数据,以及视频源24可以同时地获得说话的参与者的视频数据。在其它示例中,音频源22可以包括包含所存储的音频数据的计算机可读存储介质,以及视频源24可以包括包含所存储的视频数据的计算机可读存储介质。这样,本公开内容中描述的技术可以被应用于直播的、流传送的、实时的音频和视频数据或者经归档的、预记录的音频和视频数据。
与视频帧相对应的音频帧一般是包含与被包含在视频帧内的由视频源24捕获(或者生成)的视频数据同时地被音频源22捕获(或者生成)的音频数据的音频帧。例如,在说话的参与者一般地通过说话产生音频数据时,音频源22捕获音频数据,以及视频源24同时(即,在音频源22正在捕获音频数据时)捕获说话的参与者的视频数据。因此,音频帧可以在时间上与一个或多个具体的视频帧相对应。相应地,与视频帧相对应的音频帧一般对应于在其中音频数据和视频数据被同时地捕获并且对于其来说音频帧和视频帧分别包括被同时地捕获的音频数据和视频数据的情形。当然,例如如果音频数据是针对另一种语言的配音,或者如果声音效果或者画外音在视频数据已经被捕获之后被添加,则音频和视频数据不必要是被同时地捕获的。
在一些示例中,音频编码器26可以将代表经编码的音频帧的音频数据在其处被记录的时间的时间戳编码在每个经编码的音频帧中,并且类似地,视频编码器28可以将代表经编码的视频帧的视频数据在其处被记录的时间的时间戳编码在每个经编码的视频帧中。在这样的示例中,与视频帧相对应的音频帧可以包括包含时间戳的音频帧和包含同一个时间戳的视频帧。内容准备设备20可以包括音频编码器26和/或视频编码器28可以根据其生成时间戳或者音频源22和视频源24可以使用其使音频和视频数据分别与时间戳相关联的内部时钟。
在一些示例中,音频源22可以将与音频数据在其处被记录的时间相对应的数据发送给音频编码器26,以及视频源24可以将与视频数据在其处被记录的时间相对应的数据发送给视频编码器28。在一些示例中,音频编码器26可以将顺序标识符编码在经编码的音频数据中,以指示经编码的音频数据的相对时间排序,而不一定指示音频数据在其处被记录的绝对时间,以及类似地,视频编码器28也可以使用顺序标识符来指示经编码的视频数据的相对时间排序。类似地,在一些示例中,可以利用时间戳对顺序标识符进行映射或者以其他方式使顺序标识符与时间戳相互关联。
音频编码器26一般产生经编码的音频数据的流,而视频编码器28产生经编码的视频数据的流。每个单个的数据(音频或者视频)流可以被称为基本流。基本流是表示的单个的、被数字地编码的(可能被压缩的)分量。例如,表示的经编码的视频或者音频部分可以是基本流。基本流可以在被封装在视频文件内之前被转换成分组化的基本流(PES)。在同一个表示内,流ID可以被用于区分属于一个基本流的PES分组与属于其它基本流的PES分组。基本流的数据的基本单元是分组化的基本流(PES)分组。因此,经编码的视频数据一般与基本视频流相对应。类似地,音频数据与一个或多个分别的基本流相对应。
许多视频编码标准(诸如,ITU-T H.264/AVC和即将出现的高效视频编码(HEVC)标准)为无错误比特流定义语法、语义和解码过程,所述标准中的每个标准符合特定的简档或者水平。视频编码标准通常不指定编码器,但交给编码器保证所生成的比特流对于解码器符合标准的任务。在视频编码标准的上下文中,“简档”与算法、特征或者适用于它们的工具和约束的子集相对应。例如如由H.264标准定义的,“简档”是由H.264标准指定的整个比特流语法的子集。“水平”与对解码器资源消耗(诸如例如是解码器存储器和计算)的限制相对应,所述限制是与图片的分辨率、比特速率和块处理速率相关的。可以利用profile_idc(简档指示符)值用信号发送简档,而可以利用level_idc(水平指示符)值用信号发送水平。
例如,H.264标准认识到,在由给定的简档的语法强加的界限内,取决于被比特流中的语法元素取的值(诸如,经解码的图片的已指定的大小),仍然有可能需要编码器和解码器的性能的大的变化。H.264标准进一步认识到,在许多应用中,实现能够应付具体的简档内的语法的全部假设的使用的解码器是既不实际也不经济的。相应地,H.264标准将“水平”定义为被强加于比特流中的语法元素的值的指定约束集合。这些约束可以是对值的简单的限制。替换地,这些约束可以采用对值的算术组合(例如,图片宽度乘以图片高度乘以每秒被解码图片数)的约束的形式。H.264标准进一步规定,单个实现可以支持针对每个被支持的简档的不同的水平。
符合简档的解码器通常支持该简档中定义的全部特征。例如,作为编码特征,B图片编码在H.264/AVC的基线简档中不被支持,但在H.264/AVC的其它简档中被支持。符合水平的解码器应当是能够解码不需要超过该水平中定义的限制的资源的任何比特流的。简档和水平的定义可以是对于可解释性有帮助的。例如,在视频传输期间,可以对于整个传输会话协商和协定简档和水平定义的对。更具体地说,在H.264/AVC中,水平可以定义对以下各项的限制:需要被处理的宏块的数量、被解码图片缓冲器(DPB)大小、被编码图片缓冲器(CPB)大小、垂直运动向量范围、每两个连续的MB的运动向量的最大数量和是否B块可以具有小于8x8像素的子宏块分区。这样,解码器可以确定是否解码器能够正确地解码比特流。
在图1的示例中,内容准备设备20的封装单元30接收包括来自视频编码器28的经编码视频数据的基本流和包括来自音频编码器26的经编码音频数据的基本流。在一些示例中,视频编码器28和音频编码器26可以各自包括用于根据经编码数据形成PES分组的分组器。在其它示例中,视频编码器28和音频编码器26可以各自与分别的用于根据经编码数据形成PES分组的分组器对接。在仍然其它的示例中,封装单元30可以包括用于根据经编码的音频和视频数据形成PES分组的分组器。
视频编码器28可以以多种方式对多媒体内容的视频数据进行编码,以产生采用各种比特速率以及具有各种特性(诸如,像素分辨率、帧速率、与各种编码标准的符合性、与各种编码标准的各种简档和/或简档的水平的符合性、具有一个或多个视图的表示(例如,对于二维或者三维回放)或者其它这样的特性)的多媒体内容的不同的表示。如本公开内容中使用的,表示可以包括音频数据、视频数据、文本数据(例如,用于隐藏式字幕的)或者其它这样的数据中的一项。表示可以包括基本流(诸如,音频基本流或者视频基本流)。每个PES分组可以包括识别PES分组所属的基本流的stream_id(流身份标识)。封装单元30负责将基本流汇编成各种表示的视频文件(例如,段)。
封装单元30从音频编码器26和视频编码器28接收表示的基本流的PES分组,并且根据PES分组形成对应的网络抽象层(NAL)单元。在H.264/AVC(高级视频编码)的示例中,经编码的视频段被组织成NAL单元,NAL单元提供对应用(诸如,视频电话、存储装置、广播或者流传送)进行寻址的“网络友好的”视频表示。NAL单元可以被归类为视频编码层(VCL)NAL单元和非VCL NAL单元。VCL单元可以包含核心压缩引擎,并且可以包括块、宏块和/或切片级数据。其它的NAL单元可以是非VCL NAL单元。在一些示例中,通常作为主经编码图片被呈现的一个时间实例处的经编码图片可以被包含在访问单元中,访问单元可以包括一个或多个NAL单元。
非VCL NAL单元可以尤其包括参数集合NAL单元和SEI NAL单元。参数集合可以包含序列级报头信息(在序列参数集合(SPS)中)和频繁改变的图片级报头信息(在图片参数集合(PPS)中)。通过利用参数集合(例如,PPS和SPS),不需要对于每个序列或者图片重复频繁改变的信息,因此可以改进编码效率。此外,对参数集合的使用可以实现对重要的报头信息的带外传输,避免对用于错误恢复的冗余传输的需求。在带外传输示例中,参数集合NAL单元可以在与其它NAL单元(诸如,SEI NAL单元)不同的信道上被发送。
补充增强信息(SEI)可以包含对于根据VCL NAL单元解码经编码的图片采样不是必要的但可以在与解码、显示、错误恢复和其它目的相关的过程中提供辅助的信息。SEI消息可以被包含在非VCL NAL单元中。SEI消息是一些标准规范的规范性的部分,并且因此对于符合标准的解码器实现不总是强制的。SEI消息可以是序列级SEI消息或者图片级SEI消息。一些序列级信息可以被包含在SEI消息中(诸如,SVC的示例中的可伸缩性信息SEI消息和MVC中的视图可伸缩性信息SEI消息)。这些示例SEI消息可以传达例如关于操作点的提取和操作点的特性的信息。另外,封装单元30可以形成清单文件(诸如,描述表示的特性的媒体呈现描述符(MPD))。封装单元30可以根据可扩展标记语言(XML)对MPD进行格式化。
封装单元30可以将多媒体内容的一个或多个表示的数据以及清单文件(例如,MPD)提供给输出接口32。输出接口32可以包括网络接口或者用于向存储介质写入的接口(诸如,通用串行总线(USB)接口、CD或者DVD刻录机或者烧录器、用于磁性或者闪存介质的接口或者其它的用于存储或者发送媒体数据的接口)。封装单元30可以将多媒体内容的表示中的每个表示的数据提供给输出接口32,输出接口32可以经由网络传输或者存储介质将数据发送给服务器设备60。在图1的示例中,服务器设备60包括存储各种多媒体内容64的存储介质62,多媒体内容64各自包括分别的清单文件66和一个或多个表示68A-68N(表示68)。在一些示例中,输出接口32还可以直接向网络74发送数据。
在一些示例中,可以将表示68分隔成适配集。即,表示68的各种子集可以包括特性(诸如,编解码器、简档和水平、分辨率、视图数、段的文件格式、可以标识将随表示被显示的文本和/或将例如被扬声器解码和呈现的音频数据的语言或者其它文本属性的文本类型信息、可以描述适配集中的表示的场景的照相机角度或者真实世界照相机视角的照相机角度信息、描述内容对特定观众的适合性的评价信息等)的相应公共集合。
清单文件66可以包括指示与具体的适配集合相对应的表示68的子集以及所述适配集合的公共特性的数据。清单文件66可以还包括代表适配集合的单个表示的单个特性(诸如,比特速率)的数据。这样,适配集合可以提供简化的网络带宽适配。可以使用清单文件66的适配集合元素的子元素来指示适配集合中的表示。
服务器设备60包括请求处理单元70和网络接口72。在一些示例中,服务器设备60可以包括多个网络接口。此外,服务器设备60的特征中的任一个或者全部特征可以在内容传递网络的其它设备(诸如,路由器、网桥、代理设备、交换机或者其它设备)上被实现。在一些示例中,内容传递网络的中间设备可以高速缓存多媒体内容64的数据,并且包括大致上符合服务器设备60的那些部件的部件。总体上,网络接口72被配置为经由网络74发送和接收数据。
请求处理单元70被配置为从客户端设备(诸如,客户端设备40)接收对于存储介质62的数据的网络请求。例如,请求处理单元70可以实现如在1999年6月的由IETF的网络工作组的R.Fielding等人所著的RFC 2616“Hypertext Transfer Protocol–HTTP/1.1”中描述的超文本传输协议(HTTP)版本1.1。即,请求处理单元70可以被配置为接收HTTP GET或者部分的GET请求,以及响应于请求提供多媒体内容64的数据。请求可以例如使用段的URL指定表示68中的一个表示68的段。在一些示例中,请求可以还指定段的一个或多个字节范围,因此包括部分的GET请求。请求处理单元70可以进一步被配置为为HTTP HEAD请求提供服务以提供表示68中的一个表示68的段的报头数据。在任一种情况下,请求处理单元70可以被配置为对请求进行处理以为请求方设备(诸如,客户端设备40)提供所请求的数据。
额外地或者替换地,请求处理单元70可以被配置为经由广播或者多播服务/协议(诸如,eMBMS)传递媒体数据。内容准备设备20可以通过与如所描述的方式大致上相同的方式创建DASH段和/或子段,而服务器设备60可以使用eMBMS或者另一种广播或者多播网络传输协议传递这些段或者子段。例如,请求处理单元70可以被配置为从客户端设备40接收多播组加入请求。即,服务器设备60可以向与具体的媒体内容(例如,直播赛事的广播)相关联的包括客户端设备40的客户端设备通告与多播组相关联的互联网协议(IP)地址。客户端设备40接着可以提交对于加入多播组的请求。该请求可以遍及网络74(例如,组成网络74的路由器)地被传播,以使得使路由器将预期去往与多播组相关联的IP地址的业务定向到订阅方客户端设备(诸如,客户端设备40)。
如图1的示例中所示出的,多媒体内容64包括可以与媒体呈现描述(MPD)相对应的清单文件66。清单文件66可以包含对不同的替换表示68(例如,具有不同的质量的视频服务)的描述,并且所述描述可以包括表示68的例如编解码器信息、简档值、水平值、比特速率和其它的描述性属性。客户端设备40可以检索媒体呈现的清单文件66(例如,MPD)以确定如何访问表示68的段。
具体地说,检索单元52可以检索客户端设备40的配置数据(未示出)以确定视频解码器48的解码能力和视频输出44的渲染能力。配置数据可以还包括由客户端设备40的用户选择的语言偏好、与由客户端设备40的用户设置的深度偏好相对应的一个或多个照相机视角和/或由客户端设备40的用户选择的评价偏好中的任一项或者全部项。检索单元52可以例如包括被配置为提交HTTP GET和部分的GET请求的web浏览器或者媒体客户端。检索单元52可以与被客户端设备40的一个或多个处理器或者处理单元(未示出)执行的软件指令相对应。在一些示例中,就检索单元52描述的功能中的全部功能或者其部分可以用硬件或者硬件、软件和/或固件的组合来实现,其中,可以提供必需的硬件以执行软件或者固件的指令。
检索单元52可以将客户端设备40的解码和渲染能力与由清单文件66的信息指示的表示68的特性进行比较。检索单元52可以初始地检索清单文件66的至少一部分以确定表示68的特性。例如,检索单元52可以请求描述的一个或多个适配集合的特性的清单文件66的部分。检索单元52可以选择具有可以被客户端设备40的编码和渲染能力满足的特性的表示68的子集(例如,适配集合)。检索单元52然后可以确定适配集合中的表示的比特速率,确定网络带宽的当前可用的量,以及从具有可以被网络带宽满足的比特速率的表示中的一个表示中检索段。
总体上,较高比特速率的表示可以产生较高质量的视频回放,而较低比特速率的表示在可用的网络带宽减少时可以提供足够质量的视频回放。相应地,在可用的网络带宽相对高时,检索单元52可以从相对高比特速率的表示中检索数据,而在可用的网络带宽低时,检索单元52可以从相对低比特速率的表示中检索数据。这样,客户端设备40可以通过网络74流传送多媒体数据,同时还适配网络74的改变的网络带宽可用性。
额外地或者替换地,检索单元52可以被配置为根据广播或者多播网络协议(诸如,MBMS、eMBMS或者IP多播)接收数据。在这样的示例中,检索单元52可以提交对于加入与具体的媒体内容相关联的多播网络组的请求。在加入多播组之后,检索单元52可以接收多播组的数据,而没有进一步的向服务器设备60或者内容准备设备20发出的请求。检索单元52可以在多播组的数据不再被需要时提交对于离开多播组的请求,例如用以停止回放或者将信道改变到不同的多播组。
根据本公开内容的技术,检索单元52可以取决于广播/多播服务是否可用根据广播或多播服务或者单播服务来检索/接收媒体数据。具体地说,检索单元52可以随着广播/多播服务变得可用或者不可用在广播/多播服务与单播服务之间切换。此外,有时,经由广播/多播服务被接收的数据可以被高速缓存,并且在广播/多播服务变得不可用之后保持被高速缓存。相应地,检索单元52可以在经由单播服务接收媒体数据之前或者之时使用所高速缓存的经由广播/多播服务被接收的数据。
例如,检索单元52可以包括为媒体数据实现高速缓存的存储器。检索单元52可以还包括广播/多播单元、代理单元、本地服务器和流传送客户端(诸如,DASH客户端)。在广播/多播单元经由广播或者多播接收数据时,广播/多播单元可以将数据高速缓存在存储器的高速缓存中。随后,例如由于客户端设备40已经在物理上被移到广播/多播服务在其中不可用(例如,未被服务器设备60提供)的地理区域中,广播/多播服务可以变得不可用。
总体上,流传送客户端可以向本地服务器或者外部服务器发送HTTP GET或者部分的GET请求,但代理单元可以拦截所述请求。代理单元可以被配置为在所请求的媒体数据是在本地(例如,在高速缓存中)可用时将请求重定向到本地服务器,或者在所请求的媒体数据不是在本地可用的时将请求重定向到外部服务器(例如,服务器设备60)。因此,并非立即转移到单播服务,检索单元52可以使代理单元将对于媒体数据的请求重定向到本地服务器,以从之前经由广播/多播服务被接收的高速缓存传递媒体数据。检索单元52可以在切换点(例如,视频数据的瞬时解码器刷新(IDR)图片)处经由单播检索随后的媒体数据,并且高速缓存该数据,以使得该数据在所高速缓存的经由广播/多播服务被接收的媒体数据被完全消费之时或者之前可用。
清单文件可以指示媒体数据是从其可用的IP地址。在广播/多播服务可用时,IP地址可以与本地服务器相对应,而在广播/多播服务不可用时,IP地址可以与外部服务器设备(诸如,服务器设备60)相对应。总体上,流传送客户端(例如,DASH客户端)可以被配置为将对于媒体数据的请求定向到被通告的IP地址。然而,检索单元52的代理单元可以拦截请求,并且确定所请求的媒体数据是否实际上是从本地服务器可用的(例如,在媒体数据之前经由广播/多播服务被接收时)。
即,流传送客户端可以基于指示服务器设备60的IP地址的清单文件将HTTP GET或者部分的GET请求定向到服务器设备60的IP地址。然而,尽管广播/多播服务在特定的情况下不可用,但在所请求的经由广播/多播服务被接收的媒体数据是在来自本地服务器的高速缓存中可用的时,代理单元可以将请求重定向到本地服务器(例如,客户端设备40的本地主机地址)。例如,代理单元可以利用HTTP 3xx型响应(例如,HTTP 300响应)对HTTP GET或者部分的GET作出响应,所述HTTP 3xx型响应可以指定本地服务器的IP地址(例如,客户端服务器40的本地主机地址)。这样,代理单元可以使客户端设备甚至在由本地服务器提供的媒体数据通过其接收媒体数据的广播/多播服务不可用时从本地服务器检索媒体数据。
在一些示例中,媒体数据的清单文件可以指示多个表示可用,其中,所述表示中的至少一个表示与经由广播/多播服务可用的表示相对应,以及所述表示中的至少一个其它的表示与经由单播服务可用的表示相对应。代理单元可以向流传送客户端发送服务器和网络辅助DASH(SAND)强制施行消息,以使流传送客户端从表示中的一个合适的表示中检索媒体数据。例如,如果广播/多播服务可用,则SAND强制施行消息可以包括使流传送客户端检索与广播/多播服务相对应的表示的媒体数据的指令或者配置数据。同样地,如果广播/多播服务不可用,但之前经由广播/多播服务被接收的媒体数据可用,则SAND强制施行消息可以包括使流传送客户端检索与广播/多播服务相对应的表示的媒体数据的指令或者配置数据。
另一方面,如果广播/多播服务不可用(以及如果之前经由广播/多播服务被接收的媒体数据不可用),则SAND强制施行消息可以包括使流传送客户端检索与单播服务相对应的表示的媒体数据的指令或者配置数据。
SAND强制施行消息的这样的指令/配置数据可以包括例如包括识别合适的表示的URI前缀的基本URL字段和代表相关联的资源(例如,表示和/或表示的段)的状态的一个或多个状态字段。SAND强制施行消息可以包括对来自流传送客户端的HTTP GET请求的HTTP300响应,其中,HTTP300响应包括例如与广播/多播服务相关联的表示中的一个表示的标识符。
如上面指出的,客户端设备40可以在地理上在服务区域之间被移动,其中,在一些服务区域中,广播/多播服务可用,以及在其它的服务区域中,广播/多播服务不可用。因此,当然,检索单元52可以在移动到在其中广播/多播服务不可用的服务区域之后使用单播服务检索媒体数据。同样地,检索单元52可以随后移回在其中广播/多播服务可用的服务区域,并且再次经由广播/多播服务接收媒体数据。
网络接口54可以接收并且向检索单元52提供所选择的表示的段的数据,检索单元52可以接着将段提供给解封单元50。解封单元50可以将视频文件的元素解封为成分PES流,对PES流进行去分组化以检索经编码的数据,以及取决于例如如由流的PES分组报头指示的经编码的数据是音频还是视频流的部分,将经编码的数据发送给音频解码器46或者视频解码器48。音频解码器46对经编码的音频数据进行解码,以及将经解码的音频数据发送给音频输出42,而视频解码器48对经编码的视频数据进行解码,以及将可以包括流的多个视图的经解码的视频数据发送给视频输出44。
视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、检索单元52和解封单元50各自可以视具体情况被实现为多种合适的处理电路(诸如,一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立的逻辑电路、软件、硬件、固件或者其任意组合)中的任一种处理电路。视频编码器28和视频解码器48各自可以被包括在一个或多个编码器或者解码器中,视频编码器28和视频解码器48中的任一项可以作为组合的视频编码器/解码器(编解码器)的一部分被集成。同样地,音频编码器26和音频解码器46各自可以被包括在一个或多个编码器或者解码器中,音频编码器26和音频解码器46中的任一项可以作为组合的编解码器的一部分被集成。包括视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、检索单元52和/或解封单元50的装置可以包括集成电路、微处理器和/或无线通信设备(诸如,蜂窝电话)。
客户端设备40、服务器设备60和/或内容准备设备20可以被配置为根据本公开内容的技术进行操作。出于示例的目的,本公开内容就客户端设备40和服务器设备60描述了这些技术。然而,应当理解,内容准备设备20可以被配置为取代(或者额外地)服务器设备60而执行这些技术。
封装单元30可以形成NAL单元,NAL单元包括标识NAL单元所属的节目的报头以及有效载荷(例如,音频数据、视频数据或者描述NAL单元与之相对应的传输或者节目流的数据)。例如,在H.264/AVC中,NAL单元包括1字节的报头和可变大小的有效载荷。在其有效载荷中包括视频数据的NAL单元可以包括各种粒度水平的视频数据。例如,NAL单元可以包括视频数据的块、多个块、视频数据的切片或者视频数据的全部图片。封装单元30可以以基本流的PES分组的形式从视频编码器28接收经编码的视频数据。封装单元30可以使每个基本流与对应的节目相关联。
封装单元30还可以汇集来自多个NAL单元的访问单元。总体上,访问单元可以包括用于代表视频数据的帧以及与帧相对应的音频数据(在这样的音频数据可用时)的一个或多个NAL单元。访问单元一般包括一个输出时间实例的全部NAL单元(例如,一个时间实例的全部音频和视频数据)。例如,如果每个视图具有20帧每秒(fps)的帧速率,则每个时间实例可以与0.05秒的时间间隔相对应。在该时间间隔期间,同一个访问单元(同一个时间实例)的全部视图的具体的帧可以被同时地渲染。在一个示例中,一个访问单元可以包括一个时间实例中的经编码的图片,该经编码的图片可以作为主经编码的图片被呈现。
相应地,一个访问单元可以包括一个公共时间实例的全部音频和视频帧(例如,与时间X相对应的全部视图)。本公开内容还将具体的视图的经编码的图片称为“视图分量”。即,视图分量可以包括具体的时间处的具体的视图的经编码的图片(或者帧)。相应地,一个访问单元可以被定义为包括公共时间实例的全部视频分量。访问单元的解码次序不必要是与输出或者显示次序相同的。
媒体呈现可以包括媒体呈现描述(MPD),MPD可以包含对不同的替换表示(例如,具有不同的质量的视频服务)的描述,并且该描述可以包括例如编解码器信息、简档值和水平值。MPD是清单文件(诸如,清单文件66)的一个示例。客户端设备40可以检索媒体呈现的MPD以确定如何访问各种呈现的电影片段。电影片段可以被放置在视频文件的电影片段盒(moof盒)中。
清单文件66(其可以包括例如MPD)可以通告表示68的段的可用性。即,MPD可以包括指示表示68中的一个表示68的第一个片段在其处变得可用的挂钟时间的信息以及指示表示68内的段的持续时间的信息。这样,客户端设备40的检索单元52可以基于在具体的段之前的段的开始时间以及持续时间确定何时每个段可用。
在封装单元30已经基于所接收的数据将NAL单元和/或访问单元汇编成视频文件之后,封装单元30将视频文件传递给输出接口32进行输出。在一些示例中,封装单元30可以在本地存储视频文件或者经由输出接口32将视频文件发送给远程服务器,而不是直接向客户端设备40发送视频文件。输出接口32可以包括例如发射机、收发机、用于向计算机可读介质写数据的设备(诸如例如是光盘驱动器、磁性介质驱动器(例如,软盘驱动器)、通用串行总线(USB)端口、网络接口或者其它的输出接口)。输出接口32将视频文件输出到计算机可读介质(诸如例如是传输信号、磁性介质、光学介质、存储器、闪存驱动器或者其它的计算机可读介质)。
网络接口54可以经由网络74接收NAL单元或者访问单元,以及经由检索单元52将NAL单元或者访问单元提供给解封单元50。解封单元50可以将视频文件的元素解封为成分PES流,对PES流进行去分组化以检索经编码的数据,以及取决于例如如由流的PES分组报头指示的经编码的数据是音频还是视频流的部分而将经编码的数据发送给音频解码器46或者视频解码器48。音频解码器46对经编码的音频数据进行解码,以及将经解码的音频数据发送给音频输出42,而视频解码器48对经编码的视频数据进行解码,以及将可以包括流的多个视图的经解码的视频数据发送给视频输出44。
图2是更详细地示出图1的检索单元52的部件的一个示例集合的方框图。在该示例中,检索单元52包括eMBMS中间件单元100、DASH客户端110和媒体应用112。
在该示例中,eMBMS中间件单元100进一步包括eMBMS接收单元106、高速缓存104、本地服务器单元102和HTTP代理单元108。在该示例中,eMBMS接收单元106被配置为例如根据在由T.Paila等人所著的“FLUTE—File Delivery over Unidirectional Transport”,网络工作组,RFC6726,2012年11月(在http://tools.ietf.org/html/rfc6726处可用)中描述的通过单向传输的文件传递(FLUTE)经由eMBMS接收数据。即,eMBMS接收单元106可以经由广播从例如可以充当BM-SC的服务器设备60接收文件。
在eMBMS中间件单元100接收文件的数据时,eMBMS中间件单元可以将所接收的数据存储在高速缓存104中。高速缓存104可以包括计算机可读存储介质(诸如,闪存、硬盘、RAM或者任何其它合适的存储介质)。
本地服务器单元102可以充当DASH客户端110的服务器。例如,本地服务器单元102可以向DASH客户端110提供MPD文件或者其它的清单文件。本地服务器单元102可以在MPD文件中通告段的可用性时间以及可以从其中取得段的超链接。这些超链接可以包括与客户端设备40相对应的本地主机地址前缀(例如,对于IPv4,127.0.0.1)。这样,DASH客户端110可以使用HTTP GET或者部分的GET请求从本地服务器单元102请求段。例如,对于从链接http://127.0.0.1/rep1/seg3可用的段,DASH客户端110可以构造包括对于http://127.0.0.1/rep1/seg3的请求的HTTP GET请求,并且将请求提交给本地服务器单元102。本地服务器单元102可以响应于这样的请求从高速缓存104中检索所请求的数据,并且将数据提供给DASH客户端110。
此外,根据本公开内容的技术,HTTP代理单元108可以充当DASH客户端110的代理。例如,根据这些技术,HTTP代理单元108可以拦截来自DASH客户端110的对于数据的请求。在处在广播接收模式下时,eMBMS接收单元106经由广播接收DASH段,并且将DASH段存储到高速缓存104。在单播检索模式下,DASH客户端110可以提交对于从与包括检索单元52的客户端设备(例如,客户端设备40)分离的内容传递网络(CDN)(未示出)中检索DASH段的请求。然而,HTTP代理单元108可以拦截这些请求,并且确定是否所请求的段之前在广播接收模式期间被接收,并且如果是,则将请求重定向到本地服务器单元102。
例如,HTTP代理单元108可以向DASH客户端110发送包括与本地服务器单元102相关联的本地主机地址的HTTP 300响应,以使DASH客户端110从本地服务器单元102中检索所请求的段。另一方面,如果段未被高速缓存在高速缓存104中,则HTTP代理单元108可以将请求转发给CDN。下面更详细描述了这些技术的额外的细节。
图3是示出示例多媒体内容120的元素的概念图。多媒体内容120可以与多媒体内容64(图1)或者被存储在存储介质62中的另一个多媒体内容相对应。在图3的示例中,多媒体内容120包括媒体呈现描述(MPD)122和多个表示124A-124N(表示124)。表示124A包括可选的报头数据126和段128A-128N(段128),而表示124N包括可选的报头数据130和段132A-132N(段132)。为方便起见,字母N被用于指定表示124中的每个表示124中的最后的电影片段。在一些示例中,表示124之间可以存在不同数量的电影片段。
MPD 122可以包括与表示124分离的数据结构。MPD 122可以与图1的清单文件66相对应。同样地,表示124可以与图1的表示68相对应。总体上,MPD 122可以包括总体地描述表示124的特性的数据,例如,编码和渲染特性、适配集合、MPD 122与之相对应的简档、文本类型信息、照相机角度信息、评价信息、特技模式信息(例如,指示包括时间子序列的表示的信息)和/或用于检索远程周期(例如,为了在回放期间向媒体内容中进行的定向广告***)的信息。
报头数据126在存在时可以描述段128的特性,例如是随机访问点(RAP,也被称为流访问点(SAP))、段128中的哪个段128包括随机访问点、与段128内的随机访问点的字节偏移、段128的统一资源定位符(URL)或者段128的其它的方面。报头数据130在出现时可以描述段132的类似的特性。额外地或者替换地,这样的特性可以被完全包括在MPD 122内。
段128、132包括各自可以包括视频数据的帧或者切片的一个或多个经编码的视频采样。段128的经编码的视频采样中的每个经编码的视频采样可以具有类似的特性(例如,高度、宽度和带宽要求)。这样的特性可以通过MPD 122的数据来描述,尽管这样的数据在图3的示例中未被示出。MPD122可以包括如由3GPP规范描述的特性外加本公开内容中描述的被用信号发送的信息中的任一项信息或者全部信息。
段128、132中的每项可以是与唯一的统一资源定位符(URL)相关联的。因此,段128、132中的每项可以是使用流传送网络协议(诸如,DASH)可独立地检索的。这样,目的地设备(诸如,客户端设备40)可以使用HTTP GET请求来检索段128或者132。在一些示例中,客户端设备40可以使用HTTP部分GET请求来检索段128或者132的具体的字节范围。
根据本公开内容的技术,MPD 122可以包括如下面例如在图8、12、17、23和/或27中示出的数据。
图4是示出一个示例视频文件150的元素的方框图,视频文件150可以与表示的段(诸如,图3的段128、132中的一项)相对应。段128、132中的每项可以包括大致上符合图4的示例中所示出的数据的布置的数据。可以说视频文件150对段进行封装。如上面描述的,根据ISO基本媒体文件格式及其扩展的视频文件将数据存储在一系列被称为“盒”的对象中。在图4的示例中,视频文件150包括文件类型(FTYP)盒152、电影(MOOV)盒154、段索引(sidx)盒162、电影片段(MOOF)盒164和电影片段随机访问(MFRA)盒166。尽管图4代表视频文件的一个示例,但应当理解,其它的媒体文件可以包括与视频文件150的数据类似地根据ISO基本媒体文件格式及其扩展被构造的其它类型的媒体数据(例如,音频数据、定时的文本数据等)。
文件类型(FTYP)盒152总体地描述视频文件150的文件类型。文件类型盒152可以包括识别描述视频文件150的最佳用途的规范的数据。文件类型盒152可以替换地被放置在MOOV盒154、电影片段盒164和/或MFRA盒166之前。
在一些示例中,段(诸如,视频文件150)可以在FTYP盒152之前包括MPD更新盒(未示出)。MPD更新盒可以包括指示与包括视频文件150的表示相对应的MPD将被更新的信息,以及用于更新MPD的信息。例如,MPD更新盒可以提供将被用于更新MPD的资源的URI或者URL。作为另一个示例,MPD更新盒可以包括用于更新MPD的数据。在一些示例中,MPD更新盒可以紧跟在视频文件150的段类型(STYP)盒(未示出)之后,其中,STYP盒可以定义视频文件150的段类型。下面详细讨论的图7就MPD更新盒提供了额外的信息。
在图4的示例中,MOOV盒154包括电影报头(MVHD)盒156、轨道(TRAK)盒158和一个或多个电影扩展(MVEX)盒160。总体上,MVHD盒156可以描述视频文件150的总体的特性。例如,MVHD盒156可以包括描述何时视频文件150最初被创建、何时视频文件最后被修改、视频文件150的时间尺度、视频文件150的回放的持续时间的数据或者总体地对视频文件150进行描述的其它数据。
TRAK盒158可以包括视频文件150的轨道的数据。TRAK盒158可以包括描述与TRAK盒158相对应的轨道的特性的轨道报头(TKHD)盒(未示出)。在一些示例中,TRAK盒158可以包括经编码的视频图片,而在其它的示例中,轨道的经编码的视频图片可以被包括在电影片段164中,电影片段164可以被TRAK盒158和/或sidx盒162的数据引用。
在一些示例中,视频文件150可以包括多于一个轨道。相应地,MOOV盒154可以包括等于视频文件150中的轨道数的数量的TRAK盒。TRAK盒158可以描述视频文件150的对应的轨道的特性。例如,TRAK盒158可以描述对应的轨道的时间和/或空间信息。在封装单元30(图1)将参数集合轨道包括在视频文件(诸如,视频文件150)中时,与MOOV盒154的TRAK盒158类似的TRAK盒可以描述参数集合轨道的特性。封装单元30可以在对参数集合轨道进行描述的TRAK盒内用信号发送序列级SEI消息在参数集合轨道中的存在。
MVEX盒160可以描述对应的电影片段164的特性,例如,用以用信号发送以下项:除了被包括在MOOV盒154内的视频数据(如果有的话)外,视频文件150包括电影片段164。在对视频数据进行流传送的上下文中,经编码的视频图片可以被包括在电影片段164而不是MOOV盒154中。相应地,全部经编码的视频采样可以被包括在电影片段164而不是MOOV盒154中。
MOOV盒154可以包括等于视频文件150中的电影片段164数的数量的MVEX盒160。MVEX盒160中的每个MVEX盒160可以描述电影片段164中的一个对应的电影片段164的特性。例如,每个MVEX盒可以包括描述电影片段164中的一个对应的电影片段164的持续时间的电影扩展报头盒(MEHD)盒(未示出)。
如上面指出的,封装单元30可以将序列数据集合存储在不包括实际的经编码视频数据的视频采样中。视频采样可以总体地与访问单元相对应,访问单元是具体的时间实例处的经编码图片的表示。在AVC的上下文中,经编码图片包括包含用于构造访问单元的全部像素的信息的一个或多个VCL NAL单元和其它的相关联的非VCL NAL单元(诸如,SEI消息)。相应地,封装单元30可以将可以包括序列级SEI消息的序列数据集合包括在电影片段164中的一个电影片段164中。封装单元30可以进一步在MVEX盒160中的与电影片段164中的一个电影片段164相对应的一个MVEX盒160内,将序列数据集合和/或序列级SEI消息的存在用信号发送为存在在电影片段164中的一个电影片段164中。
SIDX盒162是视频文件150的可选的元素。即,符合3GPP文件格式或者其它这样的文件格式的视频文件不必包括SIDX盒162。根据3GPP文件格式的示例,SIDX盒可以被用于识别段(例如,包含在视频文件150内的段)的子段。3GPP文件格式将子段定义为“具有对应的媒体数据盒的一个或多个连续的电影片段盒的独立的集合,并且包含被电影片段盒引用的数据的媒体数据盒必须跟随在该电影片段盒之后并且在包含关于同一个轨道的信息的下一个电影片段盒之前”。3GPP文件格式还指示SIDX盒“包含对被该盒文档化的(子)段的子段的引用的序列。被引用的子段在呈现时间上是连续的。类似地,被段索引盒引用的字节在段内总是连续的。被引用的大小给出对被引用的材料中的字节数的计数”。
SIDX盒162总体地提供代表被包括在视频文件150中的段的一个或多个子段的信息。例如,这样的信息可以包括(1)子段在其处开始和/或结束的回放时间,(2)子段的字节偏移,(3)子段是否包括(例如,开始于)流访问点(SAP),(4)SAP的类型(例如,SAP是否是瞬时解码器刷新(IDR)图片、纯随机访问(CRA)图片、断裂链接访问(BLA)图片等),(5)SAP在子段中的位置(按照回放时间和/或字节偏移的),(6)以及类似的信息。
电影片段164可以包括一个或多个经编码的视频图片。在一些示例中,电影片段164可以包括各自可以包括一些经编码的视频图片(例如,帧或者图片)的一个或多个图片组(GOP)。另外,如上面描述的,在一些示例中,电影片段164可以包括序列数据集合。电影片段164中的每个电影片段164可以包括电影片段报头盒(MFHD,未在图4中示出)。MFHD盒可以描述对应的电影片段的特性(诸如,电影片段的顺序号)。可以按照顺序号的次序将电影片段164包括在视频文件150中。
MFRA盒166可以描述视频文件150的电影片段164内的随机访问点。这可以辅助执行特技模式(诸如,执行对被视频文件150封装的段内的具体的时间位置(例如,回放时间)的寻找)。MFRA盒166总体上是可选的,并且在一些示例中不需要被包括在视频文件中。同样地,客户端设备(诸如,客户端设备40)为正确地解码和显示视频文件150的视频数据不必需要引用MFRA盒166。MFRA盒166可以包括等于视频文件150的轨道数或者在一些示例中等于视频文件150的媒体轨道(例如,非提示轨道)数的数量的轨道片段随机访问(TFRA)盒(未示出)。
在一些示例中,电影片段164可以包括一个或多个流访问点(SAP)(诸如,IDR图片)。同样地,MFRA盒166可以提供对SAP在视频文件150内的位置的指示。相应地,可以根据视频文件150的SAP形成视频文件150的时间上的子序列。时间上的子序列可以还包括其它的图片(诸如,取决于SAP的P帧和/或B帧)。时间上的子序列的帧和/或切片可以被布置在段内,以使得取决于子序列的其它的帧/切片的时间上的子序列的帧/切片可以被正确地解码。例如,在数据的分层的布置中,被用于对其它数据的预测的数据可以也被包括在时间上的子序列中。
图5是示出例如无线接入网(RAN)的各种服务区域的概念图。服务区域中的一些或者全部服务区域可以提供MBMS操作按需(MooD)服务,例如,其是根据在www.3gpp.org/DynaReport/26849.htm处可用的“3rd Generation Partnership Project;TechnicalSpecification Group Services and System Aspects;Multimedia Broadcast/Multicast Service(MBMS)improvements;MBMS operation on demand(Release 12)”(3GPP TR 26.849版本12.0.0,2014年12月12日)的。客户端设备(诸如,客户端设备40(图1))可以在这里由服务区域标识符(SAI):SAI1、SAI2和SAI3标识的服务区域或者其它的服务区域之间移动。因为一些服务区域可以提供MooD服务,而其它的服务区域不提供MooD服务,所以客户端设备可以被配置为经由广播(例如,eMBMS)接收数据或者使用单播检索媒体数据。具体地说,客户端设备40可以在于其中提供了MooD服务的服务区域中经由MooD服务接收媒体数据,以及在于其中未提供MooD服务的服务区域中经由单播服务检索媒体数据。
根据本公开内容的技术的一个用例涉及在网络运营商规划在服务区域:SAI1、SAI2和SAI3(会场附近、停车场等)中提供MooD服务的时候。可以在用户服务描述(USD)中充分地描述服务,因此不需要任何USD更新来用信号发送覆盖的改变。USD可以例如描述所规划的覆盖的服务区域信息、服务的临时移动组身份(TMGI),以及单个MPD可以描述全部广播和/或单播表示。
在该示例中,MooD服务的TMGI激活可以包括以下操作。网络可以初始在SAI1中激活TMGI。对于被放置在SAI2中的用户设备(UE)(即,诸如是客户端设备40这样的客户端设备),TMGI不是活跃的。客户端设备40可以初始开始使用单播消费服务。基于单播负载(经由消费报告),网络可以随后在SAI2中激活TMGI。客户端设备40然后可以在TMGI在其当前的服务区域(例如,SAI2)中是活跃的时切换到广播。
图6是示出根据本公开内容的技术的MooD服务的端到端架构180的概念图。在该示例中,架构180包括用户设备(UE)182、无线区域网/演进分组核心(RAN/EPC)190、内容传递网络(CDN)192、DASH编码器194和广播多播服务中心(BMSC)196。UE 182可以与图1的客户端设备40相对应。DASH编码器194可以与图1的内容准备设备20的元素相对应。
DASH编码器194可以制作经由CDN 192可用的段,CDN 192可以经由单播(UC)和经由BMSC 196提供段,BMSC 196提供广播或者多播服务(诸如,MBMS或者eMBMS)。
UE 182包括DASH客户端184、HTTP代理186和eMBMS中间件单元188。在该示例中,HTTP代理186拦截来自DASH客户端184的HTTP GET请求,并且将它们重定向到CDN 192或者中间件单元188。DASH客户端184就段是经由单播还是广播被传递给UE 182的而言是不可知的。
BMSC 196包括消费报告单元198、FLUTE单元200和摄取接口202。总体上,BMSC 196经由摄取接口202从DASH编码器194接收媒体数据,以及根据FLUTE协议经由FLUTE单元200发送媒体数据。
在该示例中,UE 182将消费报告发送给BMSC 196中所示的消费报告单元198。UE182在根据服务(例如,广播或者多播服务)消费媒体数据时报告媒体数据回放的开始和停止以及定期的消费报告。在广播不是可用的时,BMSC 196对经由单播消费DASH内容的UE进行计数。在单播负载超过某个门限时,BMSC 196可以启用广播传递。一旦广播服务是可用的,BMSC 196对经由广播消费DASH内容的UE进行计数。在经由广播服务消费媒体数据的UE的数量处在某个门限以下时,BMSC 196可以禁用广播传递。
图7是示出根据本公开内容的技术的在其中DASH HTTP请求被定向到HTTP代理的一种示例方法的概念图。就图2的示例部件阐述了图7的方法。然而,应当理解,其它的设备也可以被配置为执行图7的方法(诸如,图6的UE 182)。总体上,在该示例方法中,HTTP代理单元108被配置为拦截来自DASH客户端110的DASH请求,并且将这些请求转发给本地主机(例如,本地服务器单元102)或者外部的单播服务器。
在该示例中,eMBMS中间件单元100包括用于需要使用HTTP代理单元108的服务的HTTP代理信息。与eMBMS中间件单元100的应用接口包括代理信息。媒体应用112可以将媒体播放器接口(被DASH客户端110使用的)配置为使用HTTP代理单元108。
初始,媒体应用112从eMBMS中间件单元100检索服务列表(例如,用户服务描述(USD))(210)。媒体应用112然后发送用于开始DASH服务(例如,MooD)的指令(212)。eMBMS中间件单元100确定是否MooD服务是可用的并且活跃的(214),以确定要使用广播或者多播还是单播消费媒体数据。在任一种情况下,在该示例中,eMBMS中间件单元100向媒体应用112发送服务开始通知(216)。
在该示例中,媒体应用112启用HTTP代理单元108(218),将DASH客户端110配置为使用HTTP代理单元108(220)。一旦用于使用HTTP代理单元108的配置被启用,DASH客户端110就对媒体应用112作出响应(222)。媒体应用112然后向DASH客户端110发送用于开始例如与MPD中所通告的URL相对应的回放的指令(224)。DASH客户端110继而向HTTP代理单元108发送对于获得从URL可用的媒体数据的HTTP GET请求(226)。HTTP代理单元108继而使用单播从本地服务器单元102或者从CDN检索所请求的媒体数据。在任一种情况下,HTTP代理单元108向DASH客户端110传递媒体数据,DASH客户端110向媒体应用112返回媒体数据。
图8是示出具有每媒体类型(例如,视频和音频)的单个表示的一个示例媒体呈现描述(MPD)的概念图。在版本12中,用户服务描述(USD)元素处在deliveryMethod(传递方法)之下。USD元素可以经由r12:broadcastAppService(版本12:广播应用服务)描述广播表示以及经由r12:unicastAppService(版本12:单播应用服务)描述单播表示。
在该示例中,MPD包含每媒体分量(例如,音频和视频)的单个表示。同样地,MPD@timeShiftBufferDepth(MDP@时间移位缓冲深度)具有大于零(0)的值。在图8的示例中,可以在deliveryMethodType(传递方法类型)元素的r12:broadcastAppService的basePattern(基本模式)元素和r12:unicastAppService的basePattern元素中指定视频数据(被表示为“V1”)和音频数据(被表示为“A1”)。
图9是示出用于将HTTP代理单元配置为在从单播向广播的切换期间对DASH客户端进行定向的一种示例技术的概念图。图9示出了包括总体地与图1、2和6的类似的部件相对应的各种部件的***230。具体地说,***230包括DASH客户端232(其可以与图2的DASH客户端110或者图6的DASH客户端184相对应)、HTTP代理单元234(其可以与图2的HTTP代理单元108或者图6的HTTP代理单元186相对应)、代理控制单元236(其可以形成HTTP代理自身的一部分或者是单独的控制单元)、本地服务器238(其可以与图2的本地服务器单元102或者图6的eMBMS中间件单元188相对应)和CDN边缘服务器240(其可以与图1的服务器设备60或者图6的CDN 192的服务器相对应)。
图9还示出了位于图的顶部的时间线和在时间线期间的各种时间处被执行的行动。在时间<T1处,HTTP代理234使用单播取回段,以及代理控制单元236使用来自USD和MPD的信息来配置重定向规则。具体地说,在时间T1之前,假设eMBMS被禁用。因此,代理控制单元236将HTTP代理单元234配置为不执行任何重定向(242)。因此,在DASH客户端232提交指定具体的URI的HTTP GET请求(244)时,HTTP代理单元234将请求转发给CDN边缘服务器240(246)。CDN边缘服务器240通过向HTTP代理单元234传递所请求的媒体数据作出响应(248),HTTP代理单元234将媒体数据转发给DASH客户端232(250)。
在eMBMS被启用时,BM-SC将广播直播边缘段。在时间=T1处,eMBMS被启用,并且因此,代理控制单元236从本地服务器238接收关于段可用的指示(252)。在响应时,代理控制单元236将HTTP代理单元234配置为将对于媒体数据的请求重定向到本地服务器单元238(例如,指定包括DASH客户端232和HTTP代理234的客户端设备的本地主机地址)(254)。在时间T1随后,广播段SN是可用的,以及向本地服务器的重定向被启用。相应地,在DASH客户端232向HTTP代理单元234发送指定段SN的URI的HTTP GET请求(256)时,HTTP代理单元234将请求重定向到本地服务器238(258)。如果所请求的段是可用的,则本地服务器238将向HTTP代理单元234传递段(266),以及HTTP代理单元234将段转发给DASH客户端232(268)。
DASH客户端可能(在时间移位缓冲器(TSB)窗口内)请求非直播边缘段。因此,本地服务器单元238可以确定所请求的段不是可用的,触发HTTP 404错误(260)。可以在本地服务器中使用(例如,从CDN边缘服务器的)单播取回来应付这样的HTTP 404错误。即,本地服务器238可以从CDN边缘服务器240请求段(262),CDN边缘服务器240可以将所请求的段发送给本地服务器238(264)。本地服务器238然后可以继续如上面讨论的那样将段发送给HTTP代理单元234。
图10是示出用于将HTTP代理单元234配置为在从广播向单播的切换期间对DASH客户端232进行定向的一种示例技术的概念图。该示例可以是与图9的示例连续的。即,图9和10中的时间线是相同的。然而,应当理解,也可以作出之前的和/或随后的、从单播向广播的切换,例如,如上面就图9所讨论的。
在该示例中,在时间T2之前,广播服务是可用的。因此,***230的部件可以如上面就图9讨论的那样进行操作。即,在广播服务是可用的时,代理控制单元236将HTTP代理单元234配置为将对于媒体数据的请求重定向到本地服务器单元238(例如,指定包括DASH客户端232和HTTP代理234的客户端设备的本地主机地址)(270)。相应地,在DASH客户端232向HTTP代理单元234发送指定段的URI的HTTP GET请求(272)时,HTTP代理单元234将请求重定向到本地服务器238(274)。如果所请求的段是可用的,则本地服务器238将向HTTP代理单元234传递段(282),以及HTTP代理单元234将段转发给DASH客户端232(284)。如果所请求的段不是可用的,则本地服务器238可以进一步从CDN边缘服务器240请求段(278),CDN边缘服务器240可以向本地服务器238传递所请求的段(280)。
在该示例中,在时间=T2处,广播服务不再是可用的。因此,本地服务器238可以向代理控制单元236发送指示段不再可用的数据(例如,对最后被接收的段的指示)(286)。在响应时,代理控制单元236可以将HTTP代理单元234配置为使用单播来满足随后的段请求(286)。然后HTTP代理单元234停止向本地服务器238进行重定向。常规上,这将表示如果DASH客户端232将在TSB窗口内请求段(例如,段SM-2)(290),则HTTP代理单元234将把请求转发给CDN边缘服务器240,CDN边缘服务器240将向HTTP代理单元234传递段(294),HTTP代理单元234将把段转发给DASH客户端232(296)。然而,一个或多个段可能是在本地可用的,但可能不是可传递的。该问题在于,这是转变到单播之后对在本地被高速缓存的段的较低效的利用。根据本公开内容的技术,如下面详细讨论的,***230可以被配置为比常规技术更高效地使用本地服务器单元238的已高速缓存的段。
图11是示出根据本公开内容的技术的从广播向单播的切换期间的用于HTTP代理单元234的一种示例配置的概念图。总体上,代理控制单元236将HTTP代理单元234配置为将对于具有[N_start(开始),N_end(结束)]之间的段号的段URL的请求定向到本地服务器单元238,并且提供可以从本地服务器单元238被满足的段URL的列表。在该示例中,N_start代表被高速缓存在本地服务器中的最旧的段的段号,而N_end代表被高速缓存在本地服务器中的最新的段的段号。在本地服务器单元238移除已高速缓存的段时,代理控制单元236更新重定向规则。
具体地说,在该示例中,本地服务器单元238向代理控制单元236发送可用的段的列表(例如,以初始列表(300A)和对列表的定期更新(300B)的形式)。代理控制单元236因此利用重定向规则(302A,302B)对HTTP代理单元234进行配置,重定向规则(302A,302B)使HTTP代理234将对于从本地服务器238可用的具体的段的请求重定向到本地服务器238。因此,在DASH客户端232发送对于从本地服务器单元238可用的段的列表中的段中的一个段的请求(304)时,HTTP代理单元234将请求重定向到本地服务器单元238(306),本地服务器单元238通过向HTTP代理单元234传递所请求的段作出响应(308)。另一方面,在DASH客户端232请求不处在可用的段的列表中的段(312)时,HTTP代理单元234将请求转发给CDN边缘服务器240(314),CDN边缘服务器240向HTTP代理单元234传递所请求的段(316),HTTP代理单元234将段转发给DASH客户端232(318)。
图12是示出在其中MPD包括多个表示的一个示例用例的概念图。在该示例中,示出了仅视频表示,但应当理解,多个音频表示可以也被包括在MPD中。在该示例中,MPD包含每媒体分量的多个表示,全部表示是通过单播可用的,MPD@timeShiftBufferDepth>0,并且在广播是可用的(RepID=V1)时,DASH客户端不能消费仅单播表示(RepID=V2,V3)。
在图12的示例中,可以在deliveryMethodType元素的r12:unicastAppService的basePattern元素中指定不同类型的视频数据(被表示为“V1”、“V2”和“V3”)。然而,视频数据“V1”也是经由广播可用的,以及因此,也可以在deliveryMethodType元素的r12:broadcastAppService的basePattern元素中指定V1。
图13是示出根据就图12描述的用例的一种示例技术的概念图。在时间<T1处,使用单播取回表示2的段。具体地说,在时间T1之前,代理控制单元236将HTTP代理单元234配置为不执行重定向(320)。因此,在DASH客户端232在时间T1之前发送对于段的HTTP GET请求(322)时,HTTP代理单元234将请求转发给CDN边缘服务器240(324)。CDN边缘服务器240通过向HTTP代理单元234发送所请求的媒体数据来对该请求作出响应(326),HTTP代理单元234将媒体数据转发给DASH客户端232(328)。
在eMBMS被启用时,BM-SC将广播表示1的直播边缘段。在时间=T1处,广播段XN是在本地服务器238处可用的,因此本地服务器238向代理控制单元236发送指示段XN的可用性的数据(330)。因此,代理控制单元236将HTTP代理单元234配置为指示DASH客户端232请求表示1而不是表示2或者表示3的数据。服务器和网络辅助DASH(SAND)强制施行消息可以被用于使DASH客户端232改变到表示1(在该示例中是广播表示)。
即,在DASH客户端232发送对于表示2或者表示3的数据的请求(334)时,HTTP代理单元234利用作为代替指定表示1的HTTP重定向(例如,HTTP 300响应)作出响应(336)。因此,DASH客户端232请求表示1的段(338),HTTP代理单元234将其拦截并且将请求重定向到本地服务器238(340)。如果所请求的段是可用的,则本地服务器238将段转发给HTTP代理234(348)。DASH客户端232可能在TSB窗口内请求表示1的非直播边缘段。在这样的情况下,本地服务器238可以确定存在针对段的HTTP404错误(342),以及在响应时,从CDN边缘服务器240请求段(344),CDN边缘服务器240可以在响应时将段发送给本地服务器238(346)。在任一种情况下,HTTP代理单元234向DASH客户端232返回所接收的段(350)。
图14是示出一个示例SAND强制施行消息的概念图。在MPEG中定义了SAND方案。与SAND方案类似,在于www.3gpp.org/DynaReport/26946.htm处可用的“3rd GenerationPartnership Project;Technical Specification Group Services and SystemAspects;Multimedia Broadcast/Multicast Service(MBMS)User service guidelines(Release 12)”(TR 26.946,2015年3月)中定义了SAMMO方案。
SAND消息可以包括以下元素:@baseURL(基本URL)348被用于携带标识MPD中的表示的URI前缀;状态350提供全部相关联的资源的状态(可用、不可用或者已高速缓存);原因:原因的文本信息。类似地,MPEG将定义可以包括类似的信息的SAND消息。
图15是示出在(例如,从HTTP代理单元)接收HTTP 300响应时的DASH客户端行为的一个示例的概念图。就图9-11和13的DASH客户端232和HTTP代理单元234阐述了图15的方法。然而,应当理解,图6的DASH客户端184和HTTP代理单元186或者图2的DASH客户端110和HTTP代理单元108也可以被配置为执行图15的方法。
在该示例中,DASH客户端232在广播服务器是可用的之前向HTTP代理单元234发送一个或多个GET请求,并且HTTP代理单元234根据单播将请求转发给服务器设备,以及还向DASH客户端232提供对请求的响应(360A-360N)。在广播服务变得可用之后,在DASH客户端232发送对于媒体数据的请求时,HTTP代理单元234可以利用包括重定向地址(例如,本地主机地址)和不同的表示(例如,针对其的段在本地被高速缓存的广播表示)的标识符的HTTP300响应作出回复(362)。这可以使DASH客户端232改变表示(364),并且然后发送用于指定新被选择的表示的随后的HTTP GET请求,HTTP代理单元234将所述随后的HTTP GET请求重定向到本地服务器(例如,本地服务器单元102),并且向DASH客户端232返回包括所请求的媒体数据的回复(366A-366B)。
图16是示出根据图12的用例的在将HTTP代理单元配置为在从广播向单播的切换期间对DASH客户端进行定向时的一种示例技术的概念图。即,在该示例中,广播服务初始在时间T2之前是可用的,并且在时间T2处变得不可用。图16的示例可以代表对就图13讨论的示例的继续。
在时间T2之前,代理控制单元236将HTTP代理单元234配置为将指定表示2或者表示3的请求重定向到表示1(并且重定向到本地服务器238而不是CDN边缘服务器240)(370)。在该示例中,假设DASH客户端232之前已经选择了表示1。因此,DASH客户端232请求表示1的段(372),HTTP代理单元234将其拦截并且重定向到本地服务器238(374)。如果所请求的段是可用的,则本地服务器238将段转发给HTTP代理234(382)。DASH客户端232可能在TSB窗口内请求表示1的非直播边缘段。在这样的情况下,本地服务器238可以确定存在针对段的HTTP 404错误(376),以及在响应时,从CDN边缘服务器240请求段(378),CDN边缘服务器240可以在响应时将段发送给本地服务器238(380)。在任一种情况下,HTTP代理单元向DASH客户端232返回所接收的段(384)。
在时间=T2处,本地服务器238向代理控制单元236发送对广播服务不再可用的指示(386)。因此,代理控制单元236将HTTP代理单元234配置为不将请求重定向到本地服务器238(388)。相应地,在DASH客户端232请求时间T2随后的段(诸如,段XM)(390)之后,HTTP代理单元234可以使用单播来满足段XM请求。即,HTTP代理单元234可以向CDN边缘服务器240提交对于段XM的请求(392),CDN边缘服务器240可以发送包括所请求的媒体数据的响应(394)。HTTP代理单元234可以使用SAND辅助消息将所接收的媒体数据以及指示其它的单播表示也是可用的的数据转发给DASH客户端232(396)。例如,HTTP代理单元234可以发送根据图14的SAND消息。在时间T2的稍后,基于单播带宽,DASH客户端232可以改变到表示2(或者表示3)。一个潜在的问题在于,用户可能在TSB窗口内回到表示2的段SM-2,可以使用单播传递,但表示1的类似的段XM-2可能已经被高速缓存在本地服务器238处。
图17是示出接收SAND辅助时的DASH客户端行为的一个示例的概念图。就图9-11、13和16的DASH客户端232和HTTP代理单元234阐述了图17的方法。然而,应当理解,图6的DASH客户端184和HTTP代理单元186或者图2的DASH客户端110和HTTP代理单元108也可以被配置为执行图17的方法。
在该示例中,DASH客户端232在广播服务是可用的时向HTTP代理单元234发送一个或多个GET请求,并且HTTP代理单元234将请求重定向到本地服务器,以及还向DASH客户端232提供对请求的响应(400A-400N)。在广播服务变得不可用之后,在DASH客户端232发送对于媒体数据的请求时,HTTP代理单元234可以利用包括指定不同的表示(例如,单播表示)的URL的SAND(或者SAMMO)消息的HTTP 20x响应作出回复(402)。这可以使DASH客户端232改变表示(404),以及然后发送指定新被选择的表示的随后的HTTP GET请求,HTTP代理单元234将随后的HTTP GET请求转发给单独的服务器设备,并且向DASH客户端232返回包括所请求的媒体数据的回复(406A-406B)。
图18是示出根据本公开内容的用于使用eMBMS DASH知晓的网络单元(DANE)的一种示例技术的概念图。即,图18的***420包括DASH客户端428、CDN边缘服务器430和包括eMBMS DANE 424和本地服务器246的eMBMS中间件单元422。下面描述了根据图18的一个示例。
在时间<T1处,使用单播取回表示2的段。即,初始,eMBMS DANE 424被配置为不使用重定向(440)。因此,在DASH客户端428请求表示2的段(442)时,eMBMS DANE 424将请求转发给CDN边缘服务器430(444)。CDN边缘服务器430向eMBMS DANE 424发送包括所请求的媒体数据的响应(446),eMBMS DANE 424将响应转发给DASH客户端428(448)。
在eMBMS被启用时,BM-SC(未示出)将向本地服务器426广播表示1的直播边缘段。因此,本地服务器426确定广播表示(即,表示1)的段是可用的(450)。相应地,eMBMS中间件单元422将eMBMS DANE 424配置为将对于表示2和3的请求重定向到表示1,以及将对于表示1的请求重定向到本地服务器246(452)。相应地,在DASH客户端428请求例如表示2的段(454)时,其中,对于表示2的段来说,表示1的对应的段已经被本地服务器426经由广播服务接收,eMBMS DANE 424可以发送指定去往表示1而不是表示2的重定向的SAND强制施行消息(456)。这可以使DASH客户端428切换到表示1,并且请求来自表示1而不是表示2的段(458)。eMBMS DANE 424然后可以将请求转发给本地服务器426,本地服务器426可以在响应中向eMBMS DANE 424发送段(468)(假设段在本地被高速缓存)。如果段未在本地被高速缓存,则本地服务器426可以确定HTTP 404错误已经发生(462),并且因此从CDN边缘服务器430请求段(464),CDN边缘服务器430可以将段发送给本地服务器426(466),本地服务器426可以将段发送给eMBMS DANE 424(468)。在任一种情况下,eMBMS DANE 424可以将段发送给DASH客户端428(470)。
图19是示出根据本公开内容的用于使用eMBMS DASH知晓网络单元(DANE)的一种示例技术的概念图。该示例可以是与图18的示例连续的。即,图18和19中的时间线是相同的。然而,应当理解,也可以作出例如如上面就图18讨论的随后的从单播向广播的切换。
初始,eMBMS DANE 424被配置为将对于表示2和3的请求重定向到表示1,以及将对于表示1的请求发送给本地服务器426(480)。在该示例中,还假设DASH客户端428在时间T2之前被配置为选择表示1。因此,DASH客户端428发送对来自表示1的段的请求(482)。eMBMSDANE 424将该请求转发给本地服务器426(484)。在该示例中,本地服务器426确定存在HTTP404错误(486),以及所请求的段不是可用的(488)。这使eMBMS中间件单元422将eMBMS DANE424配置为将对于表示1的请求重定向到表示2或者表示3(490)。
在该示例中,本地服务器426还向eMBMS DANE 424返回HTTP 404错误(492)。因此,eMBMS DANE 424向DASH客户端428返回指示DASH客户端428应当选择不同的表示(例如,表示2或者3)的重定向消息(494)。该重定向消息可以包括SAND强制施行消息。在该示例中,DASH客户端428选择表示2(基于带宽可用性),以及因此,向eMBMS DANE 424发送对于来自表示2的对应的段的请求(496)。eMBMS DANE 424将请求转发给CDN边缘服务器430(498),CDN边缘服务器430利用所请求的段对eMBMS DANE 424作出响应(500)。因此,eMBMS DANE424将段转发给DASH客户端428(502)。用户可能在TSB窗口内回到表示2的段SM-2。可以使用单播传递,但表示1的类似的段XM-2可能已经被高速缓存在本地服务器426处。
图20是示出在其中HTTP代理单元234辅助DASH客户端232使用替换的、在本地被高速缓存的段(在这样的段是可用的时)的一种示例技术的概念图。在该示例中,本地服务器238向代理控制单元236发送指示可用的段的初始消息(510A)以及指示经更新的可用的段的更新消息(510B)。代理控制单元236将HTTP代理单元234配置为将被高速缓存的表示1的段(例如,具有[N_start,N_end]之间的段号的那些段)的段URL重定向到本地服务器238(512A),以及定期地提供可以从本地服务器238被满足的段URL的经更新的列表(512B)。在该示例中,N_start代表被高速缓存在本地服务器238中的最旧的段的段号,而代表N_end代表被高速缓存在本地服务器238中的最新的段的段号。
在本地服务器移除已高速缓存的段时,代理控制单元236更新重定向规则(512B)。DASH客户端232可以请求未被高速缓存的段(514),在这种情况下,HTTP代理单元234可以将请求转发给CDN边缘服务器240(516),CDN边缘服务器240可以通过向HTTP代理单元234发送段作出响应(518),HTTP代理单元234可以将段转发给DASH客户端232(520)。然而,如果DASH客户端232发送对于未被高速缓存但与不同的表示的已高速缓存的段相对应的表示的段的请求,则HTTP代理单元234可以发送SAND辅助消息以通知DASH客户端232从N_start到N_end的表示1的段已经被高速缓存。例如,DASH客户端232可以向HTTP代理单元234请求表示2的段N_start,以及HTTP代理单元234可以利用指示表示1的段N_start可用(例如,已被本地服务器238高速缓存)的SAND消息作出响应。
在响应时,DASH客户端232可以作为代替请求已经被高速缓存的来自表示1的段(522)。因此,HTTP代理单元234可以将对于段的请求重定向到本地服务器238(524),本地服务器238可以向HTTP代理单元234提供段(526),HTTP代理单元234可以将段转发给DASH客户端232(528)。
如下面的示例中所示的,SAND消息可以使用@baseURL来标识段URL:
<SANDMessage xmlns=..><ResourceStatus messageId="1"status="cached"
baseURL="http://www.example.com/V1/seg-(N_start).mp4"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"
baseURL="http://www.example.com/V1/seg-(N_start+1).mp4"></ResourceStatus>
…
<ResourceStatus messageId="1"status="cached"
baseURL="http://www.example.com/V1/seg-(N_end-1).mp4"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"
baseURL="http://www.example.com/V1/seg-(N_end).mp4"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"
baseURL="http://www.example.com/A1/seg-(N_start).mp4"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"
baseURL="http://www.example.com/A1/seg-(N_start+1).mp4"></ResourceStatus>
…
<ResourceStatus messageId="1"status="cached"
baseURL="http://www.example.com/A1/seg-(N_end-1).mp4"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"
baseURL="http://www.example.com/A1/seg-(N_end).mp4"></ResourceStatus>
</SANDMessage>
另外或者替换地,可以将这样的数据与在广播向单播的转变期间(例如,在图16的时间=T2处)被发送的较旧的SAND辅助消息合并:
<SANDMessage xmlns=..>
<ResourceStatus messageId="1"status="available"baseURL="http://www.example.com/V1">
</ResourceStatus>
<ResourceStatus messageId="1"status="available"baseURL="http://www.example.com/V2">
</ResourceStatus>
<ResourceStatus messageId="1"status="available"baseURL="http://www.example.com/V3">
</ResourceStatus>
<ResourceStatus messageId="1"status="available"baseURL="http://www.example.com/A1">
</ResourceStatus>
<ResourceStatus messageId="1"status="available"baseURL="http://www.example.com/A2">
</ResourceStatus>
<ResourceStatus messageId="1"status="available"baseURL="http://www.example.com/A3">
</ResourceStatus>
</SANDMessage>
图21是示出根据本公开内容的一个示例中的可以被包括在SAND消息中的原因数据530的概念图。在该示例中,对于具有状态=已高速缓存的资源,属性“原因”530可以携带代表N_start和N_end的逗号分隔的字符串(即,逗号分隔的值)。例如:
<SANDMessage xmlns=..>
<ResourceStatus messageId="1"status="cached"reason=”10,100”
baseURL="http://www.example.com/V1"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"reason=”10,100”
baseURL="http://www.example.com/A1"></ResourceStatus>
</SANDMessage>
图22是示出根据本公开内容的可以被包括在SAND消息中的数据532的另一个示例集合的概念图。与向如图21中所示的“原因”字段530添加数据相反,在该示例中,数据532可以包括具有两个字段的消息:“自从”字段和“结束”字段。即,两个额外的属性——“从”和“至”——被添加到ResourceStatus(资源状态)以分别标识N_start和N_end。下面是一个示例:
<SANDMessage xmlns=..>
<ResourceStatus messageId="1"status="cached"From=10To=100
baseURL="http://www.example.com/V1"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"From=10To=100
baseURL="http://www.example.com/A1"></ResourceStatus>
</SANDMessage>
替换地,“自从”可以识别seg(N_start)的可用性开始时间,以及,“截至”可以识别seg(N_end)的可用性开始时间。
在根据本公开内容的技术的一个示例中,可以使用正则表达式。对于具有状态=已高速缓存的资源,属性baseURL可以携带用于标识N_start(=10)与N_end(=100)之间的段URL的范围的正则表达式。例如:
<SANDMessage xmlns=..>
<ResourceStatus messageId="1"status="cached"baseURL="
http:\/\/www\.example\.com\/V1\/seg-(([1-9][0-9])|100)\.mp4"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"baseURL="
http:\/\/www\.example\.com\/A1\/seg-(([1-9][0-9])|100)\.mp4"></ResourceStatus>
</SANDMessage>
在根据本公开内容的技术的一个示例中,可以通过使用SAND方案中的元素DaneResourceStatus(DANE资源状态)来改变段列表中的状态的次序。如上面指出的,正则表达式可以在“资源”区间中被用于SAND消息的紧凑表示。在该示例中,可以使用新的状态“可用的/已高速缓存”,其用于指示段将:在于段直播边缘时间线期间被请求时随HTTP状态200OK被返回,或者在于MPD中指示的TSB时间线窗口内被请求时随HTTP状态200OK被返回。下面是一个示例:
图23是示出具有多个表示的一个示例MPD的概念图。在该示例中,示出了仅视频表示,但应当理解,多个音频表示也可以被包括在MPD中。根据该示例的一个用例是:MPD包含每媒体分量的多个表示,广播表示不是通过单播可用的(例如,广播表示是以不能通过单播连接被满足的高比特率被编码的),MPD@timeShiftBufferDepth>0,以及在广播是可用的(RepID=V1)时,DASH客户端不能消费直播边缘单播表示(RepID=V2,V3)。
在图23的示例中,可以在deliveryMethodType元素的r12:unicastAppService的basePattern元素或者deliveryMethodType元素的r12:broadcastAppService的basePattern元素中指定不同类型的视频数据(被表示为“V1”、“V2”和“V3”)。在该示例中,“V1”是经由广播可用的,以及因此,可以在r12:broadcastAppService的basePattern元素中指定“V1”。同样地,在该示例中,“V2”和“V3”是经由单播可用的,以及因此,可以在r12:unicastAppService的basePattern元素中指定“V2”和“V3”。
图24是示出根据图23的用例的用于将HTTP代理单元234配置为在从单播服务向广播服务的切换期间对DASH客户端232进行定向的一种示例技术的概念图。在eMBMS被启用时,BM-SC(未示出)将向本地服务器238广播表示1的直播边缘段。代理控制单元236将HTTP代理单元234配置为将具有大于[N_start]的段号的请求指定表示1的URL的段定向到本地服务器238,以及将具有小于[N_start]的段号的表示2和表示3的段URL定向到CDN边缘服务器240(542)。
在时间<T1处,使用单播取回表示2的段。例如,本地服务器238可以向代理控制单元236通告可用的段的列表(540)。该列表可以包括包括段N和跟随在段N之后的段。代理控制单元236将HTTP代理单元234配置为将对于列表中的媒体数据的请求重定向到本地服务器238(542)。因此,如果DASH客户端232请求段N之前的段(544),则HTTP代理单元234可以将请求转发给CDN边缘服务器240(546)。CDN边缘服务器可以将所请求的段发送给HTTP代理234(548),HTTP代理234可以将段转发给DASH客户端232(550)。
在该示例中,N_start代表被高速缓存在本地服务器中的最旧的段的段号。SAND强制施行可以被用于允许DASH客户端232改变到表示1的广播段。即,如果DASH客户端232请求与表示1的段相对应的表示2的段(552),则HTTP代理单元234可以向DASH客户端232发送指示表示1的对应的段可用的SAND强制施行消息(554)。相应地,DASH客户端232可以切换到表示1,并且请求来自表示1的段(556)。HTTP代理单元234可以将请求重定向到本地服务器238(558)。本地服务器238可以在响应中将段发送给HTTP代理单元234(560),HTTP代理单元234可以将段转发给DASH客户端232(562)。
图25是示出根据图23和24的用例的可以在从单播服务向广播服务的切换期间被使用的一个示例SAND消息的概念图。在该示例中,SAND消息包括指定广播表示的“从”属性和单播表示的“至”属性的数据564。下面是一个示例:
<SANDMessage xmlns=..>
<ResourceStatus messageId="1"status="available"From=100
baseURL="http://www.example.com/V1"></ResourceStatus>
<ResourceStatus messageId="1"status="available"To=100
baseURL="http://www.example.com/V2"></ResourceStatus>
<ResourceStatus messageId="1"status="available"To=100
baseURL="http://www.example.com/V3"></ResourceStatus>
<ResourceStatus messageId="1"status="available"From=100
baseURL="http://www.example.com/A1"></ResourceStatus>
<ResourceStatus messageId="1"status="available"To=100
baseURL="http://www.example.com/A2"></ResourceStatus>
<ResourceStatus messageId="1"status="available"To=100
baseURL="http://www.example.com/A3"></ResourceStatus>
</SANDMessage>
图26是示出根据图23-25的用例的用于将HTTP代理单元234配置为在从广播服务向单播服务的切换期间对DASH客户端232进行定向的一种示例技术的概念图。图26的时间线可以是与图24的时间线相同的,尽管图26的技术被描述为跟随在于图24的示例中被执行的那些技术之后。
代理控制单元236可以将HTTP代理234配置为将对于段N之前的段的请求重定向到与单播服务相关联的表示(例如,表示2或者表示3),但将对于包括段N和跟随在段N之后的段的请求重定向到与广播服务相关联的表示(例如,表示1)(570)。因此,在DASH客户端232请求被高速缓存在本地服务器238处的来自表示1的段(572)时,HTTP代理单元234可以将请求重定向到本地服务器238(574)。本地服务器238可以通过将段发送给HTTP代理单元234作出响应(576),HTTP代理单元234可以将段转发给DASH客户端232(578)。
本地服务器238还可以向代理控制单元236发送指示哪些段在本地被高速缓存的数据(580)。在该示例中,假设在时间T2处,广播服务不再是可用的。相应地,代理控制单元236将HTTP代理单元234配置为将对于可用的表示1的段的请求重定向到本地服务器238,但将其它的请求转发给CDN边缘服务器240(582)。因此,如果DASH客户端232请求不是从本地服务器238可用的表示1的段(584)(例如,段M以及以后的段),则HTTP代理单元234发送指示该段不可用但对应的段从不同的表示可用的SAND强制施行消息(586)。
因此,DASH客户端232可以请求例如来自表示2的跟随在段M之后的段(588),以及HTTP代理单元234可以将请求转发给CDN边缘服务器240(590)。CDN边缘服务器然后可以通过将所请求的段发送给HTTP代理单元234作出响应(592),HTTP代理单元234可以将段转发给DASH客户端232(594)。在比T2稍晚的时间处,用户可能回到位于从表示1被接收的段的TSB窗口内的较早的段(例如,表示2的段SM-2)。在这种情况下,可以使用单播传递,但表示1的类似的段XM-2可能已经被高速缓存。因此,代理控制单元236可以将HTTP代理单元234配置为将对于本地服务器238的已高速缓存的段的URL范围内的表示1的请求定向到本地服务器238。同样地,SAND辅助可以被用于允许DASH客户端改变到(表示1的)已高速缓存的广播段。
图27是示出根据本公开内容的技术的MPD的数据的一个示例集合的概念图。该示例代表根据本公开内容的技术的另一个用例。在这种情况下,MPD包含每媒体分量的多个表示,广播表示不是通过单播可用的,MPD@timeShiftBufferDepth>>0(大),以及UE保持移入和移出广播覆盖。出现的问题是本地服务器中的已高速缓存的段的非连续的序列。
在图27的示例中,可以在deliveryMethodType元素的r12:unicastAppService的basePattern元素或者deliveryMethodType元素的r12:broadcastAppService的basePattern元素中指定不同类型的视频数据(被表示为“V1”、“V2”和“V3”)。在该示例中,“V1”是经由广播可用的,以及因此,可以在r12:broadcastAppService的basePattern元素中指定“V1”。同样地,在该示例中,“V2”和“V3”是经由单播可用的,以及因此,可以在r12:unicastAppService的basePattern元素中指定“V2”和“V3”。
图28是针对图27的用例的可以被包括在SAND消息中的数据596的一个示例集合。具体地说,数据596指定“从”属性(指示本地服务器的可用的、已高速缓存的段的开始)和“至”属性(指示本地服务器的可用的、已高速缓存的段的结束)。多个条目可以被包括在针对广播表示的SAND消息中,例如,如下面的示例中所示的:
<SANDMessage xmlns=..>
<ResourceStatus messageId="1"status="cached"From=10To=20
baseURL="http://www.example.com/V1"></ResourceStatus>
<ResourceStatus messageId="1"status="available"From=30To=40
baseURL="http://www.example.com/V1"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"From=50To=60
baseURL="http://www.example.com/V1"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"From=10To=20
baseURL="http://www.example.com/A1"></ResourceStatus>
<ResourceStatus messageId="1"status="available"From=30To=40
baseURL="http://www.example.com/A1"></ResourceStatus>
<ResourceStatus messageId="1"status="cached"From=50To=60
baseURL="http://www.example.com/A1"></ResourceStatus>
</SANDMessage>
图29是示出用于使用eMBMS DANE 424来辅助DASH客户端428使用替换的本地段而不是从CDN边缘服务器430检索类似的段的一种示例技术的概念图。尽管未在图29中示出,但eMBMS中间件单元422可以如上面的其它示例中所示的那样进一步包括代理控制单元,以及代理控制单元可以对例如eMBMS中间件单元422的eMBMS DANE 424进行配置。根据一个示例:
●代理控制单元将eMBMS DANE 424配置为:
■将对于具有[N_start,N_end]之间的段号的表示1的段URL的请求定向到本地服务器426。
◆N_start代表被高速缓存在本地服务器中的最旧的段的段号。
◆N_end代表被高速缓存在本地服务器中的最新的段的段号。
■提供可以从本地服务器426被满足的段URL的列表。
■在本地服务器426移除已高速缓存的段时,代理控制单元可以更新eMBMS DANE424的重定向规则。
■SAND辅助消息可以被用于通知DASH客户端428从N_start到N_end的表示1的段已经被高速缓存在本地服务器426处。
具体地说,本地服务器426可以初始地(600A)和定期地随着段从高速缓存被移除(600B)确定哪些段是可用的。因此,eMBMS中间件单元422可以初始地(602A)和响应于来自本地服务器426的更新(602B)基于可用的段将eMBMS DANE 424配置为具有重定向规则。具体地说,eMBMS中间件单元422可以将eMBMS DANE 424配置为将对于来自单播表示的段号的请求重定向到广播表示的对应的段(如果那些段在本地被高速缓存在本地服务器426处的话)。
因此,如果DASH客户端428请求不具有来自广播表示的对应的已高速缓存的段的来自单播表示的段(604),则eMBMS DANE 424可以将请求转发给CDN边缘服务器430(606)。CDN边缘服务器430可以通过将所请求的段发送给eMBMS DANE 424作出响应(608),eMBMSDANE 424可以将段转发给DASH客户端428(610)。另一方面,如果DASH客户端428请求确实具有来自广播表示的对应的已高速缓存的段的来自单播表示的段(612),则eMBMS DANE 424可以将请求重定向到本地服务器426以检索广播表示的对应的段(614)。本地服务器246然后可以通过将所请求的段发送给eMBMS DANE 424作出响应(616),eMBMS DANE 424可以将段转发给DASH客户端428(618)。
此外,根据本公开内容的技术,诸如是daneResourceStatus参数这样的参数可以被用于允许DANE向DASH客户端用信号发送可用的和可能预期可用的数据结构,以及还用信号发送哪些数据结构是不可用的。该方法是对上面提到的资源状态的补充,因为其允许在状态消息的时间处对可用的段的表述。资源可以被明确地列出或者作为列表被提供,或者它们可以通过某种简化的消息格式被提供。典型的用例可以是如下这样的:
●DANE可以加入上游多播/广播服务,其传递接近段可用时间的段。这表示段是仅从具体的时间起在高速缓存中可用的。
●特定的段被丢失,并且这被DANE检测为是丢失的和不可用的。
为了解决该问题,考虑现有的SAND消息的扩展。下面讨论了一些更多的细节。
源和目的地数据可以如下面这样被用信号发送:
类型:PER
发送者:高速缓存DANE
接收者:DASH客户端(和中间DANE)
数据表示,其可以采用表的格式。表可以是根据下面的表的:
状态指示符(根据@status)和针对状态指示符的语义可以是如下这样的:
上面的表的资源组可以定义具有多个段的字符串。为了表述不同类型的用例和压缩消息大小,允许一些简化的正则表达式模式。资源组不指示状态对于可以通过该模式被生成的全部资源适用,而仅对于在媒体呈现中被引用的资源和通过表达式模式被生成的资源的交集适用。
正则表达式模式可以遵循POSIX标准(可移植操作***接口)。作为概述,以下元字符可以被用于表述资源的组:
发送侧逻辑可以是根据下面的伪代码的:
图30是示出根据本公开内容的技术的一种示例方法的流程图。图30的方法可以被控制客户端设备的HTTP代理单元的客户端设备的中间件单元执行。例如,图30的方法可以被图2的eMBMS中间件单元100、图6的eMBMS中间件单元188、例如图9的代理控制单元236或者例如图18的中间件单元422执行。出于示例和阐述的目的,图30的方法被阐述为是被图2的中间件单元100执行的。如图2中所示,中间件单元100包括HTTP代理单元108和本地服务器单元102。
初始,中间件单元100经由广播服务接收媒体会话的第一媒体数据集合(630)。中间件单元100可以稍后(即,在接收第一媒体数据集合之后)确定广播服务不再是可用的(632)。基于对广播服务不再是可用的的确定,中间件单元100可以经由单播服务从被客户端设备执行的流传送应用(例如,DASH客户端110)接收对于检索媒体会话的第二媒体数据集合的请求,其中,请求指定客户端设备外部的地址(634)。第二媒体数据集合可以被包括在之前经由广播服务被接收的第一媒体数据集合中。因此,响应于请求,在第二媒体数据集合之前经由广播服务被接收时,中间件单元100可以使HTTP代理单元(例如,图2的HTTP代理单元108)将请求重定向到本地服务器单元(例如,本地服务器单元102(图2))(636)。
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或者其任意组合来实现。如果用软件来实现,则功能可以作为计算机可读介质上的一个或多个指令或者代码被存储或者发送,并且被基于硬件的处理单元执行。计算机可读介质可以包括与有形介质(诸如,数据存储介质)相对应的计算机可读存储介质或者通信介质,通信介质包括任何例如根据通信协议促进计算机程序从一个地方向另一个地方的传输的介质。这样,计算机可读介质总体地可以与(1)非暂时性的有形计算机可读存储介质或者(2)通信介质(诸如,信号或者载波)相对应。数据存储介质可以是任何可以被一个或多个计算机或者一个或多个处理器访问以检索用于实现本公开内容中描述的技术的指令、代码和/或数据结构的可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储装置、磁盘存储装置或者其它磁性存储设备、闪存或者任何其它的可以被用于存储采用指令或者数据结构的形式的期望的程序代码并且可以被计算机访问的介质。此外,任何连接被恰当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线(DSL)或者诸如是红外线、无线电和微波这样的无线技术从网站、服务器或者其它远程源发送指令,则同轴线缆、光纤线缆、双绞线、DSL或者诸如是红外线、无线电和微波这样的无线技术被包括在介质的定义中。然而应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性的介质,而作为代替涉及非暂时性的、有形的存储介质。如本文中使用的磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光在光学上复制数据。以上各项的组合也应当被包括在计算机可读介质的范围内。
指令可以被一个或多个处理器(诸如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它等价的集成的或者分立的逻辑电路)执行。相应地,如本文中使用的术语“处理器”可以指前述结构或者任何其它的适于实现本文中描述的技术的结构中的任一种结构。另外,在一些方面中,可以在被配置为用于编码和解码或者被并入组合的编解码器中的专用硬件和/或软件模块内提供本文中描述的功能。此外,技术可以完全用一个或多个电路或者逻辑元件来实现。
本公开内容的技术可以用多种设备或者装置来实现,这样的设备或者装置包括无线手机、集成电路(IC)或者IC的集合(例如,芯片集)。在本公开内容中描述了各种部件、模块或者单元,以突出被配置为执行所公开的技术的设备的功能性方面,但不必要求由不同的硬件单元进行的实现。相反,如上面描述的,各种单元可以被组合在编解码器硬件单元中,或者由包括如上面描述的一个或多个处理器的互操作的硬件单元的汇集结合合适的软件和/或固件来提供。
已经描述了各种示例。这些和其它的示例落在下面的权利要求的范围内。
Claims (35)
1.一种由客户端设备的中间件单元检索媒体数据的方法,其中,所述中间件单元控制所述客户端设备的超文本传输协议(HTTP)代理单元,并且其中,所述客户端设备包括本地服务器单元,并且所述中间件单元被配置为将对于媒体数据的请求定向到清单文件中通告的IP地址,所述IP地址指示媒体数据从其处可用的IP地址,所述方法包括由所述中间件单元:
从由所述客户端设备执行的流传送应用经由广播服务接收第一请求,以接收媒体会话的第一媒体数据集合;
经由所述广播服务接收所述媒体会话的所述第一媒体数据集合,同时在与所述本地服务器单元相关联的高速缓存中存储所述第一媒体数据集合的段;
确定在接收所述第一媒体数据集合之后所述广播服务不再可用;
基于对所述广播服务不再可用的所述确定,经由单播服务从由所述客户端设备执行的所述流传送应用接收对于检索所述媒体会话的第二媒体数据集合的第二请求,其中,所述请求指定所述客户端设备外部的地址;以及
响应于所述第二请求,在所述第二媒体数据集合包括在之前经由所述广播服务被接收的所述第一媒体数据集合的至少一些段时,使所述HTTP代理单元将所述第二请求重定向到所述本地服务器单元而不是所述客户端设备外部的所述IP地址,以从所述高速缓存检索之前所接收的所述第二集合的段。
2.根据权利要求1所述的方法,其中,从所述流传送应用接收所述请求包括:拦截来自所述流传送应用的所述请求。
3.根据权利要求1所述的方法,其中,使所述HTTP代理单元进行重定向包括:使所述HTTP代理单元向所述流传送应用发送包括与所述本地服务器单元相关联的本地主机地址的HTTP 300响应。
4.根据权利要求1所述的方法,还包括:利用针对所述HTTP代理单元的代理信息来配置所述流传送应用的去往所述中间件单元的接口。
5.根据权利要求1所述的方法,其中,针对所述媒体会话的清单文件指示存在所述媒体数据的多个表示,其中,所述单播服务提供所述多个表示中的第一表示的数据,并且其中,所述广播服务提供所述多个表示中的不同的第二表示的数据,所述方法还包括:
在所述广播服务可用时,使用第一服务器和网络辅助DASH(SAND)强制施行消息来使所述流传送应用从所述第二表示检索数据;以及
在所述广播服务不可用时,使用第二SAND强制施行消息来使所述流传送应用从所述第一表示检索数据。
6.根据权利要求5所述的方法,其中,所述第一SAND强制施行消息和所述第二SAND强制施行消息符合包括以下各项的SAND强制施行消息方案:
基本统一资源定位符(URL)字段,其代表标识对应的清单文件中的表示的统一资源标识符(URI)前缀;以及
状态字段,其代表全部相关联的资源的状态。
7.根据权利要求5所述的方法,其中,使所述HTTP代理单元进行重定向包括:使所述HTTP代理单元将所述第二表示的标识符包括在去往所述流传送应用的HTTP 300响应中。
8.根据权利要求1所述的方法,还包括:
在从所述单播服务向所述广播服务的切换之前,响应于来自所述流传送应用的对于第三媒体数据集合的请求,使用所述单播服务检索所述媒体会话的所述第三媒体数据集合;
在从所述单播服务向所述广播服务的所述切换之后,经由所述广播服务接收所述媒体会话的第四媒体数据集合。
9.根据权利要求1所述的方法,还包括:在所述第二媒体数据集合未在之前经由所述广播服务被接收时,将对于所述第二媒体数据集合的所述请求重定向到与所述客户端设备分离的服务器设备。
10.根据权利要求1所述的方法,还包括:使数据被发送给代理控制单元,所述数据包括被所述本地服务器单元高速缓存的媒体数据的一个或多个标识符。
11.根据权利要求10所述的方法,其中,所述数据符合SAND消息。
12.根据权利要求10所述的方法,其中,所述数据包括代表所述标识符的、被逗号分隔的值的列表,并且其中,所述标识符指定可用的媒体数据的开始和所述可用的媒体数据的结束。
13.根据权利要求10所述的方法,其中,所述数据包括从字段和至字段,其中,所述从字段指定可用的媒体数据的开始,以及所述至字段指定所述可用的媒体数据的结束。
14.根据权利要求10所述的方法,其中,所述数据包括一个或多个正则表达式。
15.根据权利要求10所述的方法,其中,所述数据包括针对媒体数据集合的状态列表。
16.根据权利要求1所述的方法,其中,所述媒体数据包括多个段,所述段中的每个段是与不同的统一资源定位符(URL)相关联的。
17.根据权利要求1所述的方法,其中,所述清单文件包括媒体呈现描述(MPD)。
18.根据权利要求1所述的方法,其中,所述流传送应用包括通过HTTP的动态自适应流传送(DASH)客户端。
19.一种用于检索媒体数据的设备,所述设备包括:
超文本传输协议(HTTP)代理单元;
本地服务器单元;以及
中间件单元,其控制所述HTTP代理单元,其中,所述中间件单元是由包括逻辑电路的基于硬件的处理单元实现的,并且所述中间件单元被配置为将对于媒体数据的请求定向到清单文件中通告的IP地址,所述IP地址指示媒体数据从其处可用的IP地址,并且其中,所述中间件单元被配置为执行以下操作:
从由所述客户端设备执行的流传送应用经由广播服务接收第一请求,以接收媒体会话的第一媒体数据集合;
经由所述广播服务接收所述媒体会话的所述第一媒体数据集合,同时在与所述本地服务器单元相关联的高速缓存中存储所述第一媒体数据集合的段;
确定在接收所述第一媒体数据集合之后所述广播服务不再可用;
基于对所述广播服务不再可用的所述确定,经由单播服务从由所述客户端设备执行的所述流传送应用接收对于检索所述媒体会话的第二媒体数据集合的第二请求,其中,所述请求指定所述客户端设备外部的地址;以及
响应于所述第二请求,在所述第二媒体数据集合包括在之前经由所述广播服务被接收的所述第一媒体数据集合的至少一些段时,使所述HTTP代理单元将所述第二请求重定向到所述本地服务器单元而不是所述客户端设备外部的所述IP地址,以从所述高速缓存检索之前所接收的所述第二集合的段。
20.根据权利要求19所述的设备,其中,针对所述媒体会话的清单文件指示存在所述媒体数据的多个表示,其中,所述单播服务提供所述多个表示中的第一表示的数据,并且其中,所述广播服务提供所述多个表示中的不同的第二表示的数据,并且其中,所述中间件单元还被配置为执行以下操作:
在所述广播服务可用时,使用第一服务器和网络辅助DASH(SAND)强制施行消息来使所述流传送应用从所述第二表示检索数据;以及
在所述广播服务不可用时,使用第二SAND强制施行消息来使所述流传送应用从所述第一表示检索数据。
21.根据权利要求20所述的设备,其中,所述第一SAND强制施行消息和所述第二SAND强制施行消息符合包括以下各项的SAND强制施行消息方案:
基本统一资源定位符(URL)字段,其代表标识对应的清单文件中的表示的统一资源标识符(URI)前缀;以及
状态字段,其代表全部相关联的资源的状态。
22.根据权利要求19所述的设备,其中,所述中间件单元还被配置为,使数据被发送给代理控制单元,所述数据包括被所述本地服务器单元高速缓存的媒体数据的一个或多个标识符。
23.根据权利要求22所述的设备,其中,所述数据包括代表所述标识符的、被逗号分隔的值的列表,其中,所述标识符指定可用的媒体数据的开始和所述可用的媒体数据的结束,其中,所述数据包括从字段和至字段,其中,所述从字段指定可用的媒体数据的开始,以及所述至字段指定所述可用的媒体数据的结束,其中,所述数据包括一个或多个正则表达式,并且其中,所述数据包括针对媒体数据集合的状态列表。
24.根据权利要求19所述的设备,其中,所述HTTP代理单元是被包括在所述中间件单元中的。
25.根据权利要求19所述的设备,其中,所述HTTP代理单元是与所述中间件单元分离的。
26.一种用于检索媒体数据的设备,并且所述设备被配置为将对于媒体数据的请求定向到清单文件中通告的IP地址,所述IP地址指示媒体数据从其处可用的IP地址,所述设备包括:
超文本传输协议(HTTP)代理单元;
本地服务器单元;
用于从由客户端设备执行的流传送应用经由广播服务接收第一请求,以接收媒体会话的第一媒体数据集合的单元;
用于经由所述广播服务接收所述媒体会话的所述第一媒体数据集合,同时在与所述本地服务器单元相关联的高速缓存中存储所述第一媒体数据集合的段的单元;
用于确定在接收所述第一媒体数据集合之后所述广播服务不再可用的单元;
用于基于对所述广播服务不再可用的所述确定,经由单播服务从由所述客户端设备执行的所述流传送应用接收对于检索所述媒体会话的第二媒体数据集合的第二请求的单元,其中,所述请求指定所述客户端设备外部的地址;以及
用于响应于所述第二请求,在所述第二媒体数据集合包括在之前经由所述广播服务被接收的所述第一媒体数据集合的至少一些段时,使所述HTTP代理单元将所述第二请求重定向到所述本地服务器单元而不是所述客户端设备外部的所述IP地址的单元,以从所述高速缓存检索之前所接收的所述第二集合的段。
27.根据权利要求26所述的设备,其中,针对所述媒体会话的清单文件指示存在所述媒体数据的多个表示,其中,所述单播服务提供所述多个表示中的第一表示的数据,并且其中,所述广播服务提供所述多个表示中的不同的第二表示的数据,还包括:
用于在所述广播服务可用时,使用第一服务器和网络辅助DASH(SAND)强制施行消息来使所述流传送应用从所述第二表示中检索数据的单元;以及
用于在所述广播服务不可用时,使用第二SAND强制施行消息来使所述流传送应用从所述第一表示中检索数据的单元。
28.根据权利要求27所述的设备,其中,所述第一SAND强制施行消息和所述第二SAND强制施行消息符合包括以下各项的SAND强制施行消息方案:
基本统一资源定位符(URL)字段,其代表标识对应的清单文件中的表示的统一资源标识符(URI)前缀;以及
状态字段,其代表全部相关联的资源的状态。
29.根据权利要求26所述的设备,还包括:用于使数据被发送给代理控制单元的单元,所述数据包括被所述本地服务器单元高速缓存的媒体数据的一个或多个标识符。
30.根据权利要求29所述的设备,其中所述数据包括代表所述标识符的、被逗号分隔的值的列表,其中,所述标识符指定可用的媒体数据的开始和所述可用的媒体数据的结束,其中,所述数据包括从字段和至字段,其中,所述从字段指定可用的媒体数据的开始,以及所述至字段指定所述可用的媒体数据的结束,其中,所述数据包括一个或多个正则表达式,并且其中,所述数据包括针对媒体数据集合的状态列表。
31.一种具有存储在其上的指令的计算机可读存储介质,所述指令在被执行时使包括客户端设备的中间件单元的处理器执行操作,其中,所述中间件单元控制所述客户端设备的超文本传输协议(HTTP)代理单元,并且所述中间件单元被配置为将对于媒体数据的请求定向到清单文件中通告的IP地址,所述IP地址指示媒体数据从其处可用的IP地址,并且其中,所述客户端设备包括本地服务器单元,所述操作为:
从由所述客户端设备执行的流传送应用经由广播服务接收第一请求,以接收媒体会话的第一媒体数据集合;
经由所述广播服务接收所述媒体会话的所述第一媒体数据集合,同时在与所述本地服务器单元相关联的高速缓存中存储所述第一媒体数据集合的段;
确定在接收所述第一媒体数据集合之后所述广播服务不再可用;
基于对所述广播服务不再可用的所述确定,经由单播服务从由所述客户端设备执行的所述流传送应用接收对于检索所述媒体会话的第二媒体数据集合的第二请求,其中,所述请求指定所述客户端设备外部的地址;以及
响应于所述第二请求,在所述第二媒体数据集合包括在之前经由所述广播服务被接收的所述第一媒体数据集合的至少一些段时,使所述HTTP代理单元将所述第二请求重定向到所述本地服务器单元而不是所述客户端设备外部的所述IP地址,以从所述高速缓存检索之前所接收的所述第二集合的段。
32.根据权利要求31所述的计算机可读存储介质,其中,针对所述媒体会话的清单文件指示存在所述媒体数据的多个表示,其中,所述单播服务提供所述多个表示中的第一表示的数据,并且其中,所述广播服务提供所述多个表示中的不同的第二表示的数据,还包括使所述处理器执行以下操作的指令:
在所述广播服务可用时,使用第一服务器和网络辅助DASH(SAND)强制施行消息来使所述流传送应用从所述第二表示中检索数据;以及
在所述广播服务不可用时,使用第二SAND强制施行消息来使所述流传送应用从所述第一表示中检索数据。
33.根据权利要求32所述的计算机可读存储介质,其中,所述第一SAND强制施行消息和所述第二SAND强制施行消息符合包括以下各项的SAND强制施行消息方案:
基本统一资源定位符(URL)字段,其代表标识对应的清单文件中的表示的统一资源标识符(URI)前缀;以及
状态字段,其代表全部相关联的资源的状态。
34.根据权利要求31所述的计算机可读存储介质,还包括使所述处理器执行以下操作的指令:使数据被发送给代理控制单元,所述数据包括被所述本地服务器单元高速缓存的媒体数据的一个或多个标识符。
35.根据权利要求34所述的计算机可读存储介质,其中,所述数据包括代表所述标识符的、被逗号分隔的值的列表,其中,所述标识符指定可用的媒体数据的开始和所述可用的媒体数据的结束,其中,所述数据包括从字段和至字段,其中,所述从字段指定可用的媒体数据的开始,以及所述至字段指定所述可用的媒体数据的结束,其中,所述数据包括一个或多个正则表达式,并且其中,所述数据包括针对媒体数据集合的状态列表。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562181684P | 2015-06-18 | 2015-06-18 | |
US62/181,684 | 2015-06-18 | ||
US201562183615P | 2015-06-23 | 2015-06-23 | |
US62/183,615 | 2015-06-23 | ||
US15/184,138 US10193994B2 (en) | 2015-06-18 | 2016-06-16 | Signaling cached segments for broadcast |
US15/184,138 | 2016-06-16 | ||
PCT/US2016/038108 WO2016205670A1 (en) | 2015-06-18 | 2016-06-17 | Signaling cached segments for broadcast |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107810624A CN107810624A (zh) | 2018-03-16 |
CN107810624B true CN107810624B (zh) | 2021-12-03 |
Family
ID=56555708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680035148.6A Active CN107810624B (zh) | 2015-06-18 | 2016-06-17 | 用于检索媒体数据的方法、设备和计算机可读存储介质 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10193994B2 (zh) |
EP (1) | EP3311586B1 (zh) |
JP (1) | JP2018524882A (zh) |
KR (1) | KR20180019579A (zh) |
CN (1) | CN107810624B (zh) |
BR (1) | BR112017027326A2 (zh) |
TW (1) | TW201703541A (zh) |
WO (1) | WO2016205670A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016076654A1 (ko) | 2014-11-13 | 2016-05-19 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
WO2016133296A1 (ko) * | 2015-02-16 | 2016-08-25 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
US10701119B2 (en) * | 2015-06-16 | 2020-06-30 | Apple Inc. | Adaptive video streaming using dynamic radio access network information |
WO2017063677A1 (en) * | 2015-10-13 | 2017-04-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive precision for reporting consumption of streamed content |
EP3391608B1 (en) * | 2015-12-18 | 2023-08-09 | Telefonaktiebolaget LM Ericsson (publ) | Handling of content delivery in a client node |
MX2018014748A (es) * | 2016-06-08 | 2019-04-29 | Sony Corp | Dispositivo de recepcion y metodo de recepcion, dispositivo de reproduccion y metodo de reproduccion, dispositivo de suministro y metodo de suministro y programa. |
US20180007307A1 (en) * | 2016-07-02 | 2018-01-04 | Qualcomm Incorporated | Distributed Implementation Architecture for Broadcast Receiver |
CN109691113B (zh) | 2016-07-15 | 2022-02-08 | 皇家Kpn公司 | 流式传输虚拟现实视频 |
TWI599218B (zh) * | 2016-07-29 | 2017-09-11 | 元智大學 | 即時影音傳輸系統 |
US10574718B2 (en) * | 2016-08-25 | 2020-02-25 | Comcast Cable Communications, Llc | Packaging content for delivery |
WO2018050606A1 (en) * | 2016-09-14 | 2018-03-22 | Koninklijke Kpn N.V. | Streaming virtual reality video |
KR102532645B1 (ko) * | 2016-09-20 | 2023-05-15 | 삼성전자 주식회사 | 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치 |
EP3535644B1 (en) * | 2016-11-04 | 2023-02-22 | Koninklijke KPN N.V. | Streaming virtual reality video |
US10893086B2 (en) * | 2016-11-10 | 2021-01-12 | Sony Corporation | Node type based control of assistance for data streaming |
CN106658042B (zh) * | 2016-12-28 | 2019-07-02 | 广州华多网络科技有限公司 | 一种数据推送方法及相关客户端、服务器 |
US11290755B2 (en) * | 2017-01-10 | 2022-03-29 | Qualcomm Incorporated | Signaling data for prefetching support for streaming media data |
US20180205802A1 (en) * | 2017-01-13 | 2018-07-19 | Cisco Technology, Inc. | Cache Aware Streaming |
US20180242230A1 (en) * | 2017-02-19 | 2018-08-23 | Alcatel-Lucent Usa Inc. | Switching between unicast service and multicast-broadcast service |
US9872062B1 (en) * | 2017-02-22 | 2018-01-16 | Wyse Technology L.L.C. | Enforcing synchronization by embedding audio within video frame data |
JPWO2018173876A1 (ja) * | 2017-03-24 | 2020-01-30 | ソニー株式会社 | コンテンツ処理装置およびコンテンツ処理方法、並びにプログラム |
GB201706848D0 (en) * | 2017-04-28 | 2017-06-14 | Forbidden Tech Plc | Ftl uk |
GB2563251A (en) | 2017-06-07 | 2018-12-12 | Sony Mobile Communications Inc | Terminal device, data processing apparatuses and methods |
CN107295573B (zh) * | 2017-07-12 | 2019-08-02 | 网宿科技股份有限公司 | 一种业务应用流量的引导方法和*** |
KR102305615B1 (ko) * | 2017-10-03 | 2021-09-27 | 소니그룹주식회사 | 업 링크 스트리밍을 위한 네트워크 지원 |
CN108259576B (zh) * | 2017-12-27 | 2021-08-24 | 武汉网信安全技术股份有限公司 | 一种软硬件实时信息传输***和方法 |
WO2019148498A1 (en) * | 2018-02-05 | 2019-08-08 | Telefonaktiebolaget Lm Ericsson (Publ) | A method, a user equipment and a computer program product for enabling a dynamic adaptive streaming over http, dash, player to fetch media segments from a network |
US10938872B2 (en) * | 2018-03-12 | 2021-03-02 | Qualcomm Incorporated | Processing interactivity events for streaming media data |
CN110519652B (zh) | 2018-05-22 | 2021-05-18 | 华为软件技术有限公司 | Vr视频播放方法、终端及服务器 |
US20200112753A1 (en) * | 2018-10-03 | 2020-04-09 | Qualcomm Incorporated | Service description for streaming media data |
US10911793B2 (en) * | 2018-11-14 | 2021-02-02 | Sony Interactive Entertainment LLC | Video start-time reduction employing reductive edging principles |
SG11202105599PA (en) * | 2018-11-28 | 2021-06-29 | Broadpeak | Method and system for audio-visual live content delivery |
US11647241B2 (en) * | 2019-02-19 | 2023-05-09 | Sony Interactive Entertainment LLC | Error de-emphasis in live streaming |
US11523185B2 (en) | 2019-06-19 | 2022-12-06 | Koninklijke Kpn N.V. | Rendering video stream in sub-area of visible display area |
US11638040B2 (en) * | 2020-08-24 | 2023-04-25 | Schmied Enterprises LLC | Eco-friendly codec-based system for low latency transmission |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101884217A (zh) * | 2007-09-26 | 2010-11-10 | 维里沃伊公司 | 多媒体内容的单播输送 |
CN104335551A (zh) * | 2012-06-11 | 2015-02-04 | 高通股份有限公司 | 用于基于可用装置资源调适装置任务的技术 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6400996B1 (en) * | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
US5719786A (en) * | 1993-02-03 | 1998-02-17 | Novell, Inc. | Digital media data stream network management system |
US6499060B1 (en) * | 1999-03-12 | 2002-12-24 | Microsoft Corporation | Media coding for loss recovery with remotely predicted data units |
US6538623B1 (en) * | 1999-05-13 | 2003-03-25 | Pirooz Parnian | Multi-media data collection tool kit having an electronic multi-media “case” file and method of use |
US20030115294A1 (en) * | 2000-05-31 | 2003-06-19 | Khoi Hoang | Selective access digital data broadcast system |
US20060095939A1 (en) * | 2000-06-30 | 2006-05-04 | Jutzi Curtis E | Method and apparatus for the separation of data from digital broadcast signals for distribution via a computer network to clients |
US6813690B1 (en) * | 2001-06-12 | 2004-11-02 | Network Appliance, Inc. | Caching media data using content-sensitive identifiers |
US7535465B2 (en) * | 2003-09-02 | 2009-05-19 | Creative Technology Ltd. | Method and system to display media content data |
US8839319B2 (en) * | 2006-12-28 | 2014-09-16 | Comcast Cable Holdings, Llc | Limiting recording demands |
US8977704B2 (en) | 2011-12-29 | 2015-03-10 | Nokia Corporation | Method and apparatus for flexible caching of delivered media |
US9401968B2 (en) | 2012-01-20 | 2016-07-26 | Nokia Techologies Oy | Method and apparatus for enabling pre-fetching of media |
CN104718759B (zh) | 2012-01-24 | 2019-01-18 | 华为技术有限公司 | Lm模式的简化 |
US20140199044A1 (en) * | 2013-01-15 | 2014-07-17 | Qualcomm Incorporated | Supporting transport diversity and time-shifted buffers for media streaming over a network |
US20160380778A1 (en) * | 2015-02-26 | 2016-12-29 | Telefonaktiebolaget Lm Ericsson (Publ) | A Master Device and Methods Therein |
-
2016
- 2016-06-16 US US15/184,138 patent/US10193994B2/en active Active
- 2016-06-17 KR KR1020177036300A patent/KR20180019579A/ko unknown
- 2016-06-17 BR BR112017027326A patent/BR112017027326A2/pt not_active Application Discontinuation
- 2016-06-17 TW TW105119225A patent/TW201703541A/zh unknown
- 2016-06-17 EP EP16745217.6A patent/EP3311586B1/en active Active
- 2016-06-17 JP JP2017564715A patent/JP2018524882A/ja active Pending
- 2016-06-17 CN CN201680035148.6A patent/CN107810624B/zh active Active
- 2016-06-17 WO PCT/US2016/038108 patent/WO2016205670A1/en active Search and Examination
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101884217A (zh) * | 2007-09-26 | 2010-11-10 | 维里沃伊公司 | 多媒体内容的单播输送 |
CN104335551A (zh) * | 2012-06-11 | 2015-02-04 | 高通股份有限公司 | 用于基于可用装置资源调适装置任务的技术 |
Non-Patent Citations (3)
Title |
---|
3GPP Organizational Partners.《3rd Generation Partnership Project * |
Multimedia Broadcast/Multicast Service (MBMS)User service guidelines (Release 12)》.《3GPP DRAFT》.2015,全文. * |
Technical Specification Group Services and System Aspects * |
Also Published As
Publication number | Publication date |
---|---|
JP2018524882A (ja) | 2018-08-30 |
EP3311586A1 (en) | 2018-04-25 |
TW201703541A (zh) | 2017-01-16 |
EP3311586B1 (en) | 2021-08-11 |
US10193994B2 (en) | 2019-01-29 |
US20160373546A1 (en) | 2016-12-22 |
BR112017027326A2 (pt) | 2018-09-04 |
WO2016205670A1 (en) | 2016-12-22 |
CN107810624A (zh) | 2018-03-16 |
KR20180019579A (ko) | 2018-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107810624B (zh) | 用于检索媒体数据的方法、设备和计算机可读存储介质 | |
JP5930429B2 (ja) | ファイル配信方式を使用したipブロードキャストストリーミングサービスの配信 | |
JP6770000B2 (ja) | DASHクライアントQoEメトリックのミドルウェア配信 | |
JP6612249B2 (ja) | メディアデータをストリーミングするためのターゲット広告挿入 | |
US20160337424A1 (en) | Transferring media data using a websocket subprotocol | |
CN111837403B (zh) | 处理用于以流传送媒体数据的交互性事件 | |
KR20170116027A (ko) | 저 레이턴시 비디오 스트리밍 | |
US20150312303A1 (en) | Determining whether to use sidx information when streaming media data | |
US11184665B2 (en) | Initialization set for network streaming of media data | |
KR20160138044A (ko) | 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입 | |
US20210306703A1 (en) | Determination of availability of chunks of data for network streaming media data | |
US20210344992A1 (en) | Calculating start time availability for streamed media data | |
US20210099371A1 (en) | Repair mechanism for adaptive bit rate multicast |
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 |