CN103460667B - 使用字节范围请求的视频数据的网络流 - Google Patents
使用字节范围请求的视频数据的网络流 Download PDFInfo
- Publication number
- CN103460667B CN103460667B CN201280016213.2A CN201280016213A CN103460667B CN 103460667 B CN103460667 B CN 103460667B CN 201280016213 A CN201280016213 A CN 201280016213A CN 103460667 B CN103460667 B CN 103460667B
- Authority
- CN
- China
- Prior art keywords
- url
- request
- bytes range
- performance
- bytes
- 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 claims description 63
- 230000004044 response Effects 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 34
- 238000010276 construction Methods 0.000 claims description 26
- 238000009826 distribution Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 12
- 238000000547 structure data Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 71
- 239000003795 chemical substances by application Substances 0.000 description 44
- 230000006978 adaptation Effects 0.000 description 33
- 239000012634 fragment Substances 0.000 description 21
- 238000002360 preparation method Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 14
- 238000005538 encapsulation Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000013480 data collection Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 241000700605 Viruses Species 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 239000012141 concentrate Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000001727 in vivo Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 241000234282 Allium Species 0.000 description 1
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000237858 Gastropoda Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000002224 dissection Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003455 independent Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4343—Extraction or processing of packetized elementary streams [PES]
-
- 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/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- 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/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
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- 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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- 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
- 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/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (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
在一个实例中,一种用于接收多媒体数据的信息的装置包含一个或一个以上处理器,所述一个或一个以上处理器经配置以:确定待从源装置请求的多媒体内容的表现的文件的字节范围;形成统一资源定位符URL,所述URL根据模板而在所述URL的文件路径部分中根据源装置的要求来指定文件及字节范围;及向源装置发出指定所形成的URL的GET请求。
Description
本申请案主张2011年4月7日申请的第61/473,105号美国临时申请案的权利,所述案特此以全文引用的方式并入本文中。
技术领域
本发明涉及经编码多媒体数据的存储及传送。
背景技术
数字视频能力可并入到广泛范围的装置中,所述装置包含数字电视、数字直播***、无线广播***、个人数字助理(PDA)、膝上型或台式计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏主机、蜂窝式或卫星无线电电话、视频电话会议装置及其类似者。数字视频装置实施视频压缩技术(例如在由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分(高级视频译码(AVC))所定义的标准及这些标准的扩展中所描述的技术),以更有效地发射及接收数字视频信息。
在视频数据已被编码之后,可将视频数据包化以用于发射或存储。可将视频数据汇编为符合多种标准(例如国际标准化组织(ISO)基础媒体文件格式及其扩展(例如MP4文件格式及高级视频译码(AVC)文件格式))中的任一者的视频文件。可以多种方式来传送此包化的视频数据(例如使用网络流来经由计算机网络进行发射)。
在2000年中期,在因特网上经由实时传送协议(RTP)的视频及音频业务的增长开始使因特网充斥大量网络业务,且不存在对这些协议的拥挤控制。此导致公司信息技术(IT)管理者对其防火墙进行程序设计以阻断含有阻塞公司的网关的视频及音频流的RTP包。
防火墙威胁视频及音频流服务的存在。因此,服务提供者开始经由TCP(更具体来说,TCP的HTTP端口)虚拟电路来提供内容。服务提供者的目的是将其视频及音频业务伪装为有用的HTTP业务。IT防火墙管理者不容易阻断经由HTTP/TCP的视频及音频,且因此暂时经由HTTP/TCP的视频及音频得以昌盛。
最初,将一种“渐进式下载”方法用于下载大部分视频。在此机制中,使用单个HTTP连接及转移来下载整个视频文件。用户注视下载发生,且当其觉得已缓冲了足以支持整个流查看体验的数据时,其点击“播放(PLAY)”且开始显示视频。一旦足够数据被下载,播放器便可开始自动地播放,从而提供伪流体验。然而,当用户想要立刻观看视频时(尤其在低容量链路上),此方法遭遇问题。另一问题是在变化的无线环境中,自适应性下载可突然变慢到蜗牛爬行般的速度,从而导致在视频中间的停顿。
从2005年以来,已致力于实施经由HTTP的自适应性流,其试图解决这些问题。自适应性流协议的实例包含微软平滑流(MSS)、苹果实况流(ALS)、Adobe HTTP动态流(AHDS)及3GPP标准(经由HTTP的动态自适应性流(DASH))。在2011年,Netfiix视频流服务(基于MSS)在高峰时间(在晚间)在将视频包递送到客户家中时消耗北美因特网回程通信的30%客户。
自适应性流方法以非常类似于HTML网页的方式来组织视频。举例来说,在DASH中,将“视频网页”定义为参考包括视频的所有“片段”(子文件,亦称作子区段)。片段通常为2秒的实时视频或音频,且在视频的情况下其通常以MPEG I帧(基本上为完整的经JPEG编码图片)开始。在H.264/AVC中,将这些帧称作瞬时解码器刷新(IDR)帧。在DASH中,将“视频网页”称作“媒体呈现描述”(MPD)。2小时视频的MPD可能参考3600个视频统一资源定位符(URL)及3600个音频URL,所述URL中的每一者可对应于在播放时2秒的媒体。并且注意,可针对视频被编码的每一位速率而提供3600个视频URL。
DASH的一个改良是可以若干不同位速率来描述相同视频,且播放器可切换位速率(例如,每2秒)。MPD大体上描述相同视频的3-8个不同呈现(称作表现(representation))。当因特网变得拥挤时或当终端是在低容量链路上时,可提取低位速率片段。当因特网变得不拥挤且终端具有高容量链路时,可提取高位速率片段。通常,提取单个音频流且关于音频不发生位速率切换。当网络或链路条件改变时,播放器可通过提取较高或较低位速率的视频片段来进行适配。播放器通常在片段的边界处进行适配。因此,播放器可动态地适应因特网上的变化的拥挤条件,且经由HTTP传送音频与视频数据两者。应注意,如果提供8个不同表现,那么可在原始服务器上管理总共3600*8=28,800个片段。
在于1993年引入HTTP0.9之后,其变得如此成功以致于因特网不久便充斥了HTTP请求。接着在1997年,HTTP1.0在RFC2068中被标准化,其包含高速缓存。浏览器开始高速缓存对象,而且研究者开始建置透明HTTP代理高速缓冲存储器装置以利用HTTP1.0中的新高速缓存特征。代理高速缓冲存储器装置暗中监视HTTP GET请求且大体上转递所述请求而不改变其。当代理高速缓冲存储器注意到具有大约5个HTTP“高速缓存”标头中的一者的HTTP响应(其意味内容具有长寿命且可被高速缓存)(例如jpeg图片或在20分钟内有效的般票报价)时,代理高速缓冲存储器装置可存储所述可高速缓存的响应且在相同或不同用户在稍后请求所述内容时重播其。网络管理者可重新对交换器或路由器进行程序设计以经由其代理高速缓冲存储器来投送所有HTTP业务。
另外,HTTP1.1(如RFC2616中所指定)规定了部分式GET请求。部分式GET请求包含指定目标URL的信息以及“Range:”标头,接着为指示所要字节范围的值。尽管由HTTP1.1进行了规定,但并非所有网页浏览器实施部分式GET请求的使用。此外,即使当网页浏览器(或由客户端装置执行的其它应用程序)确实实施部分式GET请求时,中间网络装置(例如代理服务器、代理高速缓冲存储器装置或其它代理装置)常常经配置以检索完整文件,而非仅仅为由客户端装置请求的部分。
代理装置通常经配置以对网络业务执行额外动作,例如深度包检查以检测病毒或其它恶意网络业务、高速缓存(以响应于针对相同数据的其它请求),或需要检索整个文件的其它功能。因此,这些代理装置趋向于剥离范围请求及检索在指定的URL的整个文件,且因此将整个检索的文件提供到请求的客户端装置。举例来说,某些病毒扫描算法需要扫描整个文件,在所述情况下,有必要下载整个文件。然而,对于相对大的多媒体文件(例如二小时的电影)而言,检索完整文件而非所请求的字节范围可对相对小的字节范围向请求的客户端装置的发射造成显著延迟。
发明内容
大体而言,本发明描述与经由网络将字节范围请求提交给流媒体数据有关的技术。代替使用部分式GET请求来提交字节范围请求的做法,本发明的技术是针对在HTTPGET请求的URL中指定所请求的字节范围。以此方式,字节范围请求无需指定“Range:”标头,由此避免中间代理高速缓冲存储器装置的不良行为。即,经配置以响应于接收到部分式GET请求而检索完整文件的代理高速缓冲存储器装置应仅检索所请求的URL的部分数据。当所请求的URL指定字节范围时,所检索的数据应显著小于在基础URL处的完整文件。
在一个实例中,一种检索多媒体数据的方法包含:确定待从源装置请求的多媒体内容的表现的文件的字节范围;形成统一资源定位符(URL),所述URL在所述URL的文件路径部分中根据源装置的要求来指定文件及字节范围;及向源装置发出指定所形成的URL的GET请求。
在另一实例中,用于检索多媒体数据的信息的装置包含一个或一个以上处理器,所述一个或一个以上处理器经配置以:确定待从源装置请求的多媒体内容的表现的文件的字节范围;形成统一资源定位符(URL),所述URL在所述URL的文件路径部分中根据源装置的要求来指定文件及字节范围;及向源装置发出指定所形成的URL的GET请求。
在另一实例中,用于检索多媒体数据的信息的装置包含:用于确定待从源装置请求的多媒体内容的表现的文件的字节范围的装置;用于形成统一资源定位符(URL)的装置,所述URL在所述URL的文件路径部分中根据源装置的要求来指定文件及字节范围;及用于向源装置发出指定所形成的URL的GET请求的装置。
在另一实例中,计算机程序产品包含包括指令的计算机可读存储媒体,所述指令在予以执行时致使用于检索多媒体数据的装置的处理器执行以下步骤:确定待从源装置请求的多媒体内容的表现的文件的字节范围;形成统一资源定位符(URL),所述URL在所述URL的文件路径部分中根据源装置的要求来指定文件及字节范围;及向源装置发出指定所形成的URL的GET请求。
在另一实例中,一种发送视频数据的信息的方法包含:提供多媒体内容的清单文件(manifest fi1e),其中所述清单文件指定统一资源定位符(URL)模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;接收包含根据所述URL模板及所述字节范围模板建构的URL的请求,其中所述请求的URL指定多媒体内容的表现的字节范围;及响应于所述请求而输出对应于所述请求的字节范围的表现的多媒体数据。
在另一实例中,用于发送视频数据的信息的装置包括一个或一个以上处理器,所述一个或一个以上处理器经配置以:提供多媒体内容的清单文件,其中所述清单文件指定统一资源定位符(URL)模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;接收包含根据所述URL模板及所述字节范围模板建构的URL的请求,其中所述请求的URL指定多媒体内容的表现的字节范围;及响应于所述请求而输出对应于所述请求的字节范围的表现的多媒体数据。
在另一实例中,用于发送视频数据的信息的装置包含:用于提供多媒体内容的清单文件的装置,其中所述清单文件指定统一资源定位符(URL)模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;用于接收包含根据所述URL模板及所述字节范围模板建构的URL的请求的装置,其中所述请求的URL指定多媒体内容的表现的字节范围;及用于响应于所述请求而输出对应于所述请求的字节范围的表现的多媒体数据的装置。
在另一实例中,计算机程序产品包含包括指令的计算机可读存储媒体,所述指令致使用于提供视频数据的装置的处理器执行以下步骤:提供多媒体内容的清单文件,其中所述清单文件指定统一资源定位符(URL)模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;接收包含根据所述URL模板及所述字节范围模板建构的URL的请求,其中所述请求的URL指定多媒体内容的表现的字节范围;及响应于所述请求而输出对应于所述请求的字节范围的表现的多媒体数据。
一个或一个以上实例的细节陈述于随附图式及以下描述中。其它特征、目标及优势将从所述描述及所述图式以及从权利要求书显而易见。
附图说明
图1为框图,其说明实施用于经由网络来流式传输媒体数据的技术的实例***。
图2为框图,其说明形成图1的网络的部分的装置的实例集合。
图3为框图,其说明包含各种内容分配网络(CDN)的实例***。
图4为概念图,其说明实例多媒体内容的元素。
图5为框图,其说明实例视频文件的元素,所述元素可对应于多媒体内容的表现的区段。
图6为流程图,其说明种用于提供URL模板数据的指示及用于由客户端装置使用所述URL模板数据来产生字节范围请求的实例方法。
图7为流程图,其说明一种用于产生在URL中指定字节范围的GET请求的实例方法。
图8为流程图,其说明一种实例方法,其中经由中间网络装置而在客户端装置与服务器装置之间交换HTTP GET请求。
图9为流程图,其说明一种用于确定CDN(将从所述CDN检索多媒体内容的数据)的实例方法。
具体实施方式
大体而言,本发明描述与多媒体数据(例如音频及视频数据)经由网络的流有关的技术。可结合经由HTTP的动态自适应性流(DASH)来使用本发明的技术。本发明描述可结合网络流执行的各种技术,所述技术中的任一者或全部可单独地或以任何组合实施。如下文予以更详细描述,执行网络流的各种装置可经配置以实施本发明的技术。
根据DASH及用于经由网络来流式传输数据的类似技术,多媒体内容(例如电影或其它媒体内容,其还可包含音频数据、视频数据、文字覆盖或其它数据)可以多种方式编码及具有多种特性。内容预备装置可形成相同多媒体内容的多个表现。每一表现可对应于特性(例如译码及呈现特性)的特定集合,以提供可由具有各种译码及呈现能力的多种不同客户端装置使用的数据。此外,具有各种位速率的表现可允许带宽适配。即,客户端装置可确定当前可用的带宽量,且基于所述可用带宽量连同客户端装置的译码及呈现能力来选择表现。
在一些实例中,内容预备装置可指示一组表现具有一组共同特性。内容预备装置可接着指示所述组中的表现形成适配组(亦称作适配集),使得可将所述组中的表现用于带宽适配。即,所述组中的表现在位速率方面可不同,但在其它方面共享实质上相同特性。以此方式,客户端装置可确定用于多媒体内容的适配集的共同特性的各种集合,且基于客户端装置的译码及呈现能力来选择适配集。接着,客户端装置可基于带宽可用性而自适应性地在所选的适配集中的表现之间进行切换。
可将表现的数据分成个别文件。所述文件中的每一者可由特定的统一资源定位符(URL)寻址。客户端装置可提交对在特定URL的文件的GET请求以检索所述文件。根据本发明的技术,客户端装置可通过将所要字节范围的指示包含于URL路径自身内(例如,根据由对应的服务器装置提供的URL模板)来修改GET请求。在本发明中应注意,术语“路径”可指示HTTP abs_path[RFC2616]抑或HTTP rel_path[RFC2616][RFC2396]。字节范围向服务器装置指示仅所指示的字节范围是所要的。
以此方式,本发明的技术包含代替常规部分式GET请求且改为指定在URL内(例如,在URL路径自身内)的所要字节范围。举例来说,根据本发明的技术,在确定表现的URL可寻址文件的特定字节范围是所要时,客户端装置可通过指定在URL路径内的所要字节范围来建构针对URL的GET请求。清单文件建立者可提供用于以此方式建构URL的模板,以及提供关于所述模板是必要的还是选用的的信息。另外,根据本发明的技术,代理装置或其它中间网络装置可经配置以将接收的部分式GET请求转换为经修改URL。以此方式,经配置以辨识部分式GET请求的代理装置可根据本发明的技术来转换部分式GET请求,以避免使上游代理装置将部分式GET请求修改为完整GET请求。此外,根据本发明的技术,服务器装置可经配置以不仅响应于部分式GET请求而且响应于经修改URL,及可经配置以指定如何建构指定文件的字节范围的这些经修改URL。
在一些实例中,本发明还提供用于传信多媒体内容的特性的技术,所述特性与明确指定于URL内的字节范围有关。本发明提供形成MPD文件的部分的列举属性,其标记为“MustUseRangeURL”。对应于所述属性的字段的值指示客户端装置是否可(或必须)在URL自身中指定所要字节范围。本发明还提供形成MPD文件的部分的列举属性,其标记为“AllowedByteRanges”。可请求的字节范围可被指定于MPD文件内、表现的区段索引(SIDX)盒内,或可为未指定的。AllowedByteRanges属性提供客户端装置是否可请求如由MPD文件、SIDX盒或多媒体内容的其它数据结构指定的字节范围的指示。
本发明进一步提供ByteRangeTemplate字段,其指示将如何指定字节范围。所述ByteRangeTemplate字段可包含$URL$字段、$StartByte$字段及$EndByte$字段,所述字段可根据还指定字节范围的恰当形成的经修改URL来排序。ByteRangeTemplate字段可进一步指定额外字符,例如正斜杠或句号或其它ASCII符号。根据本发明的技术,使用ByteRangeTemplate,客户端装置(或代理装置)可将部分式GET请求(其包含“Range:”字段)转换为指定字节范围而不使用“Range:”字段的经修改URL。
假设(例如)网站服务器使用字节范围抑或通过服务范围请求(其中范围嵌入于URL中)来提供多媒体内容(例如,电影“TRON”)。在此实例中,网站服务器为www.example.com。网站服务器可在MPD(或清单文件)中对于多媒体内容“TRON”提供以下指示:
·URLTemplate="http://www.example.com/TRON/segment.$Bandwidth$.$Index$:″
·ByteRangeTemplate=″$Url$/$StartByte$/$EndByte$″
·MustUseRangeURL=l(=ByteRangeTemplateOptional)
·AllowedByteRanges=0(=RangesOnlyFromMPD)
在此实例中,MPD文件指示字节范围模板为URL,接着为斜杠及所要字节范围中的开始字节,接着为另一斜杠及所要字节范围中的结束字节。MustUseRangeURL指示字节范围模板为选用的,其意味服务器将对HTTP1.1部分式GET请求以及包含范围请求的经修改URL作出响应,且AllowedByteRanges字段指示仅准许指定明确指示于MPD中的字节范围。
继续此实例,可根据HTTP1.1将常规URL及字节范围表达为以下部分式get请求:
·GET http://www.example.com/TRON/segment.1000.27HTTP/1.1
·Host:www.example.com
·Range:435291-560829
根据本发明的技术的客户端装置(或代理装置)可修改以上的部分式GET请求以形成以下的经修改URL:
·GET http://www.example.com/TRON/segment.1000.27/435291/560829HTTP/1.1
·Host:www.example.com
大体而言,客户端装置可产生此实例请求而非产生常规部分式GET请求。在此实例中,URL明确地指定所要字节范围(出于实例的目的,假定将字节范围指定于多媒体内容的MPD中)。
本发明还提议使用HTTP的扩展标头,所述扩展标头指示URL包含字节范围。此可允许代理装置确定URL何时包含字节范围,使得代理装置可为提供请求的客户端装置预先提取多媒体内容的数据。
本发明还提供用于选择内容分配网络(CDN)或内容服务器群的技术。在一些实例中,客户端装置可向重定向URL(包含于对BaseURL的请求的主体中)发出POST请求。重定向服务器装置可接收POST且向所选的CDN(例如,基于请求的客户端装置的特性(例如客户端装置的位置浏览器类型、网络地理或如下文所论述的其它选择准则))发出对于对应于BaseURL的文件的请求。在其它实例中,可由多个CDN指定选择准则,例如当日时间、往返延迟、跳跃计数、位置及其类似者。客户端装置可使用这些准则来选择CDN。所述选择可基于所述准则或通过测量对应于选择准则的网络特性而随机地作出,且使用这些准则来确定性地选择CDN。
大体而言,本发明的技术可用以克服与多媒体数据的流有关(尤其涉及请求多媒体内容的部分(例如片段或子区段))的一个或一个以上问题。这些问题包含并非所有浏览器皆实施字节范围请求。由于字节范围并非URL规范的部分(事实上,“Range:”标头为独立于URL发送的选用标头),所以HTML网页不能参考字节范围,且因此浏览器无需实施字节范围请求。在确实实施字节范围请求的浏览器中,这些浏览器可能不允许外挂程序(例如视频外挂程序)发出字节范围请求。此问题已成为浏览器外挂程序(例如Adobe PDF阅读器外挂程序)的设计中的问题。如果浏览器的外挂程序不能发出字节范围请求,那么DASH外挂程序将不能从MPEG视频文件提取字节范围。
另外,虽然有可能将完整MPEG视频文件分配给合作的CDN及通过向合作的CDN发出HTTP范围请求而检索部分式MPEG文件,但此工作不易由代理高速缓冲存储器装置完成。不要求代理高速缓冲存储器装置实施字节范围请求。各种代理高速缓冲存储器装置通常由数百个不同组织管理,且存在几十种不同实施,且因此不可能确保所有代理高速缓冲存储器装置皆实施字节范围请求。在HTTP1.1中,以完整文件来响应于字节范围请求是合法的。此可能由于浏览器忽略了字节范围请求,或其可为有意的。如果代理高速缓冲存储器实施病毒扫描器,那么所述扫描器可能将字节范围请求转换为完整文件请求,以便在将内容作为字节范围结果分发之前检索所有内容且对其进行病毒扫描。典型网页请求现今可能经过3或3个以上代理装置(原始服务器代理高速缓冲存储器、全国回程通信代理、本地ISP代理)且任何单个代理装置(或所有所述代理装置)可经配置以使字节范围请求无效。
此外,相对少的代理高速缓冲存储器装置的复杂程度足以从一系列字节范围请求(发生于(例如)典型视频的2小时时段中)重新建构MPEG文件。当非常少的浏览器及仅浏览器外挂程序的子集可发出字节范围请求时,文件重新建构实施起来是困难的。更有可能的是,高速缓冲存储器将(a)根本不高速缓存字节范围请求,或(b)仅保持来自给定文件的最近字节范围请求,或(c)将每一单独的字节范围请求当作单独文件处理。在最后一种情况下,对于具有2秒片段的具有10个流的2小时电影,此将在代理高速缓冲存储器中产生多达72,000个片段。在此情况下,管理每一电影的大量片段的开销可能变得对于高速缓存来说太无效率且繁重。
本发明的技术包含用于流多媒体内容(例如,根据3GPP DASH协议的多媒体内容)以在由浏览器提取的URL内发出字节范围请求的机制。在一些实例中,这些技术还包含定义可如何将字节范围映射到URL中的泛用模板、一种用以表达模板的使用是必要的还是仅仅为被准许的(即,选用的)的方式、一种用以将数据(其指示存在嵌入于URL中的字节范围)从客户端装置提供到原始服务器及代理装置的方式,及一种用以基于BaseURL及/或ByteRangeTemplateURL的CDN类型来选择模板的方式。可单独地或组合地使用这些技术中的任一者或全部。
视频文件(例如媒体内容的表现的区段)可与根据以下各者中的任一者封装的视频数据一致:ISO基础媒体文件格式、可扩充视频译码(SVC)文件格式、高级视频译码(AVC)文件格式、第三代合作伙伴计划(3GPP)文件格式及/或多视图视频译码(MVC)文件格式,或其它类似的视频文件格式。
ISO基础媒体文件格式经设计以含有用于以灵活、可扩展格式呈现的定时媒体信息,所述格式促进媒体的互换、管理、编辑及呈现。ISO基础媒体文件格式(ISO/IEC14496-12:2004)指定于MPEG-4第12部分中,其定义基于时间的媒体文件的大体结构。ISO基础媒体文件格式被用作所述系列中的其它文件格式(例如定义对于H.264/MPEG-4AVC视频压缩的支持的AVC文件格式(ISO/IEC14496-15)、3GPP文件格式、SVC文件格式及MVC文件格式)的基础。3GPP文件格式及MVC文件格式为AVC文件格式的扩展。ISO基础媒体文件格式含有媒体数据(例如音频-视觉呈现)的定时序列的时序、结构及媒体信息。文件结构可为面向对象的的。可将文件非常简单地分解为基本对象且所述对象的类型隐含其结构。
符合ISO基础媒体文件格式(及其扩展)的文件可经形成为一系列对象(称为“盒”)。呈ISO基础媒体文件格式的数据可包括于盒中,使得文件内无需含有其它数据且文件内无需存在在盒外部的数据。此包含由特定文件格式需要的任何初始签名。“盒”可为由唯一类型识别符及长度所定义的面向对象的建置块。通常,一个文件中含有呈现,且媒体呈现为独立的。电影容器(电影盒)可含有媒体的元数据,且视频及音频帧可包括于媒体数据容器中且可在其它文件中。
若干文件(有时称作区段)中可含有表现(运动序列)。时序及成框(位置及大小)信息大体上是在ISO基础媒体文件中且辅助文件可基本上使用任何格式。此呈现对于含有所述呈现的***来说可为“本地”的,或可经由网络或其它流递送机制而提供。
当经由流协议递送媒体时,可能需要将媒体从其表示于文件中的方式加以变换。此实例为当经由实时传送协议(RTP)来发射媒体时。在文件中,例如,视频的每一帧被连续地存储作为文件格式样本。在RTP中,必须服从特定用于所使用的编解码器的包化规则以将这些帧置于RTP包中。流服务器可经配置以在执行时间计算此包化。然而,存在对流服务器的辅助的支持。
本发明的技术可适用于网络流协议,例如HTTP流(例如,根据经由HTTP的动态自适应性流(DASH))。在HTTP流中,频繁使用的操作包含GET及部分式GET。GET操作检索与给定的统一资源定位符(URL)或其它识别符(例如,URI)相关联的整个文件。部分式GET操作接收字节范围作为输入参数且检索文件的对应于所述接收的字节范围的连续数目个字节。因此,可提供电影片段以进行HTTP流,这是因为部分式GET操作可获得一个或一个以上个别电影片段。应注意,在电影片段中,可存在不同轨迹(track)的若干轨迹片段。在HTTP流中,媒体表现可为客户端可存取的数据的结构化集合。客户端可请求及下载媒体数据信息以向用户提供流服务。
在使用HTTP流来流式传输3GPP数据的实例中,可存在多媒体内容的视频及/或音频数据的多个表现。可在媒体呈现描述(MPD)数据结构中定义这些表现的清单。媒体表现可对应于HTTP流客户端装置可存取的数据的结构化集合。HTTP流客户端装置可请求及下载媒体数据信息以向客户端装置的用户提供流服务。可在MPD数据结构中描述媒体表现,所述MPD数据结构可包含MPD的更新。
每一周期可含有相同媒体内容的一个或一个以上表现。表现可为音频或视频数据的诸多替代性编码版本中的一者。所述表现可在例如编码类型的各种特性方面不同(例如,对于视频数据而言的位速率、分辨率及/或编解码器,及对于音频数据而言的位速率、语言及/或编解码器)。术语表现可用以指代经编码音频或视频数据的部分,其对应于多媒体内容的特定周期且以特定方式而编码。
可将特定周期的表现指派给一个群,所述群可由MPD中的群属性指示。大体上认为相同群中的表现为彼此的替代物。举例来说,可将特定周期的视频数据的每一表现指派给相同群,使得可将所述表现中的任一者选择用于解码以显示对应周期的多媒体内容的视频数据。在一些实例中,在一个周期内的媒体内容可由来自群0(如果存在)的一个表现抑或来自每一非零群的至多一个表现的组合来表示。可关于周期的开始时间来表达所述周期的每一表现的时序数据。
表现可包含一个或一个以上区段。每一表现可包含初始化区段,或表现的每一区段可为自初始化型的。当存在时,初始化区段可含有用于存取表现的初始化信息。大体而言,初始化区段不含有媒体数据。区段可由例如统一资源定位符(URL)的识别符来唯一地参考。MPD可提供每一区段的识别符。在一些实例中,MPD还可以范围属性的形式提供字节范围,所述范围属性可对应于在可通过URL或URI存取的文件内的区段的数据。
每一表现还可包含一个或一个以上媒体分量,其中每一媒体分量可对应于一个个别媒体类型(例如音频、视频及/或时控文本(例如,用于隐藏字幕))的经编码版本。媒体分量可具有跨越一个表现内的连续媒体区段的边界的时间连续性。因此,表现可对应于个别文件或区段序列,所述区段中的每一者可包含相同的译码及呈现特性。
在一些实例中,本发明的技术可提供一种或一种以上益处。举例来说,这些技术可允许中间代理节点恰当地高速缓存字节范围响应。这些技术可导致代理节点恰当地高速缓存所请求的字节范围(即使当代理节点未被配置成高速缓存所请求的字节范围而是被配置成检索整个文件时)。为了允许此恰当高速缓存,可将字节范围并入到URL的文件路径部分中。通过将字节范围并入到文件路径中,可恰当地查找(将URL文件路径用作键值)针对完全相同的字节范围的未来请求,且所述未来请求产生高速缓存“命中”。由于查找通常仅对URL执行(且不包含作为搜索键值的Range:标头),所以可发生此情况。
这些技术还可允许原始服务器使用每表现一个文件而非每2秒片段一个文件来存储视频表现(其中,通常存在3到8个视频表现),而同时允许由中间节点高速缓存这些文件。此可将原始服务器上的文件的数目从9600-28,800个减小到3-8个,且可使原始服务器在存储及检索视频文件方面显著更有效率。
此外,这些技术可将优点提供给高速缓存服务器(常常为内容分配代理),所述高速缓存服务器是根据用以将字节范围并入到HTTP GET请求的URL中的方法而配置。如果这些服务器可辨识请求,那么其可重新汇编字节范围片段且存储2小时视频的3-8个文件(就像原始服务器)。内容分配网络常常将“内容特定应用程序”部署于这些中间代理上以实现此定制高速缓存及检索策略。因此,此在开放的因特网中为非常实用及可实现的益处。
此外,当由若干个不同内容分配网络来高速缓存一个视频时,这些技术可提供优点。归因于“内容特定应用程序”的不同策略或不同能力,URL内的字节范围请求的确切型样针对不同内容分配网络可能需要是不同的。本发明中所描述的技术可以容易及自然的方式促进此情形,且可允许客户端装置针对不同内容分配网络而以不同方式嵌入字节范围请求。
图1为框图,其说明实施用于经由网络来流式传输媒体数据的技术的实例***10。在此实例中,***10包含内容预备装置20、服务器装置60及客户端装置40。客户端装置40及服务器装置60通过网络74通信地耦合,所述网络74可包括因特网。在一些实例中,内容预备装置20及服务器装置60还可通过网络74或另一网络而耦合,或可直接通信地耦合。在一些实例中,内容预备装置20及服务器装置60可包括相同装置。在一些实例中,内容预备装置20可将预备的内容分配给多个服务器装置(包含服务器装置60)。类似地,在一些实例中,客户端装置40可与多个服务器装置(包含服务器装置60)通信。
如下文予以更详细描述,内容预备装置20、服务器装置60及客户端装置40中的任一者或全部可经配置以执行本发明的对应技术。举例来说,服务器装置60及/或内容预备装置20可定义泛用模板且将数据发送到客户端装置40(例如,响应于来自客户端装置40的请求),从而通知客户端装置40如何将字节范围映射到URL中以请求来自(例如)服务器装置60的数据。同样地,客户端装置40可提交用以从URL检索数据的请求,其中所述请求的URL根据泛用模板包含所请求的字节范围。此外,服务器装置60及/或内容预备装置20可将指示模板的使用是必要的还是选用的信息提供到客户端装置40。
另外,客户端装置40可将数据提供到中间网络装置(图1中未展示),所述数据通知中间网络装置存在嵌入于URL中的字节范围。中间网络装置可包含代理装置、经配置以高速缓存或检查数据的路由器或其类似者,且可包含于如下文更详细描述的图2中所示的网络74内。此外,客户端装置40可使用清单文件来确定用于选择内容分配网络(CDN)(将从其请求数据)的技术。服务器装置60表示可被包含于CDN中的服务器装置的实例。其它服务器装置或中间网络装置可被包含于(例如)如下文更详细描述的图4中所示的其它CDN内。大体而言,通常由产生清单文件(在HTML清单文件或DASH MPD中)的实体选择及配置CDN。在HTML的情况下,可通过改变URL内的主机名称来达成CDN选择。在DASH的情况下,根据本发明的技术,可通过URL中的主机名称及CDN URL型样产生的组合来选择CDN。根据本发明的技术,每一CDN可指定用于在URL自身内产生特定用于所述CDN的字节范围请求的模板。
在图1的实例中,内容预备装置20包括音频源22及视频源24。音频源22可包括(例如)产生电信号的麦克风,所述电信号代表待由音频编码器26编码的经捕获音频数据。替代地,音频源22可包括存储先前记录的音频数据的存储媒体、音频数据产生器(例如计算机化合成器)或任何其它音频数据源。视频源24可包括:视频摄像机,其产生待由视频编码器28编码的视频数据;存储媒体,其经编码有先前记录的视频数据;视频数据产生单元,例如计算机图形源;或任何其它视频数据源。内容预备装置20未必在所有实例中皆通信地耦合到服务器装置60,而是可将多媒体内容存储到由服务器装置60读取的单独媒体。
原始音频及视频数据可包括模拟或数字数据。模拟数据可在由音频编码器26及/或视频编码器28编码之前数字化。音频源22可在讲话参与者正在讲话时从讲话参与者获得音频数据,且视频源24可同时获得讲话参与者的视频数据。在其它实例中,音频源22可包括包括所存储的音频数据的计算机可读存储媒体,且视频源24可包括包括所存储的视频数据的计算机可读存储媒体。以此方式,可将本发明中所描述的技术应用于实况、流、实时音频及视频数据或存档、预先记录的音频及视频数据。
对应于视频帧的音频帧大体上为含有音频数据的音频帧,所述音频数据由音频源22与在视频帧内所含有的由视频源24所捕获的视频数据同时捕获。举例来说,当讲话参与者大体上通过讲话而产生音频数据时,音频源22捕获音频数据,且视频源24同时(即,在音频源22正在捕获音频数据的同时)捕获讲话参与者的视频数据。因此,音频帧可在时间上对应于一个或一个以上特定视频帧。因此,对应于视频帧的音频帧大体上对应于同时捕获到音频数据及视频数据且音频帧及视频帧分别包括音频数据及同时捕获的视频数据的情形。
音频编码器26大体上产生经编码音频数据流,而视频编码器28产生经编码视频数据流。可将每一个别数据流(不管为音频还是视频)称作基本流。基本流为表现的单个、数字地译码(可能被压缩)分量。举例来说,表现的经译码视频或音频部分可为基本流。基本流可在被封装于视频文件内之前转换为包化的基本流(PES)。在相同表现内,流ID可用以区分属于一个基本流的PES包与其它包。基本流的基本数据单元为包化的基本流(PES)包。因此,经译码视频数据大体上对应于基本视频流。类似地,音频数据对应于一个或一个以上相应基本流。
与许多视频译码标准一样,H.264/AVC定义用于无错位流的语法、语义及解码过程,所述无错位流中的任一者符合某一配置文件或级别。H.264/AVC未指定编码器,但编码器被分派有以下任务:保证所产生的位流对于解码器而言为顺应标准的。在视频译码标准的上下文中,“配置文件”对应于算法、特征或工具的子集及应用于其的约束。如由H.264标准所定义,例如,“配置文件”为由H.264标准指定的整个位流语法的子集。“级别”对应于解码器资源消耗(例如解码器存储器及计算)的限制,其与图片的分辨率、位速率及宏块(MB)处理速率有关。可通过profile_idc(配置文件指示符)值来传信配置文件,而可通过level_idc(级别指示符)值来传信级别。
H.264标准(例如)认识到,在由给定配置文件的语法强加的界限内,仍有可能取决于由位流中的语法元素所取的值(例如经解码图片的指定大小)而需要编码器及解码器的性能方面的大变化。H.264标准进一步认识到,在许多应用中,实施能够处理在特定配置文件内语法的所有假设使用的解码器既非实际的也非经济的。因此,H.264标准将“级别”定义为强加于位流中的语法元素的值的约束的指定集合。这些约束可为对值的简单限制。替代地,这些约束可采用对值的算术组合(例如,图片宽度乘以图片高度乘以每秒解码的图片的数目)的约束的形式。H.264标准进一步规定,个别实施可针对每一所支持配置文件而支持不同级别。可提供多媒体内容的各种表现,以适应H.264内的译码的各种配置文件及级别,以及适应其它译码标准(例如即将来临的高效视频译码(HEVC)标准)。
符合配置文件的解码器通常支持所述配置文件中所定义的所有特征。举例来说,作为译码特征,B图片译码在H.264/AVC的基线配置文件中不受支持,但在H.264/AVC的其它配置文件中受到支持。符合特定级别的解码器应能够不要求超过所述级别中所定义的限制的资源地解码任何位流。配置文件及级别的定义可有助于解译能力。举例来说,在视频发射期间,可针对整个发射作业阶段协商一对配置文件及级别定义并就此达成一致。更具体来说,在H.264/AVC中,级别可定义(例如)对以下各者的限制:需要处理的块的数目、解码图片缓冲器(DPB)大小、译码图片缓冲器(CPB)大小、垂直运动向量范围、每两个连续MB的最大运动向量数目,及B块是否可具有小于8x8像素的子块分区。以此方式,解码器可确定解码器是否能恰当地解码位流。
视频压缩标准(例如ITU-T H.261、H.262、H.263、MPEG-1、MPEG-2、H.264/MPEG-4第10部分及即将来临的高效视频译码(HEVC)标准)使用运动补偿的时间预测以减少时间冗余。编码器(例如视频编码器28)可使用根据一些先前编码的图片(在本文中亦称作帧)的运动补偿预测来根据运动向量预测当前译码的图片。在典型视频译码中存在三种主要图片类型。其为帧内译码图片(“I图片”或“I帧”)、预测图片(“P图片”或“P帧”)及双向预测图片(“B图片”或“B帧”)。P图片可使用在时间次序上在当前图片前面的参考图片。在B图片中,可从一个或两个参考图片预测B图片的每一块。这些参考图片可在时间次序上位于当前图片的前面或后面。
参数集大体上含有在序列参数集(SPS)中的序列层标头信息及在图片参数集(PPS)中的不常改变的图片层标头信息。就参数集而言,此不常改变的信息无需针对每一序列或图片而重复;因此,可改良译码效率。此外,参数集的使用可允许实现标头信息的带外发射,从而避免需要冗余发射来达成错误恢复。在带外发射中,在不同于其它NAL单元的信道上发射参数集NAL单元。
在图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单元可为非VCLNAL单元。
封装单元30可将多媒体内容的一个或一个以上表现的数据连同清单文件(例如,MPD)提供到输出接口32。输出接口32可包括:网络接口或用于写入到存储媒体的接口,例如通用串行总线(USB)接口、CD或DVD编写器或刻录器;到磁性或快闪存储媒体的接口;或用于存储或发射媒体数据的其它接口。封装单元30可将多媒体内容的表现中的每一者的数据提供到输出接口32,所述输出接口32可经由网络发射、直接发射或存储媒体而将数据发送到服务器装置60。在图1的实例中,服务器装置60包含存储各种多媒体内容64的存储媒体62,每一多媒体内容64包含相应清单文件66及一个或一个以上表现68A-68N(表现68)。根据本发明的技术,可将清单文件66的部分存储于单独的位置(例如,存储媒体62或另一存储媒体的位置,可能为网络74的另一装置(例如代理装置)的存储媒体)中。
在一些实例中,可将表现68分成适配集。即,表现68的各个子集可包含特性的相应共同集合,例如编解码器、配置文件及级别、分辨率、视图的数目、区段的文件格式、可识别将要随着表现显示的文本及/或待解码及呈现(例如,通过扬声器)的音频数据的语言或其它特性的文本类型信息、可描述适配集中的表现的场景的摄像机角度或真实世界摄像机透视的摄像机角度信息、描述针对特定观众的内容适合性的分级信息,或其类似者。
清单文件66可包含指示对应于特定适配集的表现68的子集以及所述适配集的共同特性的数据。清单文件66还可包含代表适配集的个别表现的个别特性(例如位速率)的数据。以此方式,适配集可为简化的网络带宽适配作准备。可使用清单文件66的适配集元素的子代元素来指示适配集中的表现。
服务器装置60包含请求处理单元70及网络接口72。在一些实例中,服务器装置60可包含多个网络接口(包含网络接口72)。此外,服务器装置60的特征中的任一者或全部可实施于内容分配网络的其它装置(例如路由器、桥接器、代理装置、交换器或其它装置)上。在一些实例中,内容分配网络的中间装置可高速缓存多媒体内容64的数据,且包含实质上符合服务器装置60的组件的组件。大体而言,网络接口72经配置以经由网络74来发送及接收数据。
请求处理单元70经配置以从客户端装置(例如客户端装置40)接收针对存储媒体72的数据的网络请求。举例来说,请求处理单元70可实施超文本传送协议(HTTP)版本1.1,如由R.Fielding等人在RFC2616“超文本传送协议-HTTP/1.1”(网络工作组,IETF,1999年6月)中所描述。即,请求处理单元70可经配置以接收HTTP GET请求或部分式GET请求且响应于所述请求而提供多媒体内容64的数据。所述请求可指定表现68中的一者的区段(例如,使用所述区段的URL)。在一些实例中,所述请求还可指定所述区段的一个或一个以上字节范围。在一些实例中,可使用部分式GET请求来指定区段的字节范围。在其它实例中,根据本发明的技术,可将区段的字节范围指定为区段的URL的部分(例如,根据泛用模板)。
请求处理单元70可进一步经配置以服务HTTP HEAD请求以提供表现68中的一者的区段的标头数据。在任何情况下,请求处理单元70可经配置以处理所述请求以将所请求的数据提供到请求的装置(例如客户端装置40)。此外,请求处理单元70可经配置以:产生用于建构指定字节范围的URL的模板;提供指示所述模板是必要的还是选用的信息;及提供指示任何字节范围是否为可接受的或是否仅字节范围的特定集合是准许的信息。当仅特定字节范围被准许时,请求处理单元70可提供所述被准许的字节范围的指示。
如图1的实例中所说明,多媒体内容64包含清单文件66,所述清单文件66可对应于媒体呈现描述(MPD)。清单文件66可含有不同替代性表现68(例如,具有不同质量的视频服务)的描述,且描述可包含(例如)编解码器信息、配置文件值、级别值、位速率及表现68的其它描述性特性。客户端装置40可检索媒体呈现的MPD以确定如何存取表现68的区段。在常规DASH中,存在两种用以指定字节范围的方式。第一种方式为明确地将字节范围置于个别片段定义中,将所述字节范围存储于MPD XML中。第二种方式为从MPEG文件中的SIDX盒提取字节范围信息,且使用彼SIDX字节范围信息来发出针对媒体的字节范围请求。可使用这些技术中的任一者或如由所属领域的技术人员将理解的其它技术来指定上文所论述的字节范围。
客户端装置40的网页应用程序52可包括由客户端装置40的基于硬件的处理单元执行的网页浏览器,或此网页浏览器的外挂程序。应将对网页应用程序52的提及大体上理解为包含网页应用程序(例如网页浏览器)、独立视频播放器抑或将外挂播放程序并入到网页浏览器的网页浏览器。网页应用程序52可检索客户端装置40的配置数据(未图示)以确定视频解码器48的解码能力及客户端装置40的视频输出44的呈现能力。
配置数据还可包含以下各者中的任一者或全部:由客户端装置40的用户所选择的语言偏好;对应于由客户端装置40的用户设置的深度偏好的一个或一个以上摄像机透视;及/或由客户端装置40的用户选择的分级偏好。网页应用程序52可包括(例如)网页浏览器或经配置以提交HTTP GET请求及部分式GET请求的媒体客户端。网页应用程序52可对应于由客户端装置40的一个或一个以上处理器或处理单元(未图示)执行的软件指令。在一些实例中,关于网页应用程序52所描述的功能性的全部或部分可以硬件或硬件、软件及/或固件的组合实施,其中可提供必备的硬件以执行软件或固件的指令。
网页应用程序52可比较客户端装置40的解码及呈现能力与由清单文件66的信息指示的表现68的特性。网页应用程序52可最初检索清单文件66的至少一部分以确定表现68的特性。举例来说,网页应用程序52可请求清单文件66的描述一个或一个以上适配集的特性的一部分。网页应用程序52可选择表现68的子集(例如,适配集),其具有可由客户端装置40的译码及呈现能力满足的特性。网页应用程序52可接着确定适配集中的表现的位速率、确定网络带宽的当前可用量,且从所述表现中的一者检索具有可由网络带宽满足的位速率的区段(或字节范围)。
大体而言,较高位速率的表现可产生较高质量的视频播放,而当可用网络带宽减小时较低位速率的表现可提供足够质量的视频播放。因此,当可用网络带宽相对高时,网页应用程序52可从相对高的位速率表现检索数据,而当可用网络带宽为低时,网页应用程序52可从相对低的位速率表现检索数据。以此方式,客户端装置40可经由网络74来流式传输多媒体数据,同时也适合于网络74的变化的网络带宽可用性。
如上文所提及,在一些实例中,客户端装置40可将用户信息提供到(例如)服务器装置60或内容分配网络的其它装置。用户信息可采用浏览器小型文字档的形式,或可采用其它形式。网页应用程序52(例如)可收集用户识别符、用户识别符、用户偏好及/或用户人口统计信息,且将此用户信息提供到服务器装置60。网页应用程序52可接着接收与目标广告媒体内容相关联的清单文件,以用以在播放期间将来自目标广告媒体内容的数据***到所请求的媒体内容的媒体数据中。可由于对清单文件或清单子文件的请求而直接接收此数据,或可经由到替代性清单文件或子文件的HTTP重定向(基于所供应的浏览器小型文字档,其用以存储用户人口统计及其它目标信息)而接收此数据。
有时,客户端装置40的用户可使用客户端装置40的用户接口(例如键盘、鼠标、触笔、触摸屏接口、按钮或其它接口)而与网页应用程序52互动,以请求多媒体内容(例如多媒体内容64)。响应于来自用户的这些请求,网页应用程序52可基于(例如)客户端装置40的解码及呈现能力来选择表现68中的一者。为了检索表现68中的所选者的数据,网页应用程序52可顺序地请求表现68中的所选者的特定字节范围。以此方式,代替经由一个请求来接收完整文件的做法,网页应用程序52可经由多个请求顺序地接收文件的部分。根据本发明的技术,网页应用程序52可形成包含指定字节范围的URL(例如,根据模板)的请求。
在一些实例中,服务器装置60可指定用于来自客户端装置(例如客户端装置40)的URL的泛用模板。客户端装置40又可使用所述模板来建构HTTP GET请求的URL。在DASH协议中,URL是通过将其明确地列出于每一区段内抑或通过给出URLTemplate而形成,所述URLTemplate为含有一个或一个以上熟知型样(例如$$、$RepresentationID$、$Index$、$Bandwidth$或$Time$(由DASH的当前草案的表9描述))的URL。在作出URL请求之前,客户端装置40可将文本串(例如“$$”、表现id、区段的索引等)代入URLTemplate中以产生待提取的最终URL。本发明定义若干额外XML字段,其可被加到DASH文件的SegmentInfoDefault元素(例如,在多媒体内容的MPD(例如多媒体内容64的清单文件66)中)。
在一些实例中,服务器装置60可在第一字段中提供表达泛用模板的使用(例如,模板是必要的还是选用的)的数据。举例来说,服务器装置60(或代理装置)可将指示是否客户端装置40被要求或只是被准许使用模板的信息提供到客户端装置40。服务器装置60可设置清单文件66中的元素的值以指示模板的使用。举例来说,MPD文件(代表清单文件66的实例)可包含一标记为“MustUseRangeURL”的字段,其可采用三个值中的一者:DoNotIncorporateByteRangeIntoUrl(0);ByteRangeTemplateOptional(1);或ByteRangeTemplateMandatory(2)。在一些实例中,如果服务器装置60将值设置为零,那么所提取的URL必须不含有字节范围且必须不使用ByteRangeTemplate。在一些实例中,服务器装置60自选地将值设置为1,DASH播放器(例如,网页应用程序52)可发出规则字节范围请求,或其可将字节范围嵌入URL自身内。在一些实例中,如果服务器装置60将值设置为2,那么DASH播放器必须在URL内发出字节范围请求。
由本发明提供的另一字段为列举属性“AllowedByteRanges”,其还可采用三个值中的一者。第一值为RangesOnlyFromMPD(0)。当服务器装置60指定此值时,不允许DASH播放器(例如,网页应用程序52)使用来自SIDX的字节范围(其可包含于表现68中的相应者的数据内)。因此,可将DASH播放器限制到仅使用来自DASH MPD(例如,清单文件66)的字节范围。第二值为RangesFromSIDX(1)。当服务器装置60指定此值时,DASH播放器可仅使用来自SIDX的字节范围(再次,其可被包含作为表现68中的相应者的区段内的数据)以产生片段或区段请求。第三值RangesFromAnywhere(3)允许任意字节范围请求(包含使用SIDX或MPD的能力及将两个或两个以上的片段组合于区段请求中的能力)以在字节范围请求中同时请求两个或两个以上的区段或针对一个或一个以上区段或区段的部分的请求的其它混合体。
由本发明提供的又一字段为ByteRangeTemplate字段。服务器装置60可提供此字段的数据。根据本发明的技术,ByteRangeTemplate可指定包含字段$Url$、$StartByte$及$EndByte$的串型样。另外,ByteRangeTemplate可含有为了发出基于URL的字节范围请求而添加的额外ASCII字符,或其可包含代表单个美元符号的符号“$$”,如在URLTemplate元素中。客户端装置40可用数据代替ByteRangeTemplate的三个字段中的每一者。明确地说,客户端装置40可将对应于URLTemplate字段的值的值代入到$Url$字段中。客户端装置40还可在$StartByte$及$EndByte$字段中将待请求的字节范围的开始字节及结束字节代入到所得URL中。以此方式,客户端装置40可产生含有用于字节范围请求的信息的URL。客户端装置40可经由其内不含有“Range:”字段的GET请求而从此所建构的URL提取数据。即,客户端装置40可将GET请求(包含所产生的URL)提交给服务器装置60。
所属领域的技术人员应理解,字节范围模板的串型样是否存储于ByteRangeTemplate属性中或换作其是否存储于URLTemplate中是无关紧要的。仅仅出于实例的目的而提供模板的串型样存储于ByteRangeTemplate及URLTemplate属性中。大体而言,可将这些串型样存储于任一位置中或清单文件中的别处。
下文提供指定这些字段的数据的请求的实例。在此实例中,网站服务器(例如服务器装置60)使用字节范围抑或通过服务范围请求(在范围嵌入于URL中的情况下)来分发多媒体内容(例如,电影“TRON”)。网站服务器可为(例如)www.mp4player.com。下文呈现此第一实例的值:
segment.$Bandwidth$.$Index$″ByteRangeTemplate=″$Url$/$StartByte$/$EndByte$″MustUseRangeURL=1(=ByteRangeTemplateOptional)AllowedByteRanges=0(=RangesOnlyFromMPD)
在此实例中,在“www.mp4player.com”处的网站服务器通过将“1”的值指派给元素“MustUseRangeURL”而指示字节范围模板对于客户端装置而言为选用的。即,客户端装置40可将字节范围指定为根据URL模板及字节范围模板所形成的URL的部分,或客户端装置40可利用常规部分式GET请求。如果客户端装置40决定使用所述模板,那么客户端装置将提交针对URL的请求(“http://www.mp4player.com/TRON/segment.$Bandwidth$.$Index$”),接着为斜杠“/”,$StartByte$的值、另一斜杠“/”,且接着为$EndByte$的值。因此,客户端装置40可建构具有两个部分的URL:对应于特定表现及其区段的基础部分;及指定所请求的字节范围的开始字节及结束字节的字节范围部分。所述字节范围部分可基本上执行部分式GET请求中的“Range:”标头的功能,但被指定于URL路径自身中而非指定为“Range:”标头。对于所属领域的技术人员而言,应显而易见,因为字节范围被指定于URL路径中,所以GET请求的结果潜在地可由任何中间装置(例如透明(或显式)网站代理装置)高速缓存。对于所属领域的技术人员而言,应明显地,可高速缓存的请求允许放大视频播放以允许数千或甚至数百万个客户端同时请求相同内容。对于所属领域的技术人员而言,应显而易见,因为字节范围是根据模板(其对于不同内容分配网络而言可为不同的)而指定,所以使不同内容分配网络针对url路径内字节范围(byte-range-within-url-path)请求而采用一种且仅一种格式的重担得到纾解。
此外,在此实例中,网站服务器通过将“0”的值指派给元素“AllowedByteRanges”而指示仅可指定被指定于MPD中的字节范围。因此,不管客户端装置是决定使用字节范围模板来指定字节范围还是将字节范围指定为部分式GET请求,客户端装置将仅被准许指定MPD文件中所识别的字节范围。
假定由客户端装置执行的网页浏览器(例如,客户端装置40的网页应用程序52)支持字节范围请求且针对外挂程序而支持字节范围请求,DASH外挂程序可使用HTTP1.1的Range:标头来发出字节范围请求。假定1000Kbps位速率的视频具有区段ID=27,指定字节范围的常规部分式GET请求可为如下:
GET http://www.mp4player.com/TRON/segment.1000.27HTTP/1.1
Host:www.mp4player.com
Range:435291-560829
如果网页浏览器不允许其外挂程序发出字节范围请求,那么根据上文的实例,所述请求可为如下:
GET http://www.mp4player.com/TRON/segment.1000.27/435291/560829HTTP/1.1
Host:www.mp4player.com
以此方式,本发明的技术可允许由客户端装置(例如客户端装置40)执行的网页浏览器外挂程序(例如网页应用程序52)发出字节范围请求(即使当所涉及的浏览器不允许在请求标头中发出正式的HTTP1.0“Range:”标头时)。同样地,网页浏览器外挂程序可使用这些技术来以此方式来发出字节范围请求(即使网页浏览器不支持字节范围请求)(例如)以处置其它网络装置(例如中间网络装置,例如,路由器)不支持或恰当地处置部分式GET请求的情形。
响应于由网页应用程序52提交给服务器装置60的请求,网络接口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中的每一者可包含于一个或一个以上编码器或解码器中,所述一个或一个以上编码器或解码器中的任一者可整合为组合式视频编码器/解码器(CODEC)的部分。同样地,音频编码器26及音频解码器46中的每一者可包含于一个或一个以上编码器或解码器中,所述一个或一个以上编码器或解码器中的任一者可整合为组合式CODEC的部分。一包含视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、网页应用程序52及/或解封装单元50的设备可包括集成电路、微处理器及/或无线通信装置(例如蜂窝式电话)。
以此方式,客户端装置40表示用于检索多媒体数据的信息的装置的实例,其可包含一个或一个以上处理器,所述一个或一个以上处理器经配置以:确定待从源装置请求的多媒体内容的表现的文件的字节范围;形成统一资源定位符(URL),所述URL在所述URL的文件路径部分中根据源装置的要求来指定文件及字节范围;及向源装置发出指定所形成的URL的GET请求。
此外,服务器装置60表示用于发送视频数据的信息的装置的实例,其可包含一个或一个以上处理器,所述一个或一个以上处理器经配置以:提供多媒体内容的清单文件,其中所述清单文件指定统一资源定位符(URL)模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;接收包含根据所述URL模板及所述字节范围模板建构的URL的请求,其中所述请求的URL指定多媒体内容的表现的字节范围;及响应于所述请求而输出对应于所述请求的字节范围的表现的多媒体数据。
图2为框图,其说明形成图1的网络74的部分的装置的实例集合。在此实例中,网络74包含路由装置80A、80B(路由装置80)及代理高速缓冲存储器装置82。路由装置80及代理高速缓冲存储器装置82希望表示可形成网络74的部分的少量装置。其它网络装置(例如交换器、集线器、网关、防火墙、桥接器及其它这些装置)还可包含于网络74内。此外,可沿服务器装置60与客户端装置40之间的网络路径而提供额外网络装置。
大体而言,路由装置80实施一个或一个以上路由协议以经由网络74交换网络数据。在一些实例中,路由装置80可经配置以执行代理或高速缓存操作,例如归因于如下文所描述的代理高速缓冲存储器装置82的功能性。因此,在一些实例中,还可将路由装置80称作代理装置。大体而言,路由装置80执行路由协议以发现经由网络74的路由。通过执行这些路由协议,路由装置80B可发现从其自身经由路由装置80A到服务器装置60的网络路由。
因此,路由装置80B可从客户端装置40接收以服务器装置60为目的地的网络通信(例如TCP-IP封装HTTP GET请求)。响应于这些通信,路由装置80B可确定到服务器装置60的路由,且进一步确定所述路由包含代理高速缓冲存储器装置82。举例来说,代理高速缓冲存储器装置82可包括沿所述路由的“下一跳跃”,或一个或一个以上额外网络装置可将路由装置80B通信地耦合到代理高速缓冲存储器装置82。代理高速缓冲存储器装置82还可将通信导引到路由装置80A,所述路由装置80A可将通信转递到服务器装置60。
代理高速缓冲存储器装置82可执行代理高速缓冲存储器功能。HTTP代理高速缓冲存储器对于因特网的运作是重要的。HTTP代理高速缓冲存储器装置(例如代理高速缓冲存储器装置82)可实施任何或所有HTTP协议版本(例如,HTTP0.9、HTTP1.0及/或HTTP1.1)。此外,代理高速缓冲存储器装置(例如代理高速缓冲存储器装置82)可基于出现于HTTP GET请求中的唯一“统一资源定位符”(URL)来高速缓存内容。此URL可用作用以随后在高速缓冲存储器中查找提取请求的键值。代理高速缓冲存储器装置82可经配置以高速缓存多媒体内容的表现的区段或子区段,其可对应于URL(例如根据本发明的技术的经修改URL)。
在一些实例中,内容分配网络(CDN)可提供于网络74内或通信地耦合到网络74。提供CDN的公司的实例包含Akamai、Level3Communications及Limelight。CDN的装置可执行类似于代理高速缓冲存储器装置82的功能。CDN可将非常类似于代理高速缓冲存储器装置的装置布置于ISP及国家回程通信提供者的入口网站处。为收取费用,CDN可分配内容或给代理高速缓冲存储器装置“预先填充”客户的内容。客户可接着参考所述内容且经由一般已知为DNS拌和的技术,智能名称服务器可将针对内容的请求导引到最近的本地CDN高速缓冲存储器,从而在网页正载入时节约宝贵的往返时间。替代地,客户可支付不同费用且可仅高速缓存内容(其未事先被“预先填充”)。
如上文所论述,流网络协议可提供相同多媒体内容的多个表现。因此,虽然自适应性流协议(例如DASH)允许进行适配,但益处的成本可能很高。多媒体内容(其可表示数十、数百、数千、数百万或更大数目个字节)可在(例如)八个不同位速率下编码,且被分割为2秒区段,外加一个或一个以上音频流(例如,立体声或Dolby5.1),音频流还可被分割为片段。因此,2小时视频可产生3600或更多个片段乘10个流,对应的数据可消耗代理高速缓冲存储器或CDN中的大量目录存储空间。
为了避免大量存储,服务器装置60可经配置以接收流中的每一者的个别文件(例如,在上文的实例中,十个文件)。根据本发明的技术,客户端装置40可使用HTTP GET或部分式GET请求或GET请求的URL中指定的字节范围请求来检索区段或子区段。在一些实例中,可由客户端装置40使用HTTP协议堆栈来发出字节范围请求。以此方式,例如,36,000个片段的典型电影可折叠为十个文件:8个音频及2个视频。根据本发明的技术,客户端装置40可使用HTTP GET请求来检索文件的特定字节范围,所述HTTPGET请求包含代表自身指定字节范围的URL的数据。
在一些情况下,当代理装置无法恰当地处置“Range:”标头但接收到HTTP1.1“Range:”标头时,所述代理装置可忽略标头且提取并分发整个文件,而非文件的所请求部分。对于2小时MPEG视频文件而言,此可为灾难性的,所述视频文件可达到几十亿字节的大小。在此流的中间进行的速率切换可能导致代理高速缓冲存储器开始针对新速率而提取整个文件,从而导致延迟(直到至少一半数据到达高速缓冲存储器,此为高速缓冲存储器可发送回内容响应的较早时间)。此破坏了部分式GET请求的预期目的,所述预期目的是顺序地检索文件的小部分以实现网络流。为了克服此问题,本发明提供用于将字节范围请求透明地嵌入URL中由此绕过将“Range:”标头请求转换为完整文件请求的代理高速缓冲存储器的技术。此外,本发明还提供用于传信以下信息的技术:原始服务器应寻找字节范围请求。
明确地说,本发明提供用于经由不支持字节范围请求的中间代理来传信字节范围的技术。即,客户端装置40可提交字节范围请求,使得所述字节范围请求由中间网络装置(例如路由装置80及代理高速缓冲存储器装置82)恰当地处置。如上文所提及,网页浏览器(例如由客户端装置40执行的网页应用程序52)可不仅在网页浏览器不根据HTTP1.1来实施(或不允许外挂程序利用)字节范围请求的情况下根据字节范围模板将范围请求嵌入URL中,而且在中间装置不支持或不恰当地处置部分式GET请求时提交范围请求。自始至终,由于字节范围被嵌入URL中,所以代理装置(例如路由装置80及/或代理高速缓冲存储器装置82)可能能够存储部分式字节范围响应(即使当代理装置不理解字节范围请求时)。因此,对完全相同的字节范围的未来提取应导致代理装置正确地从其高速缓冲存储器提取所述字节范围的数据。
本发明还提供HTTP的新“扩展标头”。大体而言,HTTP允许在HTTP“GET”请求中及在HTTP响应中的用户定义的扩展标头。如RFC2616的部分7.1中所定义,“未辨识的标头字段应被接受器忽略且必须由透明代理转递”。这些扩展标头经剖析为缩减为“GET”请求中的扩展标头字段的实体标头字段。扩展标头名称为任何未辨识的HTTP标头(即,任何字母符记)。虽然扩展标头可为尚未由HTTP定义的任何字母符记,但通常在SMTP消息标头中,保证决不将字首“X-”用于SMTP的任何未来版本中,如RFC822中所定义。HTTP协议自身是基于RFC822中所定义的标头机制,且“X-”惯例也由HTTP代理用以识别非HTTP扩展标头,所述非HTTP扩展标头通常被转递(未改变)到原始服务器,且接着被转递回到客户端(未改变)。
本发明提供称为“X-Dash-ByteRange-URL”的新扩展标头,其仅出现于HTTP GET请求中。字首“X-”用以避免与HTTP的未来冲突。字首“Dash-”传信DASH客户端正产生标头。所属领域的技术人员将领会,此标头的确切名称是不重要的;这些技术假定客户端装置及服务器装置是根据扩展标头的通用名称而配置。
此标头将字节范围被包含于HTTP GET请求中的信息提供到中间节点及代理装置(其经配置以解译标头)。此允许原始服务器或CDN将MPEG文件存储作为单个文件,且如果其理解此标头,那么其可使用“X-Dash-ByteRange-URL”标头来确定存在被嵌入于URL中的字节范围。
因此,客户端装置40可在嵌入于GET请求的URL内的范围请求中提供扩展标头。此外,当代理装置(例如路由装置80及/或代理高速缓冲存储器装置82)经配置以辨识标头时,代理装置可仅检索所请求的字节范围并将其提供到客户端装置40。此外,代理高速缓冲存储器装置82及/或路由装置80可经配置以根据针对相同文件的字节范围请求的序列来重新汇编文件。另一方面,当代理装置(例如路由装置80及/或代理高速缓冲存储器装置82)未经配置成解译标头时,代理装置可只是向服务器装置60传递包含标头的GET请求。
“X-Dash-ByteRange-URL”标头可具有有效载荷。下文论述有效载荷的两个实例。在实例中,有效载荷为空的。通过标头的存在来传信字节范围的存在。字节范围可总是被附加到HTTP GET URL请求的结尾。原始服务器(例如,服务器装置60)或代理装置(例如,路由装置80或代理高速缓冲存储器装置82中的一者)可接着从最后一个字符起搜索URL且推导出最大长度的字节范围请求(例如,使用针对字符“0-9”及“-”及“,”的搜索,如由RFC2616中的字节范围请求规范所定义)。
在一些实例中,原始服务器或代理装置可接着从URL移除字节范围,开启文件(使用字节范围被移除的URL),提取必要的字节,且将所述范围的字节分发回到客户端装置40。此设计与不实施“X-Dash-ByteRange-URL”标头的中间代理后向兼容,且这些中间代理装置将正确地高速缓存字节范围且在稍后的请求时将其分发到客户端或客户端代理。举例来说,代理高速缓冲存储器装置82可经配置以辨识及处置X-Dash-Byterange-URL标头,而路由装置80B可未经配置以处置X-Dash-Byterange-URL标头。尽管如此,路由装置80B仍可将包含此标头的请求传递到代理高速缓冲存储器装置82,且代理高速缓冲存储器装置82可从这些请求移除标头,检索所请求的字节范围,高速缓存所请求的字节范围的数据,及将所请求的字节范围经由路由装置80B提供到客户端装置40。代理高速缓冲存储器装置82可高速缓存相同文件的随后的字节范围,且在一些实例中可根据这些字节范围请求的序列重新汇编完整文件。以此方式,代理高速缓冲存储器装置82可避免在仅将所请求的字节范围提供到客户端装置40之前载入整个文件(此可另外在向客户端装置40的发射中导致显著延迟)。
同时,原始服务器(例如,服务器装置60)可将整个视频流保持在单个MPEG文件中,且其可更有效率地服务于请求且更有效率地将MPEG视频存储于磁盘上或非易失性(例如,FLASH)存储器中。举例来说,根据本发明的技术,以下请求可用以检索视频的字节范围:
GET http://www.example.com/movies/1984_TRON.1000.27123992-240211
host:www.example.com
X-Dash-ByteRange-URL
在另一实例中,X-Dash-ByteRange-URL标头的有效载荷含有来自URL自身的实际字节范围请求规范。因此,其如用户定义的“Range:”标头般起作用,但行为是不同的。原始服务器(例如服务器装置60)可经配置以解译具有有效载荷的“X-Dash-ByteRange-URL”标头,且将此标头的有效载荷与请求URL匹配。通过计算型样匹配,原始服务器可从URL移除字节范围说明符且形成新URL,所述新URL用以从其磁盘或非易失性存储器提取完整MPEG文件。原始服务器可接着使用字节范围规范(再次,使用与由RFC2616指定的语法相同的语法)以从MPEG文件提取必要的字节。举例来说,根据本发明的技术,以下请求可用以检索视频的字节范围。
GET http://www.example.com/movies/123992-240211/1984_TRON.1000.27
host:www.example.com
X-Dash-ByteRange-URL:123992-240211
服务器、代理或CDN装置(例如,服务器装置60、路由装置80或代理高速缓冲存储器装置82中的一者)可接着(例如)如下重新撰写此请求且分发内容,就如同已作为常规部分式GET请求产生所述请求一般:
GET http://www.example.com/movies//1984_TRON.1000.27
host:www.example.com
Range:123992-240211
应注意,在NFS及UNIX文件***上,将两个或两个以上的“/”字符的存在视为与单个“/”字符相同。可存在对本技术的许多益处。经配置以实施HTTP的此增强的CDN或代理装置可服务向单个MPEG文件的字节范围请求,从而节约磁盘上的存储空间。智能型代理高速缓冲存储器或CDN可甚至根据一系列这些范围请求建置MPEG文件,从而将所有这些范围请求组合为单个经高速缓存文件。举例来说,代理高速缓冲存储器装置82可经配置以根据多个顺序字节范围请求(例如,来自客户端装置40或其它客户端装置)建构完整MPEG文件或其它视频文件。
存在其它可能的实施,例如其中型样被指定于“X-Dash-ByteRange-URL”标头中或另一扩展标头中,以传信在URL中字节范围的存在,所述字节范围可由原始服务器移除。还预期将所有这些其它实施用于实施本发明的技术。
以此方式,代理高速缓冲存储器装置82表示用于发送视频数据的信息的装置的实例,其可包含一个或一个以上处理器,所述一个或一个以上处理器经配置以:提供多媒体内容的清单文件,其中所述清单文件指定统一资源定位符(URL)模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;接收包含根据所述URL模板及所述字节范围模板建构的URL的请求,其中所述请求的URL指定多媒体内容的表现的字节范围;及响应于所述请求而输出表现的对应于所述请求的字节范围的多媒体数据。
图3为框图,其说明包含各种内容分配网络92A-92N(CDN92)的实例***90。在此实例中,内容预备装置20预备呈多种表现的多媒体内容,且将一个或一个以上表现提供到CDN92中的每一者。在一些实例中,CDN92中的每一者可接收相同表现,而在其它实例中,CDN92可接收关于其它CDN92的表现的不同集合。类似于服务器装置60(如关于图1及图2所论述)的服务器装置可提供于CDN92中的每一者中。替代地,代理或高速缓冲存储器装置可提供于CDN92中的每一者中。此外,在一些实例中,CDN92中的一些包含服务器装置,而CDN92中的其它CDN包含代理装置。术语“CDN”大体上在本发明中用以指代内容递送网络、内容分配网络、内容服务器群或其它类似设施。根据本发明的技术,CDN92中的每一者可包含特定用于相应CDN的指定字节范围的URL的模板。
在一些实例中,CDN92中的某些者仅在当日、当周、当月、当年或其它时间周期的某些时间期间为在作用中的。举例来说,CDN92A可在早晨及下午若干小时期间为作用中的,而CDN92B可在晚间及夜间若干小时期间为作用中的。
本发明提供用于选择CDN或内容服务器群(例如,通过客户端装置40)的技术,如关于图3所描述。假定DASH MPD文件包含指示一系列BaseURL的数据,所述BaseURL用以产生针对DASH内容的请求。此外,假定每一BaseURL指代唯一CDN(例如,CDN92中的唯一者)。因此,DASH播放器(由客户端装置40执行)可经配置以通过选择对应的BaseURL来选择适当的CDN。在下表1中,展示了可用以作出选择的一系列五个选择准则。存在可使用的其它准则(另外或在替代例中),且这些五个准则代表了广泛得多的可能选择准则的集合。因此,可关于表1中所示的准则而提供额外或替代性选择准则。
表1-实例CDN选择准则
在实例中,客户端装置40可通过指定重定向URL来选择CDN92中的一者,所述重定向URL命名重定向服务。重定向服务器装置94表示在重定向URL处可用的执行重定向服务的装置。在此情况下,客户端装置40可将POST消息发送到重定向URL,从而导致POST消息被导引到重定向服务器装置94。在消息的主体中,客户端装置40可指定单独的BaseURL。重定向服务器装置94可接着检查BaseURL,对将使用CDN92中的哪一者作出决策,及在HTTP响应的主体中将新BaseURL传回到客户端装置40。所述决策可基于例如POSTing(告示)客户端装置的位置(位置协议可将客户端IP地址映射到位置)、浏览器类型(指示于POST请求中)、网络地理及/或表1中所列出的选择准则中的任一者,或类似准则。应注意,代替使用POST方法,客户端装置40可替代地使用GET方法(在GET方法的主体中发送内容),且重定向服务器可使用HTTP301(内容被移动)或307(暂时重定向)响应而直接将客户端装置40重定向到CDN上的第一内容片段。
在一些情况下,客户端可能未被配置成对MPD中的CDN选择信息起作用,因此其可不仅将BaseURL告示到重定向服务器,而且其可将选择准则告示到服务器,且第三,其可将其本地信息(例如地理位置信息、跳跃计数、本地当日时间等)告示到重定向服务器装置94。在此情况下,重定向服务器94可执行完整决策过程且传回应由客户端装置40使用的BaseURL。
另外,重定向服务装置94可经配置以分析可取决于客户端装置40请求查看的特定多媒体内容的信息。一些视频标题未必在CDN92中的每一者上皆可用。举例来说,某一内容可在某一国家归因于出口或版权限制而不可在CDN上获得。可经由实施此实例而作出这些内容选择决策。在DASH的上下文中,名为“BaseURL@redirectionUrl”的选用属性可含有用于这些经由HTTP的POST请求的URL。
在其它实例中,新DASH属性(例如,称为BaseURL@selectionAttribute)可用以指示一个或一个以上选择属性。即,客户端装置40可从服务器或其它装置(例如,CDN92中的一者的装置或另一装置)接收此属性的数据。此属性的内容为零或更大数目的列表,其可指定一个或一个以上选择准则。另外,某些数可具有一系列自变量,其中每一BaseURL有一个自变量。在这些实例中,无需存在重定向URL。此外,无需指定selectionAttribute。即,默认地,请求selectionAttribute行为。在此情况下,执行于客户端装置40上的DASH播放器可表现得如同选择准则为“加权随机”一般,其中所有可能的BaseURL上具有相等权重。DASH播放器可在所有所述BaseURL的中作出随机及均匀选择且接着使用所选的BaseURL来作出所有未来请求。
在又一实例中,仅一个选择准则出现于selectionAttribute中。在此实例中,DASH播放器使用简单的选择准则(例如,通过随机选择以使服务器负载平衡、通过当日时间、通过最少往返延迟、通过最少跳跃计数及/或使用位置准则)来确定CDN92中的适当者。DASH客户端接着使用所选的BaseURL来进行所有未来请求。举例来说,<selectionAttribute="1(0.2,0.2,0.3,0.3)″>的值可导致由客户端装置执行的负载平衡机制在所有可能的BaseURL的中进行随机地选择。然而,存在20%的挑选最初两个BaseURL的机会及30%的挑选最后两个BaseURL的机会。一旦选择了BaseURL,DASH客户端便将不断针对未来请求而重新使用所述所选择的BaseURL。
在另一实例中,可指定一个以上的selectionAttribute。举例来说,可存在例如<selectionAttribute="3,4,2(0-359,359-1439,0-1439,1080-1439),1(0.2,0.2,0.2,0.4)″>的值。在此实例中,额外selectionAttribute的存在指示DASH播放器应首先使用准则3、接着使用准则4,接着使用准则2,接着根据给定的权重(即,0.2、0.2、0.2及0.4)而打破准则1的均势。应注意,如果一些BaseURL已经被消除,那么可放大剩余权重使得其之总和为1.0。
为了说明此实例,假设存在4个潜在BaseURL A、B、C及D,其中所述BaseURL对应于相应CDN。举例来说,A可对应于CDN92A,B可对应于CDN92B,C可对应于CDN92C,且D可对应于CDN92D。首先,可计算A、B、C及D中的每一者的往返延迟(RTD)(例如,使用“ping”消息)。此可指示RTD如下:A-20ms;B-20ms;C-33ms;D-40ms。接着,按递减的偏好,选择列表为:A、B、C、D,其中A及B首先不分胜负。因此,可测量A、B、C及D中的每一者的跳跃计数(例如,使用因特网控制消息协议(ICMP)“ping”消息)。即,客户端装置40可将ICMP“ping”消息提交给CDN92中的相应者以计算每一CDN的跳跃计数。出于实例的目的,假设确定了以下的跳跃计数值:A-5个跳跃;B-3个跳跃;C-12个跳跃;D-20个跳跃。接着,按递减的偏好,选择列表为B、A、C、D,因为B经确定为具有比A少的跳跃,所以使B为更合意的。
继续此实例,可将当日时间确定为(例如)下午3:00。经传信用于BaseURL的当日时间值可为如下:A-下午6点到午夜;B-午夜到上午6点;C-上午6点到午夜;D-全天。在此实例中,客户端装置可接着消除A及B(假定当前当日时间为下午3:00),因为下午3:00落在A及B的当日时间范围外。因此,最终选择可成为C或D(例如,CDN92C或92D)。可作出最小字典式选择,其对应于C,因为33ms<40ms。
在又一实例中,可存在少量CDN但大量当日时间约束、负载平衡权重或对CDN的类似限制。在此实例中,如果存在N个BaseURL,那么selectionAttribute可含有少量约束,但每一约束可具有N个以上的自变量。第(N+1)自变量可指代URL#1,第(N+2)自变量可指代URL#2,等等。以此方式,当存在N个以上的自变量时,BaseURL可重复。此实例可通过使得不必重复BaseURL而节约存储空间。在此情况下,每一约束的自变量的数目应匹配。此对于例如当日时间的约束而言尤为有用。
为了说明此实例,就4个CDN A、B、C、D而言,可取决于当日时间而存在不同的负载平衡约束。在早晨,CDN92A及92B可接收负载的80%(均匀地平衡),但在晚间,CDN92C及92D获得负载的70%(均匀地平衡)。可将此约束描述为如下:<selectionAttribute="2(0-719,0-719,0-719,0-719,720-1439,720-1439,720-1440,720-1439)1(0.4,0.4,0.1,0.1,0.1,0.2,0.35,0.35)″>。
图4为概念图,其说明实例多媒体内容100的元素。多媒体内容100可对应于多媒体内容64(图1)或存储于存储器62中的另一多媒体内容。在图4的实例中,多媒体内容100包含媒体呈现描述(MPD)102及多个表现110-120。表现110包含选用标头数据112及区段114A-114N(区段114),而表现120包含选用标头数据122及区段124A-124N(区段124)。为方便起见,字母N用以指定表现110、120中的每一者中的最后电影片段。在一些实例中,在表现110、120之间可存在不同数目个电影片段。
MPD102可包括与表现110-120分离的数据结构。MPD102可对应于图1的清单文件66。同样地,表现110-120可对应于图1的表现68。大体而言,MPD102可包含大体上描述表现110-120的特性的数据,例如译码及呈现特性、适配集、MPD102所对应的配置文件、文本类型信息、摄像机角度信息、分级信息、特技模式信息(例如,包含时间子序列的指示表现的信息)及/或用于检索远程周期的信息(例如,用于在播放期间将目标广告***到媒体内容中)。还可将远程周期称作外部周期。图4到图7(下文予以更详细论述)说明具有包含于MPD及/或表现中的任一者或两者中(例如在表现的区段或表现的标头数据内)的各种元素的多媒体内容的各种实例。图4到图7的MPD中的任一者或全部可实质上对应于图4的MPD102。
根据本发明的技术,图4的MPD102可指定信息,例如用于字节范围的URL模板、模板是必要的还是选用的,及CDN选择准则。根据本发明的技术的MPD类型规范的实例元素提供于以下的XML伪码中。
以此方式,MPD102可包含指示多媒体内容100的重定向URL的数据。如上文关于图3所描述,BaseURL可被重定向到CDN92中的一者。即,客户端装置40可将HTTPPOST提交给重定向URL,所述重定向URL可对应于重定向服务器装置94。客户端装置40可从重定向服务器装置94接收响应,使得所述响应包含指示新URL的信息,所述新URL用于基于BaseURL而从多媒体内容100的表现110-120中的一者接收数据。明确地说,BaseURL可用以选择CDN92中的适当者。
此外,根据上文的实例伪码,MPD102可包含指示选择属性的数据。如上文所论述,选择属性可包含代表选择准则的数字数据,其可或可不附有BaseURL的自变量。因此,客户端装置40或代理装置(例如代理高速缓冲存储器装置82(图2))可使用选择属性的数据来选择CDN92(图3)中的适当者(将导致客户端装置40从所述适当CDN检索多媒体内容100的数据)。
以下XML伪码提供默认区段存取信息的元素的实例集合,所述默认区段存取信息可提供于MPD102中。
下文的XML伪码提供区段存取信息的元素的实例集合,所述区段存取信息可由MPD102提供。
以此方式,MPD102可包含代表URL模板的数据,其可指定客户端装置(例如客户端装置40)可如何结构化HTTP GET请求中的URL以在URL自身内而非通过“Range:”标头请求字节范围。因此,客户端装置40可使用MPD102的数据来建构在URL内指定字节范围的HTTP GET请求而非使用“Range:”标头。因此,虽然将所述请求建构为HTTP GET请求,但所述请求可导致服务器装置(例如服务器装置60)仅提供如由URL自身指定的所请求字节范围。即,代替提供URL的所有数据,服务器装置60可改为将所请求的字节范围提供于URL自身内。因此,服务器装置60无需评估在“Range:”标头后面的数据,而是改为可根据URL自身来确定所请求的字节范围。同样地,代理高速缓冲存储器装置82可经配置以分析HTTP GET请求的URL,及高速缓存URL内的所请求字节范围并将其提供到客户端装置40,同时亦将所请求的字节范围与相同文件的先前及/或后续字节范围串联。
下文的XML伪码提供对SegmentInfo及SegmentInfoDefault共有的分组属性的元素的实例集合,所述分组属性可由MPD102提供。SegmentInfo及SegmentInfoDefault的实例包含:
下文的XML伪码提供区段URL的元素的实例集合,所述区段URL可由MPD102提供。
下文的XML伪码提供URL模板的元素的实例集合,所述URL模板可由MPD102提供。
以此方式,MPD102可包含指示URL模板的信息。即,元素byteRangeTemplate表示用于指定所请求字节范围的URL模板的数据。此外,以此方式,MPD102可包含指示模板的使用是必要的还是选用的信息。即,mustUseRangeURL的数据可指示客户端装置40是否被准许使用常规HTTP部分式GET请求或模板来请求字节范围或客户端装置40是否被要求使用模板。此外,allowedByteRanges的数据可指示可请求的特定字节范围或是否不存在对字节范围的限制。
下文的XML伪码提供区段列表的元素的实例集合,所述区段列表可由MPD102提供。
标头数据112(当存在时)可描述区段114的特性,例如,随机存取点的时间位置,区段114中的哪一者包含随机存取点,到区段114内的随机存取点的字节偏移、区段114的统一资源定位符(URL)或区段114的其它方面。标头数据122(当存在时)可描述区段124的类似特性。另外或替代地,这些特性可完全包含于MPD102内。
区段114包含一个或一个以上经译码视频样本,所述经译码视频样本中的每一者可包含视频数据的帧或切片。区段114的经译码视频样本中的每一者可具有类似的特性,例如,高度、宽度及带宽要求。可由MPD102的数据来描述这些特性,虽然此数据未说明于图4的实例中。MPD102可包含如由3GPP规范所描述的特性,其中添加了本发明中所描述的经传信信息中的任一者或全部。
区段114、124中的每一者可与唯一的统一资源识别符(URI)(例如,统一资源定位符(URL))相关联。因此,区段114、124中的每一者可使用流网络协议(例如DASH)独立地检索。以此方式,目的地装置(例如客户端装置40)可使用HTTP Get请求来检索区段114或124。在一些实例中,客户端装置40可使用HTTP部分式GET请求来检索区段114或124的特定字节范围。
如上文所提及,MPD102可符合特定MPD配置文件。MPD102可包含指示MPD102及/或多媒体内容100的多用途因特网邮件扩展(MIME)类型的信息。然而,MIME类型大体上不指示需要何编解码器来呈现多媒体内容。大体而言,假定如果装置可检索多媒体内容的MPD(例如MPD102),那么装置可播放对应于MPD的多媒体内容的数据。然而,此假定可并非总是为安全的。因此,在一些实例中,MPD102可包含指示MPD102所对应的配置文件的信息。
可存在MPD可对应于的相对少量的配置文件。类似于H.264/AVC包含用于视频译码的配置文件及级别的方式,可由级别来支持配置文件以说明能力。MPD配置文件可为洋葱壳型(onion-shelled),这是因为较高配置文件可包含所有较低配置文件的所有特征。可存在注册过程,其中注册机构注册各种配置文件。在一些实例中,客户端装置(例如客户端装置40)可经配置以在检索MPD的其它数据(例如由MPD102传信的表现110-120的特性)之前检索指示MPD(例如MPD102)的配置文件的信息。以此方式,可在提供对MPD102的存取之前传信MPD102的配置文件。
可以纯文本(例如,作为纯名称)或反向网域名称来提供配置文件识别符。纯名称可由注册机构(例如3GPP或另一注册机构)保留。可将配置文件视为主张及准许,这是因为配置文件可主张对应的多媒体内容符合所述配置文件且准许读取器(例如,客户端装置)实施彼配置文件以读取MPD,解译其所辨识的内容,及忽略其不理解的素材。
配置文件可描述特性,例如MPD102的特征、网络的使用、媒体格式、所使用的编解码器、保护格式及/或例如位速率、屏幕大小及其类似者的定量度量。以此方式,MPD102的配置文件可提供指示需要支持何编解码器以便检索MPD102及/或多媒体内容100的数据的信息。还可将配置文件描述为“符合点”。MPD所遵从的配置文件可指示于MPD的“配置文件”属性中。因此,客户端装置可经配置以在检索MPD102的额外数据之前检索MPD102的包含关于“配置文件”属性的信息的一部分。替代地,可将配置文件指示为MPD的MIME类型中的参数。举例来说,可以以下方式由(例如)内容预备装置20来传信配置文件“X、Y及Z”:
video/vnd.mpeg.mpd;profiles="X,Y,Z.″
图5为框图,其说明实例视频文件150的元素,其可对应于表现的区段(例如图4的区段114、124中的一者)。区段114、124中的每一者可包含实质上符合图5的实例中所说明的数据的布置的数据。如上文所描述,根据ISO基础媒体文件格式及其扩展的视频文件将数据存储于一系列对象(称作“盒”)中。在图5的实例中,视频文件150包含文件类型(FTYP)盒152、电影(MOOV)盒154、电影片段162(亦称作电影片段盒(MOOF))及电影片段随机存取(MFRA)盒164。
视频文件150大体上表示多媒体内容的区段的实例,其可被包含于表现110-120(图4)中的一者中。以此方式,视频文件150可对应于区段114中的一者、区段124中的一者或另一表现的区段。根据本发明的技术,客户端装置(例如客户端装置40)可请求使用指定字节范围的URL来检索电影片段162的子集。所述字节范围可对应于电影片段162的子序列。同样地,代理高速缓冲存储器装置(例如代理高速缓冲存储器装置82)可响应于用以检索特定字节范围的请求而检索视频文件150的所有数据。在其它实例中,代理高速缓冲存储器装置82可在针对视频文件150的字节范围的一组请求之后汇编视频文件150(假定所述组请求对应于视频文件150的完整数据量)。
在图5的实例中,视频文件150包含一个区段索引(SIDX)盒161。在一些实例中,视频文件150可包含额外SIDX盒(例如,在电影片段162之间)。大体而言,SIDX盒(例如SIDX盒161)包含描述电影片段162中的一者或一者以上的字节范围的信息。在其它实例中,SIDX盒161及/或其它SIDX盒可提供于MOOV盒154内、提供于MOOV盒154后面、在MFRA盒164前面或后面或视频文件150内的别处。
文件类型(FTYP)盒152大体上描述视频文件150的文件类型。文件类型盒152可包含识别描述视频文件150的最佳使用的规范的数据。可将文件类型盒152置于MOOV盒154、电影片段盒162及MFRA盒164前面。
在图5的实例中,MOOV盒154包含电影标头(MVHD)盒156、轨迹(TRAK)盒158及一个或一个以上电影扩展(MVEX)盒160。大体而言,MVHD盒156可描述视频文件150的一般特性。举例来说,MVHD盒156可包含描述以下各者的数据:何时最初产生视频文件150、何时最后修改视频文件150、视频文件150的时标、视频文件150的播放的持续时间或大体上描述视频文件150的其它数据。
TRAK盒158可包含视频文件150的轨迹的数据。TRAK盒158可包含描述对应于TRAK盒158的轨迹的特性的轨迹标头(TKHD)盒。在一些实例中,TRAK盒158可包含经译码视频图片,而在其它实例中,轨迹的经译码视频图片可包含于电影片段162中,其可通过TRAK盒158的数据来参考。
在一些实例中,视频文件150可包含一个以上轨迹,虽然为使DASH协议起作用此并非为必要的。因此,MOOV盒154可包含等于视频文件150中的轨迹的数目的数目的TRAK盒。TRAK盒158可描述视频文件150的对应轨迹的特性。举例来说,TRAK盒158可描述对应轨迹的时间及/或空间信息。当封装单元30(图1)在视频文件(例如视频文件150)中包含参数集轨迹时,类似于MOOV盒154的TRAK盒158的TRAK盒可描述参数集轨迹的特性。封装单元30可在描述参数集轨迹的TRAK盒内传信在参数集轨迹中序列级别SEI消息的存在。
除MOOV盒154内所包含的视频数据(如果有的话)外,MVEX盒160可描述对应的电影片段162的特性(例如,以传信视频文件150包含电影片段162)。在流视频数据的上下文中,经译码视频图片可被包含于电影片段162中而非MOOV盒154中。因此,所有经译码视频样本可包含于电影片段162中而非MOOV盒154中。
MOOV盒154可包含等于视频文件150中的电影片段162的数目的数目的MVEX盒160。MVEX盒160中的每一者可描述电影片段162中的对应者的特性。举例来说,每一MVEX盒可包含电影扩展标头盒(MEHD)盒,MEHD盒描述电影片段162中的对应者的持续时间。
如上文所提及,封装单元30可将序列数据集存储于不包含实际经译码视频数据的视频样本中。视频样本可大体上对应于存取单元,其为经译码图片在特定时间瞬间时的表现。在AVC的上下文中,经译码图片包含含有用以建构存取单元的所有像素的信息的一个或一个以上VCL NAL单元及其它相关联的非VCL NAL单元(例如SEI消息)。因此,封装单元30可在电影片段162中的一者中包含序列数据集(其可包含序列级别SEI消息)。封装单元30可进一步在MVEX盒160中的一者(对应于电影片段162中的一者)内传信序列数据集及/或序列级别SEI消息存在于电影片段162中的所述一者中。
电影片段162可包含一个或一个以上经译码视频图片。在一些实例中,电影片段162可包含一个或一个以上图片群(GOP),所述图片群中的每一者可包含诸多经译码视频图片(例如,帧或图片)。另外,如上文所描述,在一些实例中,电影片段162可包含序列数据集。电影片段162中的每一者可包含电影片段标头盒(MFHD,图5中未展示)。MFHD盒可描述对应的电影片段的特性(例如电影片段的序号)。电影片段162可按序号的次序包含于视频文件150中。
MFRA盒164可描述视频文件150的电影片段162内的随机存取点。此可帮助执行特技模式,例如执行对视频文件150内的特定时间位置的搜索。在一些实例中,MFRA盒164大体上为选用的且无需包含于视频文件中。同样地,客户端装置(例如客户端装置40)未必需要参考MFRA盒164以正确地解码及显示视频文件150的视频数据。MFRA盒164可包含一数目的轨迹片段随机存取(TFRA)盒(未图示),其等于视频文件150的轨迹数目,或在一些实例中等于视频文件150的媒体轨迹(例如,非提示轨迹)数目。
图6为流程图,其说明一种用于提供URL模板数据的指示及用于由客户端装置使用所述URL模板数据来产生字节范围请求的实例方法。虽然关于服务器装置60及客户端装置40来描述图6的方法,但应理解,其它装置可实施类似于图6的方法的技术的技术。举例来说,内容预备装置20或内容分配网络的一个或一个以上网络装置(例如代理高速缓冲存储器装置82或路由装置80)可执行归因于服务器装置60的一些或所有功能。
虽然图6中未展示,但在一些实例中,客户端装置40可最初确定CDN(将从其请求多媒体内容)。在一些实例中,客户端装置40可从多个CDN选择CDN,而在其它实例中,重定向服务器(例如重定向服务器装置94)可选择CDN且将指示所述所选的CDN的信息提供到客户端装置40。因此,客户端装置40可选择CDN或接收CDN的指示以确定CDN(将从其请求多媒体内容的数据)。下文关于图9来更详细地解释用于选择CDN的实例过程。
服务器装置60可将适配集及URL模板数据的指示提供到客户端装置40(200)。举例来说,服务器装置60可将MPD102(图4)提供到客户端装置40。如上文所论述,MPD102可包含代表URL模板以及所述模板对于字节范围请求而言是必要的还是选用的信息。客户端装置40可接收描述适配集特性的信息(202)(例如,从从服务器装置60接收的MPD文件)。同样地,客户端装置40可接收描述URL模板及模板的使用对于请求字节范围而言是必要的还是选用的信息(例如,从接收的MPD文件)。
客户端装置40可接着分析适配集特性以消除客户端装置40不能或将决定不检索、解码或呈现的适配集。举例来说,客户端装置40可将解码及呈现能力与适配集的特性比较以确定不适当的适配集。作为另一实例,客户端装置40可比较用户对语言、分级及深度量的偏好(例如,如由具有用于三维视频播放的特定摄像机角度的两个或两个以上的视图所提供),以消除不良的适配集。客户端装置40可接着至少部分地基于客户端装置40的解码及呈现能力来选择适当的适配集(204)。
在选择适配集之后,客户端装置40可请求具体地描述适配集的表现的MPD部分的数据。作为响应,服务器装置60可将所选适配集中的表现位速率(在其它个别表现特性中)的指示提供到客户端装置40(206)。举例来说,服务器装置60可将适配集260(图6)的MDP部分中的特定MDP部分的数据发送到客户端装置40。在其它实例中,客户端装置40可已经接收到多媒体内容的完整MPD(例如,图5的MPD202),但可特定地分析MPD的具体地对应于所选适配集的部分。以此方式,在一些实例中,图6的步骤206可在步骤202及/或步骤204之前发生。
在任何情况下,在接收到特定用于所选适配集的表现的特性(包含表现的位速率)(208)之后,客户端装置40可确定网络带宽的当前可用量(210)。客户端装置40可接着从所选的适配集选择表现(212),使得所述所选的表现具有可由网络带宽的所确定的当前可用量适应的位速率。所述表现的位速率表示适配集中的个别表现的译码特性的实例。客户端装置40可接着使用URL模板来请求所选表现的数据(214)。
举例来说,客户端装置40可建构HTTP GET请求以请求所选的表现的区段,其中HTTP GET请求中的URL指定待请求的数据的字节范围。替代地,假定部分式GET请求是准许的,客户端装置40可建构指定所选表现的区段的字节范围的HTTP部分式GET(即,URL模板的使用是选用的)。在一些实例中,URL模板数据可进一步指定可准许的特定字节范围。在这些情况下,客户端装置40可选择可用字节范围中的一者。在任何情况下,客户端装置40可将请求提交给服务器装置60。如上文所提及,在其它实例中,客户端装置40可将请求提交给BaseURL,所述BaseURL可导致所述请求由可服务所述请求的代理装置或高速缓冲存储器装置接收而非由服务器装置接收。
在图6的实例中,服务器装置60可接收请求且作为响应而将所请求的数据发送到客户端装置40(216)。举例来说,请求处理单元70可从所接收的请求的数据确定客户端装置40的网络地址(例如,所接收的请求的源因特网协议(IP)地址及源端口)。请求处理单元70可形成包含所请求的数据的网络包且将所请求的数据发送到客户端装置40(例如,以客户端装置40的所确定IP地址为目的地)。
在接收到所请求的数据之后,客户端装置40可开始解码及显示所接收的数据(218)。在接收所请求的数据时,客户端装置40可继续分析当前可用网络带宽且提交来自具有可由网络带宽的当前可用量适应的位速率的表现的请求(210-214)。如果网络带宽的量改变,那么客户端装置40可自适应性地切换到所选的适配集中的不同表现。举例来说,客户端装置40可确定对应于从适配集中的先前表现请求的最后区段的时间位置的在新表现中的区段,接着请求所述新表现中的所确定的区段(或其之一部分)。
以此方式,图6表示一种检索多媒体数据的方法的实例,所述方法包含:确定待从源装置请求的多媒体内容的表现的文件的字节范围;形成统一资源定位符(URL),所述URL在所述URL的文件路径部分中根据源装置的要求来指定文件及字节范围;及向源装置发出指定所形成的URL的GET请求。
图6亦表示一种发送视频数据的信息的方法的实例,所述方法包含:提供多媒体内容的清单文件,其中所述清单文件指定统一资源定位符(URL)模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;接收包含根据所述URL模板及所述字节范围模板建构的URL的请求,其中所述请求的URL指定多媒体内容的表现的字节范围;及响应于所述请求而输出对应于所述请求的字节范围的表现的多媒体数据。
图7为流程图,其说明一种用于产生在URL中指定字节范围的GET请求的实例方法。图7的方法可由客户端装置(例如客户端装置40)执行。具有虚线的盒表示选用步骤。类似的方法可由中间网络装置(例如代理高速缓冲存储器装置82)执行。如下文所论述,当由中间网络装置执行时,可作出对所述方法的一些轻微修改。出于实例的目的,关于客户端装置40来描述图7的方法。在一些实例中,步骤230-234可实质上与图6的步骤202及204同时执行,且步骤236-244可对应于图6的步骤214。图6及图7的步骤不必以所示的次序执行,且可执行额外步骤或可省略某些步骤或可并行地而非顺序地执行某些步骤。
最初,客户端装置40可接收对应于多媒体内容的MPD文件的信息(230)。MPD文件可包含指定URL模板的信息,所述URL模板用于将字节范围嵌入HTTP GET请求的URL中。举例来说,URL模板可针对URL与字节范围模板指定以下内容:
URLTemplate=
″http://www.mp4player.com/TRON/segment.$Bandwidth$.$Index$:″
ByteRangeTemplate=″$Url$/$StartByte$/$EndByte$″
MPD文件可进一步包含指示URL模板是必要的还是选用的信息。因此,在一些实例中,客户端装置40可基于对MPD文件的数据的分析来确定URL模板是必要的还是选用的(232)。同样地,在一些实例中,MPD文件可提供可请求的被准许的字节范围的指示,或可指示字节范围未被限制。因此,在一些实例中,客户端装置40可使用MPD文件来确定被准许的字节范围(234)。
客户端装置40可接着确定待请求的区段的字节范围(236)。举例来说,如果客户端装置40刚刚开始流式传输所选多媒体内容的数据,那么客户端装置40可确定请求区段的依次的第一字节范围。作为另一实例,如果客户端装置40先前已请求区段的第N个字节范围,那么客户端装置40可确定请求区段的第N+1个字节范围。客户端装置40还可确定所选的表现的基础URL以及区段识别符(238)。举例来说,如上文所论述,基础URL可对应于“http://www.mp4player.com/TRON/”且区段识别符可包括数字、字母、文数字或代表当前区段的其它值。区段识别符可识别区段以及其中包含有所述区段的所选表现。举例来说,区段识别符可包含指定所选表现的带宽及/或索引的值以及指定所述所选表现的区段的值。
因此,一同地,基础URL及区段识别符可形成客户端装置40将最终包含于HTTPGET请求中以检索下一字节范围的URL的第一部分。客户端装置40可将区段ID以及待请求的字节范围的识别符附加到基础URL(240),从而形成将被包含于HTTP GET请求中的URL。举例来说,假定使用“segment.1000.27”来识别区段,且假定待请求的字节范围为字节435291到560829,那么客户端装置40可将“segment.1000.27/435291/560829”附加到基础URL,从而在此实例中形成以下URL:“http://www.mp4player.com/TRON/segment.1000.27/435291/560829”。此URL对应于URL的文件路径部分。URL的另一部分可指定协议(例如,“HTTP/1.1”)或用于在对应文件路径处检索文件的其它数据。
客户端装置40可接着形成包含所建构的URL的HTTP GET请求(242)。举例来说,客户端装置40可通过将命令“GET”追加于于URL前面及将“HTTP/1.1”附加于URL后面以及指定多媒体内容的主机(例如,“www.mp4player.com”)来指定所述请求为GET请求。在一些实例中,客户端装置40可形成所述请求以包含在URL中含有字节范围的指示(例如,通过使用本发明的扩展标头“X-Dash-Byte-Range-URL”)。因此,具有指定字节范围的URL的所建构的GET请求可对应于:
GET http://www.mp4player.com/TRON/segment.1000.27/435291/560829HTTP/1.1
Host:www.mp4player.com
客户端装置40可接着将所形成的HTTP GET请求发送到服务器(244)(例如,www.mp4player.com)。如上文所提及,中间网络装置可执行类似于图7的方法的方法以形成包含在文件路径部分中指定字节范围的URL的HTTP GET请求。大体而言,中间网络装置可从服务器装置接收MPD文件以确定用于多媒体内容的URL模板,且可从客户端装置接收常规HTTP部分式GET请求。中间网络装置可接着使用URL模板(包含字节范围模板)以根据部分式GET请求形成HTTP GET请求,使得HTTP GET请求包含指定由部分式GET请求指示的字节范围的URL。
以此方式,图7的方法表示一种用于检索多媒体数据的方法的实例。图7的实例方法包含:确定将从源装置请求的多媒体内容的表现的文件的字节范围;形成统一资源定位符(URL),所述URL在所述URL的文件路径部分中根据源装置的要求来指定文件及字节范围;及向源装置发出指定所形成的URL的GET请求。
图8为流程图,其说明一种实例方法,其中经由中间网络装置而在客户端装置与服务器装置之间交换HTTP GET请求。关于客户端装置40、代理高速缓冲存储器装置82及服务器装置60描述了此实例方法,但应理解,其它装置可经配置以执行类似方法。
在图8的实例中,客户端装置40选择多媒体内容的表现(250)。接着,客户端装置40根据URL模板来形成HTTP GET请求,使得所述HTTP GET请求在所述请求的URL中指定字节范围。所述URL模板可包含URL的字节范围模板的数据。在一些实例中,客户端装置40可形成所述请求以包含在URL中含有字节范围的指示(例如,通过使用本发明的扩展标头“X-Dash-Byte-Range-URL”)。在形成请求之后,客户端装置40可将HTTP GET请求提交给服务器装置60(254)。
在此实例中,代理高速缓冲存储器装置82沿着客户端装置40与服务器装置60之间的网络路由定位(例如,如图2中所示)。因此,代理高速缓冲存储器装置82可接收由客户端装置40发出的请求(256)。代理高速缓冲存储器装置82可通过分析请求的URL而确定所述请求是针对字节范围的请求,且将所述请求转递到服务器装置60(258)。替代地,代理高速缓冲存储器装置82可在检测到扩展标头“X-Dash-Byte-Range-URL”时确定所述请求是针对字节范围的请求。服务器装置60可最终接收请求(260)且发送所请求的字节范围(262)。即,服务器装置60将来自多媒体内容的表现的相应区段的对应于所请求的字节范围的数据提供到客户端装置40。
再次,代理高速缓冲存储器装置82可接收所请求的字节范围的数据(264)(归因于代理高速缓冲存储器装置82沿客户端装置40与服务器装置60之间的路由的位置)。代理高速缓冲存储器装置82可接着将接收的数据加到对应的多媒体内容的任何先前高速缓存的数据(266)。如果尚未接收到数据,那么代理高速缓冲存储器装置82可形成多媒体内容的新的、本地高速缓存的数据集。代理高速缓冲存储器装置82还可将多媒体内容的随后接收的数据与多媒体内容的当前高速缓存的数据串联。代理高速缓冲存储器装置82还可将字节范围的所接收数据发送到客户端装置40(268)。客户端装置40又可缓冲、解码及显示所接收的数据(270)。
如关于图7所提及,在一些实例中,中间网络装置可经配置以将部分式GET请求转换为包含指定字节范围的URL的HTTP GET请求。为完成此,客户端装置40将产生部分式GET请求以代替步骤252的HTTP GET请求。接着,代理高速缓冲存储器装置82可在步骤256与258之间转换部分式GET请求(例如,根据URL模板及字节范围模板)。替代地,根据本发明的技术,代理高速缓冲存储器装置82可将所检测的“Range:”标头转换到新扩展标头“X-Dash-ByteRange-URL”,其后面可为部分式GET请求的原始指定的字节范围。
图9为流程图,其说明一种用于确定CDN(将从其检索多媒体内容的数据)的实例方法。图9仅仅表示一种实例方法。如上文所描述,用于选择CDN的其它方法也是可能的(例如,在不使用重定向服务器装置的情况下)。举例来说,代替重定向服务器装置,客户端装置40可经配置以接收及评估选择准则。出于实例的目的,关于客户端装置40及重定向服务器装置94来描述图9的方法。
在此实例中,假定客户端装置40已经接收到MPD文件,客户端装置40将POST消息发送到重定向服务器装置94(300)。多媒体内容的MPD文件可在重定向URL处指定重定向服务器装置94的地址。因此,客户端装置40可将POST消息发送到重定向URL,从而导致POST消息最终到达重定向服务器装置94处。
重定向服务器装置94可接收告示消息(302)。作为响应,重定向服务器装置94可评估用于选择CDN的选择准则(304)。选择准则可包含加权的随机准则、当日时间、客户端装置40与CDN之间的往返延迟、客户端装置40与CDN之间的跳跃计数、客户端装置40及CDN的位置或其它准则中的任一者或全部。通过评估选择准则,重定向服务器装置94可根据选择准则确定CDN(306)。此外,重定向服务器装置94可配置有代表在CDN中的每一者处的多媒体内容的基础URL的数据。因此,重定向服务器装置94可确定用于所确定的CDN的基础URL(308)。
重定向服务器装置94可接着将所确定的基础URL发送到客户端装置40(310)。因此,客户端装置40可形成指定特定字节范围的HTTP GET请求(312),所述特定字节范围可指定所接收的基础URL。此外,客户端装置40可将HTTP GET请求发送到新基础URL(314),从而导致HTTP GET请求被导引到所确定的CDN。即,客户端装置40可对基础URL执行网域名称服务(DNS)查找以确定CDN的装置(将向其发出GET请求)的IP地址,且可接着将GET请求发送到所确定的IP地址。然后,CDN可对具有所选字节范围的GET请求作出响应,且客户端装置40可继续将一系列字节范围请求提交给同一CDN。
在一个或一个以上实例中,所描述的功能可以硬件、软件、固件或其任何组合实施。如果以软件实施,那么所述功能可作为一个或一个以上指令或代码而存储于计算机可读媒体上或经由计算机可读媒体进行发射,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体)或通信媒体,通信媒体包含(例如)根据通信协议促进计算机程序从一处转移到另一处的任何媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一个或一个以上计算机或一个或一个以上处理器存取以检索指令、代码及/或数据结构以用于实施本发明所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
通过实例而非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置,快闪存储器,或可用以存储呈指令或数据结构形式的所要代码且可由计算机存取的任何其它媒体。又,将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或无线技术(例如红外线、无线电及微波)而从网站、服务器或其它远程源发射指令,那么同轴电缆、光缆、双绞线、DSL或无线技术(例如红外线、无线电及微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而是针对非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光盘(CD)、激光光盘、光盘、数字影音光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘通过激光以光学方式复制数据。以上各物的组合也应包含于计算机可读媒体的范围内。
可通过例如一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路的一个或一个以上处理器来执行指令。因此,如本文中所使用的术语“处理器”可指代上述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编解码器中。又,所述技术可完全实施于一个或一个以上电路或逻辑元件中。
本发明的技术可实施于广泛多种装置或设备中,所述装置或设备包含无线手机、集成电路(IC)或IC集合(例如,芯片集)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必要求通过不同硬件单元予以实现。相反地,如上文所描述,可将各种单元组合于编解码器硬件单元中,或通过互操作性硬件单元的集合(包含如上文所描述的一个或一个以上处理器)而结合合适软件及/或固件来提供所述单元。
已描述各种实例。这些及其它实例是在随附权利要求书的范围内。
Claims (42)
1.一种检索多媒体数据的方法,所述方法包括:
确定待从源装置请求的多媒体内容的表现的文件的字节范围;
形成统一资源定位符URL,所述URL根据模板而在所述URL的文件路径部分中根据所述源装置的要求来指定所述文件及所述字节范围;及
向所述源装置发出指定所述所形成的URL的GET请求,
其中所述GET请求不包含“Range:”标头。
2.根据权利要求1所述的方法,其进一步包括接收所述多媒体内容的清单文件,其中所述清单文件指定可针对所述表现而请求的多个字节范围,其中确定所述字节范围包括从所述多个字节范围中选择所述表现的所述字节范围。
3.根据权利要求1所述的方法,其进一步包括接收包括区段索引数据结构的所述表现的数据,其中所述区段索引数据结构指定可针对所述表现而请求的多个字节范围,且其中确定所述字节范围包括从所述多个字节范围中选择所述表现的所述字节范围。
4.根据权利要求1所述的方法,其进一步包括形成所述GET请求以在所述GET请求的所述URL中包含指示所述字节范围的位置的扩展标头。
5.根据权利要求1所述的方法,其进一步包括:
接收用于选择多个内容分配网络CDN中的一者的一个或多个选择准则;及
基于所述选择准则而从所述多个CDN中选择CDN,
其中发出所述GET请求包括向所述所选的CDN发出所述GET请求,及
其中根据所述模板来形成所述URL包括根据特定用于所述所选的CDN的字节范围模板来形成所述URL。
6.根据权利要求1所述的方法,其进一步包括:
将POST消息提交给重定向URL以确定多个内容分配网络CDN中的将从其检索所述数据的内容分配网络;及
响应于所述POST消息而接收所述多个CDN中的CDN的基础URL的指示,
其中形成所述URL包括形成所述URL以指定所述多个CDN中的所述CDN的所述接收的基础URL,
其中根据所述模板来形成所述URL包括根据特定用于所述所选的CDN的字节范围模板来形成所述URL,及
其中发出所述GET请求包括向所述多个CDN中的所述CDN发出所述GET请求。
7.根据权利要求6所述的方法,其中提交所述POST消息包括将一个或多个POST消息提交给所述重定向URL,所述一个或多个POST消息指示以下各者中的一者或多者:BaseURL、选择准则及本地信息,所述本地信息包含以下各者中的一者或多者:地理位置信息、跳跃计数及本地时刻。
8.根据权利要求1所述的方法,其进一步包括从所述源装置接收指示所述模板的信息。
9.根据权利要求1所述的方法,其中确定包括通过客户端装置确定,其中形成包括通过所述客户端装置形成,且其中发出包括通过所述客户端装置发出。
10.一种用于接收多媒体数据的信息的装置,所述装置包括一个或多个处理器,所述一个或多个处理器经配置以:确定待从源装置请求的多媒体内容的表现的文件的字节范围;形成统一资源定位符URL,所述URL根据模板而在所述URL的文件路径部分中根据所述源装置的要求来指定所述文件及所述字节范围;及向所述源装置发出指定所述所形成的URL的GET请求,其中所述GET请求不包含“Range:”标头。
11.根据权利要求10所述的装置,其中所述一个或多个处理器进一步经配置以接收所述多媒体内容的清单文件,其中所述清单文件指定可针对所述表现而请求的多个字节范围,且其中为了确定所述字节范围,所述一个或多个处理器经配置以从所述多个字节范围选择所述表现的所述字节范围。
12.根据权利要求10所述的装置,其中所述一个或多个处理器进一步经配置以接收包括区段索引数据结构的所述表现的数据,其中所述区段索引数据结构指定可针对所述表现而请求的多个字节范围,且其中为了确定所述字节范围,所述一个或多个处理器经配置以从所述多个字节范围中选择所述表现的所述字节范围。
13.根据权利要求10所述的装置,其中所述一个或多个处理器进一步经配置以形成所述GET请求以在所述GET请求的所述URL中包含指示所述字节范围的位置的扩展标头。
14.根据权利要求10所述的装置,其中所述一个或多个处理器进一步经配置以:接收用于选择多个内容分配网络CDN中的一者的一个或多个选择准则;基于所述选择准则而从所述多个CDN中选择CDN;及向所述所选的CDN发出所述GET请求,其中所述模板包括特定用于所述所选的CDN的字节范围模板。
15.根据权利要求10所述的装置,其中所述装置包括以下各者中的至少一者:
集成电路;
微处理器;及
无线通信装置,其包含所述一个或多个处理器。
16.一种用于检索多媒体数据的装置,所述装置包括:
用于确定待从源装置请求的多媒体内容的表现的文件的字节范围的装置;
用于形成统一资源定位符URL的装置,所述URL根据模板而在所述URL的文件路径部分中根据所述源装置的要求来指定所述文件及所述字节范围;及
用于向所述源装置发出指定所述所形成的URL的GET请求的装置,
其中所述GET请求不包含“Range:”标头。
17.根据权利要求16所述的装置,其进一步包括用于接收所述多媒体内容的清单文件的装置,其中所述清单文件指定可针对所述表现而请求的多个字节范围,其中所述用于确定所述字节范围的装置包括用于从所述多个字节范围中选择所述表现的所述字节范围的装置。
18.根据权利要求16所述的装置,其进一步包括用于接收包括区段索引数据结构的所述表现的数据的装置,其中所述区段索引数据结构指定可针对所述表现而请求的多个字节范围,且其中所述用于确定所述字节范围的装置包括用于从所述多个字节范围中选择所述表现的所述字节范围的装置。
19.根据权利要求16所述的装置,其进一步包括用于形成所述GET请求以在所述GET请求的所述URL中包含指示所述字节范围的位置的扩展标头的装置。
20.根据权利要求16所述的装置,其进一步包括:
用于接收用于选择多个内容分配网络CDN中的一者的一个或多个选择准则的装置;及
用于基于所述选择准则而从所述多个CDN中选择CDN的装置,
其中所述用于发出所述GET请求的装置包括用于向所述所选的CDN发出所述GET请求的装置,及
其中所述用于根据所述模板来形成所述URL的装置包括用于根据特定用于所述所选的CDN的字节范围模板来形成所述URL的装置。
21.一种发送多媒体数据的信息的方法,所述方法包括:
提供多媒体内容的清单文件,其中所述清单文件指定统一资源定位符URL模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;
接收包含根据所述URL模板及所述字节范围模板建构的URL的GET请求,其中所述GET请求的所述URL指定所述多媒体内容的表现的字节范围,其中所述GET请求不包含“Range:”标头;及
响应于所述GET请求而输出对应于所述GET请求的所述字节范围的所述表现的多媒体数据。
22.根据权利要求21所述的方法,其中所述清单文件进一步包括指定可针对所述表现而请求的多个字节范围的信息,且其中由所述GET请求的所述URL指定的所述字节范围包括所述多个字节范围中的一者。
23.根据权利要求21所述的方法,其进一步包括提供指定可针对所述表现而请求的多个字节范围的区段索引数据结构,且其中由所述GET请求的所述URL指定的所述字节范围包括所述多个字节范围中的一者。
24.根据权利要求21所述的方法,其进一步包括接收在所述GET请求内的扩展标头,其中所述扩展标头在所述GET请求的所述URL中指示所述字节范围的位置。
25.根据权利要求21所述的方法,其中提供包括通过服务器装置提供,其中接收包括通过所述服务器装置接收,且其中输出包括通过所述服务器装置输出。
26.根据权利要求21所述的方法,其中提供包括通过代理高速缓冲存储器装置提供,其中接收包括通过所述代理高速缓冲存储器装置接收,且其中输出包括通过所述代理高速缓冲存储器装置输出。
27.根据权利要求21所述的方法,其中所述GET请求包括针对所述多媒体内容的所述表现的所述字节范围的第一请求,所述方法进一步包括:
向服务器装置请求所述表现的所述字节范围;
高速缓存从所述服务器装置接收的所述字节范围的数据;
接收针对所述表现的所述字节范围的第二请求,所述第二请求不同于所述第一请求;及
响应于所述第二请求而输出所述表现的所述字节范围的所述经高速缓存的数据。
28.根据权利要求21所述的方法,其中所述GET请求包括第一请求且其中所述字节范围包括第一字节范围,所述方法进一步包括:
向服务器装置请求所述表现的所述第一字节范围;
高速缓存从所述服务器装置接收的所述第一字节范围的数据;
接收第二请求,所述第二请求包含根据所述URL模板及所述字节范围模板建构的第二URL,其中所述第二请求的所述第二URL指定所述多媒体内容的所述表现的第二字节范围,其中所述第二字节范围跟在所述第一字节范围后面;
向所述服务器装置请求所述表现的所述第二字节范围;及
使用从所述服务器装置接收的所述第一字节范围的所述经高速缓存的数据及所述第二字节范围的数据来汇编所述表现的本地复本。
29.根据权利要求21所述的方法,其中所述清单文件指示所述字节范围模板全局地适用于所有内容分配网络。
30.根据权利要求21所述的方法,其中所述字节范围模板包括多个字节范围模板中的一者,且其中所述清单文件指示所述字节范围模板中的每一者适用于多个内容分配网络中的相应者。
31.一种用于发送多媒体数据的信息的装置,所述装置包括一个或多个处理器,所述一个或多个处理器经配置以:提供多媒体内容的清单文件,其中所述清单文件指定统一资源定位符URL模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;接收包含根据所述URL模板及所述字节范围模板建构的URL的GET请求,其中所述GET请求的所述URL指定所述多媒体内容的表现的字节范围,其中所述GET请求不包含“Range:”标头;及响应于所述GET请求而输出对应于所述GET请求的所述字节范围的所述表现的多媒体数据。
32.根据权利要求31所述的装置,其中所述清单文件进一步包括指定可针对所述表现而请求的多个字节范围的信息,且其中由所述GET请求的所述URL指定的所述字节范围包括所述多个字节范围中的一者。
33.根据权利要求31所述的装置,其中所述一个或多个处理器经配置以提供指定可针对所述表现而请求的多个字节范围的区段索引数据结构,且其中由所述GET请求的所述URL指定的所述字节范围包括所述多个字节范围中的一者。
34.根据权利要求31所述的装置,其中所述一个或多个处理器经配置以接收在所述GET请求内的扩展标头,其中所述扩展标头在GET请求的所述URL中指示所述字节范围的位置。
35.根据权利要求31所述的装置,其中所述装置包括服务器装置及代理高速缓冲存储器装置中的至少一者。
36.根据权利要求31所述的装置,其中所述GET请求包括针对所述多媒体内容的所述表现的所述字节范围的第一请求,其中所述一个或多个处理器进一步经配置以:向服务器装置请求所述表现的所述字节范围;高速缓存从所述服务器装置接收的所述字节范围的数据;接收针对所述表现的所述字节范围的第二请求,所述第二请求不同于所述第一请求;及响应于所述第二请求而输出所述表现的所述字节范围的所述经高速缓存的数据。
37.根据权利要求31所述的装置,其中所述装置包括以下各者中的至少一者:
集成电路;
微处理器;及
无线通信装置,其包含所述一个或多个处理器。
38.一种用于发送多媒体数据的信息的装置,所述装置包括:
用于提供多媒体内容的清单文件的装置,其中所述清单文件指定统一资源定位符URL模板及字节范围模板,其中所述URL模板及所述字节范围模板提供用于形成URL以将字节范围请求包含于所述URL内的模板;
用于接收包含根据所述URL模板及所述字节范围模板建构的URL的GET请求的装置,其中所述GET请求的所述URL指定所述多媒体内容的表现的字节范围,其中所述GET请求不包含“Range:”标头;及
用于响应于所述GET请求而输出对应于所述GET请求的所述字节范围的所述表现的多媒体数据的装置。
39.根据权利要求38所述的装置,其中所述清单文件进一步包括指定可针对所述表现而请求的多个字节范围的信息,且其中由所述GET请求的所述URL指定的所述字节范围包括所述多个字节范围中的一者。
40.根据权利要求38所述的装置,其进一步包括用于提供指定可针对所述表现而请求的多个字节范围的区段索引数据结构的装置,且其中由所述GET请求的所述URL指定的所述字节范围包括所述多个字节范围中的一者。
41.根据权利要求38所述的装置,其进一步包括用于接收在所述GET请求内的扩展标头的装置,其中所述扩展标头在GET请求的所述URL中指示所述字节范围的位置。
42.根据权利要求38所述的装置,其中所述GET请求包括针对所述多媒体内容的所述表现的所述字节范围的第一请求,所述装置进一步包括:
用于向服务器装置请求所述表现的所述字节范围的装置;
用于高速缓存从所述服务器装置接收的所述字节范围的数据的装置;
用于接收针对所述表现的所述字节范围的第二请求的装置,所述第二请求不同于所述第一请求;及
用于响应于所述第二请求而输出所述表现的所述字节范围的所述经高速缓存的数据的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161473105P | 2011-04-07 | 2011-04-07 | |
US61/473,105 | 2011-04-07 | ||
US13/439,556 US8849950B2 (en) | 2011-04-07 | 2012-04-04 | Network streaming of video data using byte range requests |
US13/439,556 | 2012-04-04 | ||
PCT/US2012/032372 WO2012138895A1 (en) | 2011-04-07 | 2012-04-05 | Network streaming of video data using byte range requests |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103460667A CN103460667A (zh) | 2013-12-18 |
CN103460667B true CN103460667B (zh) | 2017-05-31 |
Family
ID=46966958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280016213.2A Active CN103460667B (zh) | 2011-04-07 | 2012-04-05 | 使用字节范围请求的视频数据的网络流 |
Country Status (14)
Country | Link |
---|---|
US (1) | US8849950B2 (zh) |
EP (1) | EP2695355B1 (zh) |
JP (2) | JP2014515144A (zh) |
KR (1) | KR101548444B1 (zh) |
CN (1) | CN103460667B (zh) |
BR (1) | BR112013025351B1 (zh) |
DK (1) | DK2695355T3 (zh) |
ES (1) | ES2716274T3 (zh) |
HU (1) | HUE042019T2 (zh) |
PL (1) | PL2695355T3 (zh) |
PT (1) | PT2695355T (zh) |
SI (1) | SI2695355T1 (zh) |
TW (1) | TWI465088B (zh) |
WO (1) | WO2012138895A1 (zh) |
Families Citing this family (139)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8472792B2 (en) | 2003-12-08 | 2013-06-25 | Divx, Llc | Multimedia distribution system |
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
JP5200204B2 (ja) | 2006-03-14 | 2013-06-05 | ディブエックス リミテッド ライアビリティー カンパニー | 高信頼性システムを含む連合型デジタル権限管理機構 |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
EP3901779B1 (en) | 2007-01-05 | 2022-10-26 | DivX, LLC | Video distribution system including progressive playback |
CN101861583B (zh) | 2007-11-16 | 2014-06-04 | 索尼克Ip股份有限公司 | 用于多媒体文件的分级及简化索引结构 |
US8156089B2 (en) | 2008-12-31 | 2012-04-10 | Apple, Inc. | Real-time or near real-time streaming with compressed playlists |
US8260877B2 (en) | 2008-12-31 | 2012-09-04 | Apple Inc. | Variant streams for real-time or near real-time streaming to provide failover protection |
US20100169458A1 (en) | 2008-12-31 | 2010-07-01 | David Biderman | Real-Time or Near Real-Time Streaming |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US8930991B2 (en) * | 2009-11-19 | 2015-01-06 | Gregory Philpott | System and method for delivering content to mobile devices |
US8781122B2 (en) | 2009-12-04 | 2014-07-15 | Sonic Ip, Inc. | Elementary bitstream cryptographic material transport systems and methods |
JP5497919B2 (ja) * | 2010-03-05 | 2014-05-21 | サムスン エレクトロニクス カンパニー リミテッド | ファイルフォーマットベースの適応的ストリーム生成、再生方法及び装置とその記録媒体 |
US8805963B2 (en) | 2010-04-01 | 2014-08-12 | Apple Inc. | Real-time or near real-time streaming |
GB201105502D0 (en) | 2010-04-01 | 2011-05-18 | Apple Inc | Real time or near real time streaming |
CN102238179B (zh) | 2010-04-07 | 2014-12-10 | 苹果公司 | 实时或准实时流传输 |
US8880633B2 (en) | 2010-12-17 | 2014-11-04 | Akamai Technologies, Inc. | Proxy server with byte-based include interpreter |
US8914534B2 (en) | 2011-01-05 | 2014-12-16 | Sonic Ip, Inc. | Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol |
US8843586B2 (en) * | 2011-06-03 | 2014-09-23 | Apple Inc. | Playlists for real-time or near real-time streaming |
US8856283B2 (en) | 2011-06-03 | 2014-10-07 | Apple Inc. | Playlists for real-time or near real-time streaming |
US8812662B2 (en) | 2011-06-29 | 2014-08-19 | Sonic Ip, Inc. | Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content |
US9117221B2 (en) * | 2011-06-30 | 2015-08-25 | Flite, Inc. | System and method for the transmission of live updates of embeddable units |
US9467708B2 (en) | 2011-08-30 | 2016-10-11 | Sonic Ip, Inc. | Selection of resolutions for seamless resolution switching of multimedia content |
KR102020764B1 (ko) | 2011-08-30 | 2019-09-11 | 디브이엑스, 엘엘씨 | 복수의 최대 비트레이트 레벨들을 사용하여 인코딩된 비디오를 인코딩하고 스트리밍하기 위한 시스템들 및 방법들 |
US8799647B2 (en) | 2011-08-31 | 2014-08-05 | Sonic Ip, Inc. | Systems and methods for application identification |
US8806188B2 (en) | 2011-08-31 | 2014-08-12 | Sonic Ip, Inc. | Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files |
US8909922B2 (en) | 2011-09-01 | 2014-12-09 | Sonic Ip, Inc. | Systems and methods for playing back alternative streams of protected content protected using common cryptographic information |
US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
JP6140709B2 (ja) | 2011-09-28 | 2017-05-31 | ペリカン イメージング コーポレイション | 明視野画像ファイルを符号化および復号するためのシステムおよび方法 |
KR101835298B1 (ko) * | 2011-10-03 | 2018-03-06 | 어펌드 네트웍스, 인크. | 모바일 콘텐트 전달 |
US9521439B1 (en) * | 2011-10-04 | 2016-12-13 | Cisco Technology, Inc. | Systems and methods for correlating multiple TCP sessions for a video transfer |
WO2013090834A1 (en) * | 2011-12-14 | 2013-06-20 | Seven Networks, Inc. | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US8977704B2 (en) | 2011-12-29 | 2015-03-10 | Nokia Corporation | Method and apparatus for flexible caching of delivered media |
US20130179199A1 (en) | 2012-01-06 | 2013-07-11 | Rovi Corp. | Systems and methods for granting access to digital content using electronic tickets and ticket tokens |
KR20190097306A (ko) * | 2012-01-19 | 2019-08-20 | 브이아이디 스케일, 인크. | 시청 조건에 대한 적응을 지원하는 비디오 전송 방법 및 시스템 |
US9401968B2 (en) * | 2012-01-20 | 2016-07-26 | Nokia Techologies Oy | Method and apparatus for enabling pre-fetching of media |
US9438883B2 (en) * | 2012-04-09 | 2016-09-06 | Intel Corporation | Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content |
AU2013248891B2 (en) | 2012-04-18 | 2017-02-16 | Google Llc | Method and system for inserting content into streaming media at arbitrary time points |
KR101603136B1 (ko) * | 2012-04-27 | 2016-03-14 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 템플릿 모드에서의 짧은 암호 사용기간의 지원 |
JP2015527795A (ja) * | 2012-06-28 | 2015-09-17 | アズキ システムズ, インク. | インターネット経由で配信されるライブメディアデリバリー(LiveMediaDelivery)において広告を挿入するための方法及びシステム |
JP6102108B2 (ja) * | 2012-07-24 | 2017-03-29 | 富士通株式会社 | 情報処理装置、データ提供方法、及びデータ提供プログラム |
CN104509139B (zh) * | 2012-08-06 | 2018-07-20 | 华为技术有限公司 | 用于提供彩信服务的方法 |
US9584573B2 (en) * | 2012-08-29 | 2017-02-28 | Ericsson Ab | Streaming policy management system and method |
US9936267B2 (en) | 2012-08-31 | 2018-04-03 | Divx Cf Holdings Llc | System and method for decreasing an initial buffering period of an adaptive streaming system |
US9191457B2 (en) | 2012-12-31 | 2015-11-17 | Sonic Ip, Inc. | Systems, methods, and media for controlling delivery of content |
US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
EP2904764B1 (en) * | 2013-01-16 | 2016-09-21 | Huawei Technologies Co., Ltd. | Url parameter insertion and addition in adaptive streaming |
US9419973B2 (en) | 2013-01-17 | 2016-08-16 | Intel IP Corporation | Content URL authentication for dash |
CN108683485B (zh) * | 2013-01-17 | 2021-03-12 | 苹果公司 | Tdd传输的ul/dl帧资源动态配置的方法和装置 |
WO2014113197A1 (en) | 2013-01-17 | 2014-07-24 | Intel IP Corporation | Presence service using ims based dash service |
WO2014113710A1 (en) * | 2013-01-18 | 2014-07-24 | Huawei Technologies. Co., Ltd | Method and apparatus for performing adaptive streaming on media contents |
US9961415B2 (en) | 2013-01-24 | 2018-05-01 | Google Llc | Method and system for identifying events in a streaming media program |
US9420019B2 (en) * | 2013-01-28 | 2016-08-16 | The Directv Group, Inc. | Method and system for securing content communication in chunks from a content delivery network to a user receiving device |
US9832492B2 (en) * | 2013-01-29 | 2017-11-28 | Espial Group Inc. | Distribution of adaptive bit rate video streaming via hyper-text transfer protocol |
US9432426B2 (en) * | 2013-02-04 | 2016-08-30 | Qualcomm Incorporated | Determining available media data for network streaming |
EP2765781A1 (en) * | 2013-02-07 | 2014-08-13 | Thomson Licensing | Method for providing targetable content in images of a video sequence and corresponding device |
JP6205765B2 (ja) * | 2013-03-12 | 2017-10-04 | 沖電気工業株式会社 | 映像配信装置、映像配信プログラム、映像配信方法及び映像配信システム |
CN105191409B (zh) * | 2013-03-14 | 2018-10-16 | 交互数字专利控股公司 | 用于选择用于接收内容的分布式网关的wtru及方法 |
US8984569B2 (en) | 2013-03-15 | 2015-03-17 | Echostar Technologies L.L.C. | Chunking of multiple track audio for adaptive bit rate streaming |
US9906785B2 (en) | 2013-03-15 | 2018-02-27 | Sonic Ip, Inc. | Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata |
US9854017B2 (en) * | 2013-03-15 | 2017-12-26 | Qualcomm Incorporated | Resilience in the presence of missing media segments in dynamic adaptive streaming over HTTP |
US10397292B2 (en) | 2013-03-15 | 2019-08-27 | Divx, Llc | Systems, methods, and media for delivery of content |
US9438652B2 (en) * | 2013-04-15 | 2016-09-06 | Opentv, Inc. | Tiered content streaming |
RU2668549C2 (ru) * | 2013-04-19 | 2018-10-02 | Сони Корпорейшн | Устройство сервера, устройство клиент, способ распределения содержания и компьютерная программа |
MX354254B (es) * | 2013-04-19 | 2018-02-20 | Sony Corp | Dispositivo de procesamiento de la informacion, metodo de solicitar el contenido y programa de computadora. |
US9094737B2 (en) | 2013-05-30 | 2015-07-28 | Sonic Ip, Inc. | Network video streaming with trick play based on separate trick play files |
US9100687B2 (en) | 2013-05-31 | 2015-08-04 | Sonic Ip, Inc. | Playback synchronization across playback devices |
US9380099B2 (en) | 2013-05-31 | 2016-06-28 | Sonic Ip, Inc. | Synchronizing multiple over the top streaming clients |
US20140372569A1 (en) * | 2013-06-14 | 2014-12-18 | Samsung Electronics Co., Ltd. | Controlling dash client rate adaptation |
US9419845B2 (en) * | 2013-06-27 | 2016-08-16 | Cisco Technology, Inc. | Dynamic content distribution network selection based on context from transient criteria |
JP6444398B2 (ja) | 2013-07-03 | 2018-12-26 | コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ | セグメント化コンテンツのストリーミング |
US8762564B1 (en) * | 2013-07-10 | 2014-06-24 | Mdialog Corporation | Method and system for dynamically selecting, assembling and inserting content into stream media |
CN104427005B (zh) * | 2013-08-20 | 2018-01-02 | 阿里巴巴集团控股有限公司 | 在cdn上实现请求精确调度的方法及*** |
JP2015043486A (ja) * | 2013-08-26 | 2015-03-05 | ソニー株式会社 | プロキシサーバ装置、情報処理方法、プログラム、端末装置、およびコンテンツ供給システム |
JP2015049650A (ja) * | 2013-08-30 | 2015-03-16 | ソニー株式会社 | サーバ装置、情報処理方法、プログラム、端末装置、およびコンテンツ供給システム |
US10108692B1 (en) * | 2013-10-15 | 2018-10-23 | Amazon Technologies, Inc. | Data set distribution |
US9401944B2 (en) | 2013-10-22 | 2016-07-26 | Qualcomm Incorporated | Layered adaptive HTTP streaming |
US10841353B2 (en) | 2013-11-01 | 2020-11-17 | Ericsson Ab | System and method for optimizing defragmentation of content in a content delivery network |
US20150172347A1 (en) * | 2013-12-18 | 2015-06-18 | Johannes P. Schmidt | Presentation of content based on playlists |
US9386067B2 (en) | 2013-12-30 | 2016-07-05 | Sonic Ip, Inc. | Systems and methods for playing adaptive bitrate streaming content by multicast |
US20160330500A1 (en) * | 2014-01-10 | 2016-11-10 | Thomson Licensing | Method for obtaining network information by a client terminal configured for receiving a multimedia content divided into segments |
US10165029B2 (en) * | 2014-01-31 | 2018-12-25 | Fastly Inc. | Caching and streaming of digital media content subsets |
KR101924703B1 (ko) | 2014-02-13 | 2019-02-20 | 코닌클리즈케 케이피엔 엔.브이. | 단일 메세지 요청에 기초하여 네트워크 노드로부터 다수의 청크 요청 |
US10902474B2 (en) | 2014-03-24 | 2021-01-26 | Qualcomm Incorporated | Targeted advertisement insertion for streaming media data |
US9866878B2 (en) | 2014-04-05 | 2018-01-09 | Sonic Ip, Inc. | Systems and methods for encoding and playing back video at different frame rates using enhancement layers |
US9860612B2 (en) * | 2014-04-10 | 2018-01-02 | Wowza Media Systems, LLC | Manifest generation and segment packetization |
US10523723B2 (en) | 2014-06-06 | 2019-12-31 | Koninklijke Kpn N.V. | Method, system and various components of such a system for selecting a chunk identifier |
US10033824B2 (en) * | 2014-06-30 | 2018-07-24 | Samsung Electronics Co., Ltd. | Cache manifest for efficient peer assisted streaming |
KR102597985B1 (ko) | 2014-08-07 | 2023-11-06 | 디빅스, 엘엘씨 | 독립적으로 인코딩된 타일을 포함한 기본 비트스트림을 보호하는 시스템 및 방법 |
WO2016033052A1 (en) * | 2014-08-26 | 2016-03-03 | Ctera Networks, Ltd. | Method and system for routing data flows in a cloud storage system |
CN104270646A (zh) * | 2014-09-22 | 2015-01-07 | 何震宇 | 一种基于移动流媒体的自适应传输方法和*** |
US10142386B2 (en) | 2014-10-29 | 2018-11-27 | DLVR, Inc. | Determining manifest file data used in adaptive streaming video delivery |
US10084838B2 (en) | 2014-10-29 | 2018-09-25 | DLVR, Inc. | Generating and using manifest files including content delivery network authentication data |
US9509742B2 (en) | 2014-10-29 | 2016-11-29 | DLVR, Inc. | Configuring manifest files referencing infrastructure service providers for adaptive streaming video |
US9813465B2 (en) * | 2014-12-19 | 2017-11-07 | Intel Corporation | Network proxy for energy efficient video streaming on mobile devices |
KR20190097320A (ko) | 2015-01-06 | 2019-08-20 | 디브이엑스, 엘엘씨 | 디바이스들간에 콘텐트를 인코딩 및 공유하기 위한 시스템들 및 방법들 |
US10218981B2 (en) * | 2015-02-11 | 2019-02-26 | Wowza Media Systems, LLC | Clip generation based on multiple encodings of a media stream |
US10375444B2 (en) * | 2015-02-13 | 2019-08-06 | Performance and Privacy Ireland Limited | Partial video pre-fetch |
US10298647B2 (en) * | 2015-02-26 | 2019-05-21 | Qualcomm Incorporated | Delay compensation for broadcast adaptive bitrate streaming |
EP3262523B1 (en) | 2015-02-27 | 2019-12-04 | DivX, LLC | System and method for frame duplication and frame extension in live video encoding and streaming |
US10528345B2 (en) * | 2015-03-27 | 2020-01-07 | Intel Corporation | Instructions and logic to provide atomic range modification operations |
US10291681B2 (en) * | 2015-06-18 | 2019-05-14 | Ericsson Ab | Directory limit based system and method for storing media segments |
KR102425517B1 (ko) * | 2015-09-04 | 2022-07-27 | 삼성전자주식회사 | 다수 개의 무선 억세스 인터페이스들을 지원하는 이동 통신 시스템에서 데이터 업로드 장치 및 방법 |
US10257284B2 (en) * | 2015-12-30 | 2019-04-09 | Samsung Electronics Co., Ltd. | Broadcasting local function templates to proximate mobile computing devices |
CN107040505B (zh) * | 2016-02-04 | 2021-01-26 | 中兴通讯股份有限公司 | 媒体数据传输方法及装置 |
US10075292B2 (en) | 2016-03-30 | 2018-09-11 | Divx, Llc | Systems and methods for quick start-up of playback |
CN105959362A (zh) * | 2016-04-25 | 2016-09-21 | 乐视控股(北京)有限公司 | Cdn服务器及其缓存数据的方法 |
US10129574B2 (en) | 2016-05-24 | 2018-11-13 | Divx, Llc | Systems and methods for providing variable speeds in a trick-play mode |
US10231001B2 (en) | 2016-05-24 | 2019-03-12 | Divx, Llc | Systems and methods for providing audio content during trick-play playback |
US10104143B1 (en) * | 2016-06-03 | 2018-10-16 | Amazon Technologies, Inc. | Manifest segmentation |
US10116719B1 (en) | 2016-06-03 | 2018-10-30 | Amazon Technologies, Inc. | Customized dash manifest |
US10432690B1 (en) | 2016-06-03 | 2019-10-01 | Amazon Technologies, Inc. | Manifest partitioning |
US10148989B2 (en) | 2016-06-15 | 2018-12-04 | Divx, Llc | Systems and methods for encoding video content |
AU2017290693B2 (en) * | 2016-06-29 | 2020-07-02 | Amazon Technologies, Inc. | Network-accessible data volume modification |
US11617019B2 (en) * | 2016-07-28 | 2023-03-28 | Qualcomm Incorporated | Retrieving and accessing segment chunks for media streaming |
TWI599218B (zh) * | 2016-07-29 | 2017-09-11 | 元智大學 | 即時影音傳輸系統 |
KR101863598B1 (ko) * | 2016-07-29 | 2018-06-01 | 주식회사 에어브로드 | 스트리밍 서비스를 위한 클라이언트의 동작 방법 |
US20180062935A1 (en) * | 2016-08-25 | 2018-03-01 | Futurewei Technologies, Inc. | Hybrid approach with classification for name resolution and producer selection in icn |
CN109964471B (zh) * | 2016-10-18 | 2022-03-22 | 埃克斯普韦公司 | 用于向移动用户设备发送内容的方法 |
US10440085B2 (en) * | 2016-12-30 | 2019-10-08 | Facebook, Inc. | Effectively fetch media content for enhancing media streaming |
US10476943B2 (en) | 2016-12-30 | 2019-11-12 | Facebook, Inc. | Customizing manifest file for enhancing media streaming |
US10498795B2 (en) | 2017-02-17 | 2019-12-03 | Divx, Llc | Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming |
US10536275B2 (en) * | 2017-05-10 | 2020-01-14 | Microsoft Technology Licensing, Llc | Verification of downloaded subsets of content |
CN107308645B (zh) * | 2017-06-07 | 2018-07-03 | 浙江无端科技股份有限公司 | 一种游戏透视外挂检测的方法及游戏客户端 |
US10609429B2 (en) | 2017-06-28 | 2020-03-31 | Telefonaktiebolaget Lm Ericsson (Publ) | System, devices and methods for providing stream privacy in an ABR OTT media network |
CN108234638A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 一种基于内容分发网络cdn的数据处理方法和装置 |
CN108449308B (zh) * | 2018-01-18 | 2020-11-27 | 北京奇艺世纪科技有限公司 | 识别恶意资源访问的方法及装置 |
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 |
CN110166502B (zh) * | 2018-02-11 | 2021-06-01 | ***通信有限公司研究院 | 数据获取方法、服务提供端、服务使用端及网络功能实体 |
US10645186B2 (en) * | 2018-04-23 | 2020-05-05 | Level 3 Communications, Llc | Speculative caching in a content delivery network |
CN109194966B (zh) * | 2018-08-03 | 2021-04-27 | 广州酷狗计算机科技有限公司 | Sei消息的有效载荷获取方法、装置和存储介质 |
US10863211B1 (en) * | 2018-11-12 | 2020-12-08 | Amazon Technologies, Inc. | Manifest data for server-side media fragment insertion |
EP3942437B1 (en) | 2019-03-21 | 2024-01-10 | DivX, LLC | Systems and methods for multimedia swarms |
US11789771B2 (en) | 2019-09-28 | 2023-10-17 | Tencent America LLC | Method and apparatus for a step-enabled workflow |
US11516152B2 (en) * | 2019-09-28 | 2022-11-29 | Tencent America LLC | First-in first-out function for segmented data stream processing |
US11442766B1 (en) * | 2020-02-03 | 2022-09-13 | Architecture Technology Corporation | Systems and methods for open threat hunt |
US11553017B1 (en) * | 2021-03-09 | 2023-01-10 | Nokia Technologies Oy | Timed media HTTP request aggregation |
US20220360990A1 (en) * | 2021-05-05 | 2022-11-10 | Rohde & Schwarz Gmbh & Co. Kg | 4g / 5g core network deep packet inspection system |
US20230224523A1 (en) * | 2022-01-13 | 2023-07-13 | Mux, Inc. | Method for dynamic selection of a content delivery network |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011038034A1 (en) * | 2009-09-22 | 2011-03-31 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel http and forward error correction |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1002276B1 (en) * | 1997-08-11 | 2007-01-03 | Thomas C. Amon | Provider-selected message in response to user request |
US6889256B1 (en) * | 1999-06-11 | 2005-05-03 | Microsoft Corporation | System and method for converting and reconverting between file system requests and access requests of a remote transfer protocol |
FI115418B (fi) * | 2001-09-20 | 2005-04-29 | Oplayo Oy | Adaptiivinen mediavirta |
JP4452032B2 (ja) * | 2003-04-14 | 2010-04-21 | 日本放送協会 | コンテンツ提示装置及びコンテンツ提示プログラム |
US6728729B1 (en) * | 2003-04-25 | 2004-04-27 | Apple Computer, Inc. | Accessing media across networks |
US20050102371A1 (en) | 2003-11-07 | 2005-05-12 | Emre Aksu | Streaming from a server to a client |
US20050254575A1 (en) * | 2004-05-12 | 2005-11-17 | Nokia Corporation | Multiple interoperability points for scalable media coding and transmission |
US20070204115A1 (en) | 2006-02-28 | 2007-08-30 | Maven Networks, Inc. | Systems and methods for storage shuffling techniques to download content to a file |
US7783773B2 (en) * | 2006-07-24 | 2010-08-24 | Microsoft Corporation | Glitch-free media streaming |
US20100011091A1 (en) * | 2008-07-10 | 2010-01-14 | Blackwave Inc. | Network Storage |
US8621044B2 (en) * | 2009-03-16 | 2013-12-31 | Microsoft Corporation | Smooth, stateless client media streaming |
EP2417743B1 (en) * | 2009-04-09 | 2019-06-05 | Telefonaktiebolaget LM Ericsson (publ) | Methods and arrangements for creating and handling media files |
JP5642779B2 (ja) | 2009-06-15 | 2014-12-17 | ブラックベリー リミテッド | クライアント制御セッションレス適応を促進する方法および装置 |
US8433814B2 (en) * | 2009-07-16 | 2013-04-30 | Netflix, Inc. | Digital content distribution system and method |
US20110096828A1 (en) | 2009-09-22 | 2011-04-28 | Qualcomm Incorporated | Enhanced block-request streaming using scalable encoding |
-
2012
- 2012-04-04 US US13/439,556 patent/US8849950B2/en active Active
- 2012-04-05 PL PL12716868T patent/PL2695355T3/pl unknown
- 2012-04-05 DK DK12716868.0T patent/DK2695355T3/en active
- 2012-04-05 JP JP2014503995A patent/JP2014515144A/ja not_active Withdrawn
- 2012-04-05 EP EP12716868.0A patent/EP2695355B1/en active Active
- 2012-04-05 HU HUE12716868A patent/HUE042019T2/hu unknown
- 2012-04-05 WO PCT/US2012/032372 patent/WO2012138895A1/en active Application Filing
- 2012-04-05 KR KR1020137029554A patent/KR101548444B1/ko active IP Right Grant
- 2012-04-05 BR BR112013025351-7A patent/BR112013025351B1/pt active IP Right Grant
- 2012-04-05 PT PT12716868T patent/PT2695355T/pt unknown
- 2012-04-05 SI SI201231556T patent/SI2695355T1/sl unknown
- 2012-04-05 ES ES12716868T patent/ES2716274T3/es active Active
- 2012-04-05 CN CN201280016213.2A patent/CN103460667B/zh active Active
- 2012-04-06 TW TW101112387A patent/TWI465088B/zh active
-
2015
- 2015-08-14 JP JP2015160180A patent/JP6316781B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011038034A1 (en) * | 2009-09-22 | 2011-03-31 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel http and forward error correction |
Also Published As
Publication number | Publication date |
---|---|
JP2016028474A (ja) | 2016-02-25 |
US8849950B2 (en) | 2014-09-30 |
JP6316781B2 (ja) | 2018-04-25 |
ES2716274T3 (es) | 2019-06-11 |
US20120259946A1 (en) | 2012-10-11 |
TWI465088B (zh) | 2014-12-11 |
EP2695355A1 (en) | 2014-02-12 |
JP2014515144A (ja) | 2014-06-26 |
PT2695355T (pt) | 2019-04-01 |
HUE042019T2 (hu) | 2019-06-28 |
CN103460667A (zh) | 2013-12-18 |
WO2012138895A1 (en) | 2012-10-11 |
BR112013025351A2 (pt) | 2016-12-13 |
SI2695355T1 (sl) | 2019-05-31 |
PL2695355T3 (pl) | 2019-06-28 |
KR101548444B1 (ko) | 2015-08-28 |
EP2695355B1 (en) | 2018-12-19 |
TW201251406A (en) | 2012-12-16 |
DK2695355T3 (en) | 2019-04-01 |
BR112013025351B1 (pt) | 2022-05-17 |
KR20140004218A (ko) | 2014-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103460667B (zh) | 使用字节范围请求的视频数据的网络流 | |
CN104396263B (zh) | 用于流送媒体内容的实时复用变换的方法和*** | |
US11089358B2 (en) | Method of unscrambling television content on a bandwidth | |
CN105612753B (zh) | 媒体流传输期间在适配集合间的切换方法和装置 | |
CN106134146B (zh) | 处理连续的多周期内容 | |
CN103583040B (zh) | 实时视频检测器 | |
CN103081433B (zh) | 用于经译码视频数据的网络串流传输的清单文件更新 | |
KR101401183B1 (ko) | 스트리밍 미디어 파일의 표현을 기술하고 타이밍하기 위한 장치 및 방법 | |
CN102598688B (zh) | 流式传输经编码视频数据 | |
CN102740159B (zh) | 媒体文件存储格式和自适应传送*** | |
CN110447234A (zh) | 作为分隔符及可寻址资源标识符的区段类型 | |
CN107810624A (zh) | 用信号发送用于广播的高速缓存的段 | |
CN107637040A (zh) | 使用websocket子协议来传输媒体数据 | |
CN110089122A (zh) | 对于用于流式处理媒体数据的预取支持的数据发信 | |
CN106878804A (zh) | 经译码视频数据的网络流式传输 | |
CN107251521A (zh) | 用于在通信***中发送和接收媒体信息的方法和装置 | |
CN101282356A (zh) | 一种实时数据传输的方法和装置以及*** | |
CN106105239B (zh) | 发送设备、发送方法、接收设备、接收方法和程序 | |
CN105635188A (zh) | 一种可视化内容分发方法及*** | |
Anadiotis et al. | Information‐centric networking for multimedia, social and peer‐to‐peer communications | |
CN109587517A (zh) | 一种多媒体文件的播放方法及装置、服务器及存储介质 | |
CN108495178A (zh) | 在线视频处理方法及*** | |
TW479200B (en) | Method and apparatus for caching for streaming data | |
Baly et al. | Archiving streaming media on the web: proof of concept and first results | |
KR20090052033A (ko) | 멀티미디어 컨텐츠 데이터 운용방법 및 시스템과 이를 위한기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |