CN102577272B - 低等待时间的可高速缓存的媒体流式传输 - Google Patents
低等待时间的可高速缓存的媒体流式传输 Download PDFInfo
- Publication number
- CN102577272B CN102577272B CN201080045546.9A CN201080045546A CN102577272B CN 102577272 B CN102577272 B CN 102577272B CN 201080045546 A CN201080045546 A CN 201080045546A CN 102577272 B CN102577272 B CN 102577272B
- Authority
- CN
- China
- Prior art keywords
- fragment
- media
- client
- encoder
- server
- 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
- 239000012634 fragment Substances 0.000 claims abstract description 223
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000026676 system process Effects 0.000 description 4
- 230000001839 systemic circulation Effects 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000033764 rhythmic process Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 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/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
- 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
- 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/765—Media network packet handling intermediate
-
- 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/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- 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/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/4348—Demultiplexing of additional data and video streams
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种低等待时间流式传输系统以减小的等待时间来提供客户端与服务器之间的无状态协议。该服务器将递增信息嵌入在媒体片段中,所述递增信息消除了典型控制信道的使用。另外,该服务器提供对媒体片段请求的统一媒体片段响应,由此允许现有因特网高速缓存基础结构对流媒体数据进行高速缓存。每个片段都具有相区别的统一资源定位符(URL),所述统一资源定位符允许该片段被标识出并且被因特网高速缓存服务器和客户端的浏览器高速缓存二者高速缓存。该系统使用各种技术来降低等待时间,比如:发送包含比完整图像组(GOP)更少内容的片段;在不依赖于随后的片段的情况下对媒体进行编码;以及通过允许客户端仅仅利用关于以前帧的信息来请求随后帧。
Description
背景技术
流媒体是在被(使用服务器的)流式传输提供者递送时持续地由(使用客户端的)最终用户接收并且通常被呈现给最终用户的多媒体。现有媒体流式传输架构的一个问题是服务器与客户端之间的紧密耦合。客户端与服务器之间的有状态的连接造成了附加的服务器开销,因为服务器跟踪每个客户端的当前状态。这还限制了服务器的伸缩性。另外,客户端不能快速地对诸如下列改变中的条件作出反应:增加的分组丢失;减少的带宽;用户请求不同的内容或者修改现有内容(例如加速或倒带)等等,而不是首先与服务器通信并且等待服务器进行适应和响应。常常在客户端报告较低的可用带宽时,服务器不够快速地适应,从而在超过可用带宽的分组不被接收并且新的较低比特率分组未及时地从服务器发送时导致客户端上的用户注意到媒体的中断。为了避免这些问题,客户端常常缓冲数据,但是缓冲引入了等待时间,等待时间对于实况事件而言可能是不可接受的。
另外,因特网包含许多类型的可下载的媒体内容项目,包括音频、视频、文档等等。这些内容项目常常非常大,比如几百兆字节的视频。用户常常通过web浏览器使用HTTP在因特网上检索文档。因特网已经建立了路由器和代理的大的基础结构,这些路由器和代理有效地对数据进行高速缓存以用于HTTP。服务器可以以较少的延迟并且通过使用与从原始来源重新请求内容相比更少的资源来向客户端提供经高速缓存的数据。例如,纽约的用户可以下载从日本的主机所服务的内容项目,并且通过加利福尼亚的路由器接收该内容项目。如果新泽西的用户请求相同的文件,则加利福尼亚的路由器可能能够提供该内容项目,而不必再次从日本的主机请求该数据。这减少了通过可能紧张的路由的网络通信量,并且允许新泽西的用户以较少的延迟接收该内容项目。
遗憾的是,实况媒体常常不能使用现有协议来被高速缓存,并且每个客户端都从相同的服务器或服务器组请求媒体。另外,当流媒体可以被高速缓存时,这常常是由专用高速缓存硬件完成的、而不是由现有和易于获得的基于HTTP的因特网高速缓存基础结构完成的。高速缓存的缺乏限制了并行观众的数目、以及服务器能够处理的请求的数目,并且限制了对实况事件的出席。世界上越来越多使用因特网来消费最新的实况信息,比如通过因特网观看诸如2008奥林匹克运动会开幕式之类的实况事件的创纪录的用户数目。当前技术的局限性正在减缓将因特网用作用于消费这种类型的媒体内容的介质。
当期望基于因特网的流媒体与通过传统广播(例如卫星)或其他系统发送的实况广播密切地同步时,原始信号与信号在客户端处重现的时间之间的等待时间也可能是一个问题。流媒体经过编码器、一个或多个服务器,以及最终转到客户端。沿着该路径,可能发生引入等待时间的大量延迟。例如,编码器可以包括其在对每个分组进行编码以前用信号信息来填充的缓冲区;服务器协议可以要求将关于即将到来的分组的信息放置在当前分组中,使得服务器将分组保持得超过这些分组将被发送的最早时间;客户端可以在回放数据以前缓冲数据(例如由于解码器设定);等等。这些延迟中的每个都促使了实况事件的时间与客户端能够查看实况事件的时间之间的等待时间。
发明内容
在此描述了一种低等待时间的流式传输系统,该系统以与以前系统相比减少的等待时间来提供客户端与服务器之间的无状态协议。该服务器将递增信息嵌入在媒体片段(例如块)中,所述递增信息消除了典型控制信道的使用。另外,该服务器提供对媒体片段请求的统一媒体片段响应(即请求相同片段的客户端获得相同的响应),由此允许现有因特网高速缓存基础结构对流媒体数据进行高速缓存。每个片段都具有相区别的统一资源定位符(URL),所述统一资源定位符允许该片段被标识出并且被因特网高速缓存服务器和客户端的浏览器高速缓存二者高速缓存。该系统使用各种技术来降低等待时间,比如:发送包含比完整图像组(GOP)更少内容的片段;在不依赖于随后的片段的情况下对媒体进行编码;以及通过允许客户端仅仅利用关于以前帧的信息来请求随后帧。因此,低等待时间流式传输系统提供更加可伸缩的流媒体服务器而不必跟踪客户端状态,并且客户端将以较低等待时间从客户端本地的高速缓存服务器接收媒体的可能性增加。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图说明
图1是示出在一个实施例中的低等待时间流式传输系统的各组件的框图。
图2是示出了一个实施例中的使用MicrosoftWindows和Microsoft因特网信息服务器(IIS)的低等待时间流式传输系统的操作环境的框图。
图3是示出一个实施例中的低等待时间流式传输系统从服务器处的编码器接收媒体数据的处理的流程图。
图4是示出一个实施例中的低等待时间流式传输系统处理用于服务器处的流媒体的客户端连接的处理的流程图。
图5是示出了一个实施例中的从编码器到原始服务器的媒体片段流的数据流图。
图6是示出一个实施例中低等待时间流式传输系统在客户端上回放媒体的的处理的流程图。
图7是示出一个实施例中的低等待时间流式传输系统处理单个媒体块的处理的流程图。
具体实施方式
在此描述了一种低等待时间流式传输系统,该系统以与以前系统相比减少的等待时间来提供客户端与服务器之间的无状态协议。该服务器将递增信息嵌入在媒体片段(例如块)中,所述递增信息消除了典型控制信道的使用。另外,该服务器提供对媒体片段请求的统一媒体片段响应(即请求相同片段的客户端获得相同的响应),由此允许现有因特网高速缓存基础结构对流媒体数据进行高速缓存。每个片段都具有相区别的统一资源定位符(URL),所述统一资源定位符允许该片段被标识出并且被因特网高速缓存服务器和客户端的浏览器高速缓存二者高速缓存。高速缓存减少了服务器的负载,并且允许更多的客户端同时查看相同的内容。低等待时间流式传输系统从一个或多个编码器接收片段形式的媒体数据,创建每个片段的索引,并且存储所述片段。
随着事件进展,服务器提供客户端所请求的片段,直到事件结束。每个片段都包含元数据信息,所述元数据信息除了片段的供客户端回放的媒体内容以外还描述服务器上可用的编码以及片段的编码。该服务器可以提供多种编码的片段,使得客户端例如可以基于网络条件快速地切换到不同比特率或回放速度的片段。服务器还可以在每个片段内提供如下的信息:该信息允许客户端确定该客户端是请求数据过快还是过慢,使得该客户端可以使其请求速率适应于与服务器接收编码器数据一致的节奏。因此,低等待时间流式传输系统提供更加可伸缩的流媒体服务器而不必跟踪客户端状态,并且客户端将以较低等待时间从客户端本地的高速缓存服务器接收媒体的可能性增加。
在一些实施例中,低等待时间流式传输系统在服务器与客户端之间使用特定的数据传输格式。客户端向包括媒体的一部分的服务器请求媒体片段。例如,对于10分钟的文件而言,客户端可以请求2秒或更小的片段。注意,不同于服务器将数据推送给客户端的典型流式传输,在这种情况下,客户端从服务器拉取媒体片段。在实况流的情况下,服务器可以在进行中创建媒体,并且产生片段来响应客户端请求。因此,根据服务器多快地创建片段以及客户端多快地请求片段,客户端可以仅仅落后于服务器若干片段。
每个片段都包含元数据和媒体内容。元数据可以描述诸如下列关于媒体内容的有用信息:媒体内容被编码的比特率;媒体内容被放入到较大的媒体元素中的何处(例如该片段表示10分钟的视频剪辑中的偏移量1∶10);用于对媒体内容进行编码的编解码器;等等。客户端使用该信息将片段放置到较大的媒体元素的故事板中并且合适地对媒体内容进行解码和回放。
网络分组丢失是不可避免的。它发生在公共因特网、DSL、电缆、无限局域网(WLAN)、3G无线以及许多其他种类的网络上。因特网上的所估计的分组丢失率是5%,而某些无线网络可具有超过10%的分组丢失率。诸如传输控制协议(TCP)等可靠的网络传输协议将在传输介质丢弃分组时重发该分组,由此保证分组传递。诸如不可靠数据报协议(UDP)等不可靠协议不保证分组送达并且不重发丢弃的分组。重发分组花费时间且消耗额外的带宽。由于视频通信的实时特性,视频信号通常使用不可靠协议来发送并因此将遭受网络分组丢失。
对于实时视频通信,发送端点有时以每秒20到30帧或更多的速率跨网络将视频帧发送到接收端点。帧基于网络所允许的最大传输单元(MTU)(例如,对于以太网是1500字节)来被分成各分组。视频帧可以小得足以放入一个分组中,或者可以大得足以填充许多分组。对于某些视频压缩器/解压缩器(编解码器),如果丢弃帧中的任何分组,则接收端点可能由于缺少数据而丢弃整个帧。
另外,编解码器通常使用依赖性结构来减少发送端点通过网络来传送的视频数据量。例如,被称为内(I)帧的帧基于其内容来被完全编码。后续帧基于与先前帧的增量(差信号)来压缩。这些帧通常被称为预测(P)帧。某些编解码器引入甚至更复杂的依赖性结构。例如,编解码器可以偶尔发送被称为超预测(SP)帧的指定P帧,其中与常规P帧不同,所述SP帧不依赖于直接在前的P帧或I帧而是依赖于更旧的SP帧或I帧。这样的SP帧的内容通常与参考帧相关度较小并且由此携带更多的视频数据。另一种类型的帧是包含与先前和后续帧两者的增量的中间或双向(B)帧。这些类型的帧间依赖性减少了发送端点通过网络来传送的数据量,但这些依赖性也扩大了网络分组丢失的影响。例如,如果丢弃I帧,则接收端点将缺少针对依赖该I帧的所有后续P帧的数据,并且用户将看见视频伪像直到下一I帧到达。
图像组(GOP)结构指定了内和间帧被安排的顺序。GOP是经编码的视频流内的一组连续的图像。每个经编码的视频流都包括连续的GOP。从包含在GOP中的图像中生成可视帧。GOP以I帧开始。然后跟随有若干P帧,其在每种情况下都具有某个帧距离。在剩余的空隙中是B帧。I帧包含了完整图像,并且不参考任何附加的信息来重建图像。因此,GOP结构内的任何错误都被下一I帧纠正。GOP内的B帧仅仅在H.264中传播错误,在H.264中,其他图像可以参考B帧以便提高压缩效率。视频流具有越多的I帧,则该视频是越可编辑的。然而,具有更多I帧将增加流大小。为了节省带宽和盘空间,为因特网广播准备的视频常常每GOP仅具有一个I帧。GOP结构常常由两个数字来指代,例如M=3,N=12。第一个数字说明两个锚帧(I或P)之间的距离。第二个数字说明两个完整图像(I帧)之间的距离。这是GOP长度。对于示例M=3N=12而言,GOP结构是IBBPBBPBBPBB。替代于M参数,可以使用两个相继锚帧之间的B帧的最大计数。
在一个实施例中,低等待时间流式传输系统创建比整个GOP包含更少内容的片段。例如,该系统可以创建长度为一个或多个帧、但是少于完整GOP的片段。在一些情况下,完整GOP可以表示两秒视频,并且等待以片段发送完整GOP可能引入两秒或更多秒的等待时间。通过创建比完整GOP具有更少内容的片段,该系统可以管理片段的大小以将等待时间降低到更加可接受的水平。例如,以每个都包含3帧的片段发送的每秒30帧(fps)视频将仅仅包括可归因于片段布局的十分之一秒的等待时间。
在一些实施例中,低等待时间流式传输系统在没有B帧的情况下对GOP进行编码。由于B帧包括前向依赖性,因此B帧在流中的存在将致使客户端上的解码器在对B帧解码以前等待该B帧之后的帧。例如,客户端可以等待B帧所参考的随后的P帧,使得其可以首先对P帧、然后对B帧进行解码。该延迟引入了回放等待时间。通过从经编码的流中消除B帧,该系统去除了解码器处的等待时间。B帧常常被用来降低用于传送给定流质量的带宽。然而,在带宽充足或者稍低的质量是可接受的情况下,不带B帧的编码可以因其他可接受的折衷而减小等待时间。
在一些实施例中,低等待时间流式传输系统包括下一片段请求,所述下一片段请求可以被客户端发送给服务器以请求跟随在所标识出的片段之后的片段。服务器常常在发送当前片段以前等待从编码器接收一个或多个随后的片段。这允许服务器将关于随后片段的信息(比如随后片段的相对或绝对开始时间)嵌入在当前片段的元数据中。这允许客户端使用所嵌入的信息直接请求随后的片段。然而,致使服务器以这种方式保持分组将引入不必要的等待时间。通过允许客户端请求跟随在该客户端已经接收的片段之后的片段,低等待时间系统允许服务器避免保持片段,并且减小等待时间。该系统允许客户端请求如下的特定服务器URL:所述特定服务器URL以可以经由标准因特网代理使用典型HTTP或其他协议高速缓存来高速缓存的方式标识出下一片段请求。
图1是示出在一个实施例中的低等待时间流式传输系统的各组件的框图。低等待时间流式传输系统100包括由诸如因特网之类的网络145连接的至少一个服务器105和至少一个客户端150。服务器105包括注册事件组件110、编码器接口组件115、索引片段组件120、片段数据存储125、客户端接口组件130、构建客户端清单组件135、时钟同步组件140。这些组件中的每一个都在此处进一步详细讨论。
注册事件组件110接收关于实况或其他媒体事件的信息,其中针对所述媒体事件,系统100将接收经编码的媒体数据。该信息可以包括将向服务器提供经编码媒体数据的每个编码器的网络地址信息或其他标识符。该信息还包括编码器将把经编码媒体数据提供给的、并且客户端可以访问所述媒体数据之处的URL。
编码器接口组件115提供系统100与提供经编码媒体数据的一个或多个编码器之间的接口。所述编码器可以使用常用网络协议将数据推送给系统100。例如,编码器可以使用HTTPPOST请求来向系统100提供经编码的媒体数据。编码器每个都可以使用相区别的URL,所述URL指定作为经编码媒体数据的源的编码器,其中服务器可以将所述URL与注册事件组件110在媒体事件被注册时接收的信息相匹配。
编码器接口组件115可以指定所接收的经编码媒体数据的特定格式,比如MP4或其他媒体容器(例如MKV)。MP4容器格式允许多种类型的数据被关联在单个文件中。组成MP4容器的各种数据被称为盒(box),并且每个盒通常都具有标识出该盒中所存储数据的类型的标签。编码器可以在盒中放置元数据信息、比如用于对经编码媒体数据进行编码的编码类型、以及经编码媒体数据本身。
系统100可以将编码器配置为降低由该系统产生的总等待时间。例如,系统100可以将编码器配置为不将B帧包括在流中,使得解码器可以更快速地对帧进行解码而不必等待B帧将参考的随后帧。另外,系统100可以指示编码器产生包括比整个GOP更少的片段,使得编码器可以更快速地将片段推送给服务器105。
索引片段组件120创建和维护从各个编码器接收的片段的索引表。由于系统100在事件期间以正在进行的基础从可能许多编码器接收媒体片段,因此系统100使用索引表来跟踪什么媒体片段已经被接收到、以及是从哪些编码器(或者以何种格式)接收到的。每个编码器都可以使用共同的方法来标识出媒体片段(例如使用同步时钟的时间戳),使得索引片段组件120可以将来自不同编码器的表示实况事件中的相同时间段的片段相关。通过这种方式,系统100可以检测到何时缺少媒体片段并且可以向客户端提供关于可用媒体片段的清单信息。
片段数据存储125存储所接收的媒体片段和片段的所创建的索引表,以响应于所接收的客户端请求提供给客户端。片段数据存储可以包括数据库、盘驱动器或其他形式的数据存储(例如存储区域网(SAN)或基于云的存储服务)。
客户端接口组件130接收针对媒体片段的客户端请求,并且向客户端提供清单数据和媒体片段。当客户端最初连接到系统100时,客户端可以发送针对客户端清单的请求。客户端接口组件130调用构建客户端清单组件135以基于索引表创建清单,所述清单包括关于从系统100可用的编码、以及直到当前时间由系统100所存储的片段的信息。客户端可以使用该信息来要么开始请求正在进行的实况片段、要么在时间上跳回到呈现的较早部分。例如如果客户端加入已经在进行的实况事件并且想要赶上该事件的以前部分,则该客户端可以使用该技术。
构建客户端清单组件135构建清单以满足客户端请求,所述清单包括关于从系统100可用的编码中的每个、以及直到当前时间由系统100存储的片段的信息。构建客户端清单组件135还提供与每个媒体片段包括在一起的如下清单:该清单向客户端提供关于当前媒体片段以及可能随后的片段的信息。通过将最初接收的清单与同每个媒体片段一起提供的随后清单相组合,客户端可以构建最新清单,该最新清单包括关于从启动直到当前时间的媒体事件的完整信息。当媒体事件完成时,客户端具有媒体事件的完整故事板,该故事板可被该客户端用于媒体事件的点播查看。
在一些实施例中,客户端接口组件130响应针对可用片段的客户端请求,而不必等待将包括当前片段信息的随后片段。客户端可以通过参考当前片段来请求随后片段。例如,如果客户端上次在时间1000请求了片段并且想要随后的片段,则该客户端可以发送请求以取得跟随在时间1000的片段之后的片段。通过这种方式,服务器可以发送片段而不引入由于在发送片段以前等待随后片段引起的附加等待时间。
时钟同步组件140同步系统100、客户端和编码器的时钟。尽管绝对时间与系统100是不相关的,但是能够在多个编码器的范围内标识出特定片段以及向客户端提供请求片段的速率(例如节奏)是与系统100相关的。例如,如果客户端150过快地请求数据,则服务器105将还不具有该数据,并且将以错误响应作出响应(例如HTTP404未找到错误响应),从而造成许多不必要地消耗带宽的虚假请求。另一方面,如果客户端150过慢地请求数据,则客户端150不能及时地具有数据以供回放,从而造成向用户回放的媒体中的可察觉的中断。另外,编码器产生以可动态变化的编码的媒体片段,并且可能不能提供有意义的方式来将以不同编码表示相同时间段的两个片段相关、以及将片段放入到媒体事件的总时间线中的何处。时钟同步组件140通过允许服务器105、编码器和客户端在特定时间具有相似时钟值来提供该信息。编码器还可以用编码器创建该片段的时间来标记每个媒体片段。通过这种方式,如果客户端150请求特定的片段,则无论客户端150选择何种编码,该客户端150都将取得表示相同时间段的片段。
客户端150包括块请求组件155、块解析组件160、清单组装组件165、媒体回放组件170、QoS监控组件175、以及时钟同步组件180。这些组件中的每一个都在此处进一步详细讨论。
块请求组件155作出客户端对来自服务器的各个媒体块的请求。如图2所示,客户端的请求可以首先经过边缘服务器(例如因特网高速缓存),然后经过原始服务器,并且然后经过摄取服务器。在每个阶段,如果所请求的数据被找到,则请求不进行到下一等级。例如,如果边缘服务器具有所请求的数据,则客户端从边缘服务器接收该数据,并且原始服务器不接收该请求。每个块都具有个别化地标识出该块的统一资源定位符(URL)。因特网高速缓存服务器擅长于高速缓存对特定URL请求(例如HTTPGET)的服务器响应。因此,当第一客户端接通到服务器105以获取块时,边缘服务器高速缓存该块,并且请求该同一块的后续客户端可以从边缘服务器接收该块(基于高速缓存的寿命和服务器存活时间(TTL)设定)。块请求组件155接收块并且将其传递给块解析组件160以用于解释。块请求组件1550可以通过参考之前的块来请求块(例如给我块N之后的块)。
块解析组件160解释由块请求组件155接收的媒体块的格式,并且将块分成其组分部分。通常,块包括含有元数据的报头部分、以及含有媒体内容的数据部分。块解析组件将元数据提供给清单组装组件165,并且将媒体内容提供给媒体回放组件170。媒体内容可以包括混合媒体类型,比如与呈现相关的视频和音频数据。
清单组装组件165构建描述所接收的媒体内容所属的媒体元素的清单。由客户端整体下载(例如未流式传输)的大媒体文件常常包括清单,该清单描述整个文件、用于对文件的各个部分进行编码的编解码器和比特率、关于文件内的有意义的部分的标记等等。在尤其是流式传输实况内容期间,服务器105不能提供完整的清单,因为事件还在进行。因此,服务器105通过媒体块中的元数据提供其所能提供的清单那样多的清单。服务器105还可以提供诸如预定义URL之类的应用编程接口(API)以供客户端请求直到媒体流中的当前点的清单。这在客户端150在实况的被流式传输的事件已经进展以后加入该事件时可能是有用的。清单允许客户端150请求媒体元素的之前被流式传输的部分(例如通过倒带),并且客户端150通过被流式传输的媒体块的元数据继续接收清单的新的部分。
清单组装组件165构建与对完整媒体文件可用的清单类似的清单。因此,随着事件进行,如果用户想要在媒体中向后跳转(例如倒带或跳转到特定的位置),然后再次向前跳转,则用户可以这样做并且客户端150使用经组装的清单来找出合适的一个块或多个块以向用户回放。当用户暂停时,系统100可以继续接收媒体块(或者基于相区别的请求URL仅仅接收块的元数据部分),使得清单组装组件165可以继续构建清单并且在用户结束暂停以后为任何用户请求做好准备(例如跳转到当前的实况位置或者从暂停位置播放)。客户端侧经组装的清单允许客户端150在媒体事件一结束就将该事件作为点播内容进行回放,以及在媒体事件进行时在媒体事件的范围内跳转。
媒体回放组件170使用客户端硬件来回放所接收的媒体内容。媒体回放组件170可以调用一个或多个编解码器来解释在其内部的媒体内容被传输的容器并且将媒体内容从经压缩的格式解压缩或以其他方式解码成原始格式(例如YV12、RGBA或者PCM音频采样)。媒体回放组件170然后可以将原始格式媒体内容提供给操作系统API(例如MicrosoftDirectX)以供在诸如显示器和扬声器之类的本地计算机系统声音和视频硬件上回放。服务器105可以通过所使用的编码来影响客户端150上的等待时间。例如,包括B帧的编码可以致使客户端在播放所接收的数据以前更长时间地缓冲该数据。通过不带B帧地对视频数据进行编码,服务器可以致使客户端以较低等待时间来回放视频。
QoS监控组件175分析从服务器105接收分组的成功,并且基于一组当前网络和其他条件调整客户端的请求。例如,如果客户端150按照惯例延迟地接收媒体块,则QoS监控组件175可以确定:客户端150与服务器105之间的带宽对于当前的比特率而言不够,并且客户端150可以开始请求较低比特率的媒体块。QoS监控可以包括其他试探法的测量、比如呈递帧速、窗口大小、缓冲区大小、重新缓冲的频率等等,并且然后采取合适的动作。每种比特率的媒体块都可以具有相区别的URL,使得各种比特率的块都由不同URL处的因特网高速缓存基础结构来高速缓存。注意,服务器105不跟踪客户端150状态并且不知道任何特定客户端当前正在以何种比特率播放。服务器105可以简单地提供各种比特率的相同的媒体元素以满足在一定范围的条件下的潜在客户请求。另外,客户端150所接收的初始清单和/或元数据可以包括关于从服务器105可用的比特率和其他编码性质的信息,使得客户端150可以选择将提供良好体验的编码。
当切换比特率时,客户端150可以简单地开始请求新的比特率并且在客户端150接收到块时回放新的比特率块。与之前的系统不同,客户端150不必向服务器105发送控制信息并等待服务器105调整流。客户端的请求甚至可以由于客户端150与服务器105之间的满足该请求的高速缓存而不到达服务器105。因此,客户端150比常规媒体流式传输系统中的客户端快得多地作出反应,并且服务器105上具有在各种当前条件下所连接的不同客户端的负担显著减小。另外,由于当前条件往往是局部化的,因此可能的是,处于特定地理区域中或者特定因特网服务提供商(ISP)上的许多客户端将体验类似的条件并且将请求类似的媒体编码(例如比特率)。由于高速缓存往往也是局部化的,因此可能的是特定情况下的客户端将感到它们附近的高速缓存“新鲜地”具有他们各自请求的数据,使得由每个客户端体验到的等待时间将是少的。
时钟同步组件180将客户端时钟与服务器时钟同步。尽管绝对时间与客户端和服务器在大体上是不相关的,但是能够标识出特定的块以及知道请求块的速率(例如节奏)是与客户端相关的。时钟同步还给予客户端跨许多编码的共同参考。例如,服务器可以同时以多种比特率并且使用多种编解码器对数据进行编码。每个编码器都可以以不同方式引用经编码的数据,但是时间戳可以以跨所有编码器被设置为通用。通过这种方式,如果客户端请求特定的块,则无论客户端选择何种编码,该客户端都将获得表示相同时间段的媒体。
在其上实现低等待时间流式传输系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定点设备)、输出设备(例如,显示设备),以及存储设备(例如,磁盘驱动器或其他非易失性存储介质)。存储器和存储设备是可以用实现或启用该系统的计算机可执行指令(例如,软件)来编码的计算机可读存储介质。此外,数据结构和消息结构可被存储或经由诸如通信链路上的信号等数据传送介质发送。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
该系统的实施例可以在各种操作环境中实现,这些操作环境包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、数码照相机、网络PC、小型计算机、大型计算机、包括任何上述系统或设备中任一种的分布式计算环境等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子设备、数码相机等。
该系统可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
如上面所讨论的那样,构建客户端清单组件创建客户端清单。以下是典型客户端清单的示例。
客户端清单列出了解码信息以及服务器迄今为止已经归档的所有片段的信息。总媒体片段数目和时长是仅仅针对服务器到客户端作出该请求为止已经归档的媒体片段的(这允许客户端快速地构建查找栏)。对于每个媒体片段,“t”是指绝对时间戳。客户端使用该值来构成片段URL(例如“Fragments(video={starttime}))。超前片段计数指示“跟踪片段参考盒”(TrackFragmentReferenceBox)将要参考的随后片段的有针对性的数目,这在此予以进一步描述。“为实况”(IsLive)指示实况广播是否仍在进行。
图2是示出了一个实施例中的使用MicrosoftWindows和Microsoft因特网信息服务器(IIS)的低等待时间流式传输系统的操作环境的框图。该环境通常包括源客户端210、内容递送网络240、以及外部网络270。源客户端是媒体或实况事件的源。源客户端包括媒体源220和一个或多个编码器230。媒体源220可以包括:相机,这些相机每个都提供多个相机角度;麦克风捕获音频;幻灯片呈现;文本(比如来自隐藏字幕服务);图像;以及其他类型的媒体。编码器230并行地以一种或多种编码格式对来自媒体源220的数据进行编码。例如,编码器230可以产生多种比特率的经编码的媒体。
低等待时间流式传输系统在里面进行操作的内容递送网络240包括一个或多个摄取服务器250和一个或多个原始服务器260。摄取服务器250从编码器230接收每种编码格式的经编码的媒体,并且创建描述经编码的媒体的清单。摄取服务器250可以创建和存储在此描述的媒体片段,或可以在片段被请求时在进行中创建片段。摄取服务器250可以比如通过HTTPPOST从编码器230、或者经由拉取通过请求数据从编码器230接收推送的数据。编码器230和摄取服务器250可以以多种冗余配置来连接。例如,每个编码器都可以将经编码的媒体数据发送给每个摄取服务器250或者仅仅发送给一个摄取服务器直到发生故障。原始服务器260是响应对媒体片段的客户端请求的服务器。原始服务器260也可以以多种冗余配置来配置。
在一些实施例中,摄取服务器250包括专用于摄取编码器媒体流的一个或多个服务器。管理员或内容作者可以创建发布点,所述发布点定义摄取服务器250的客户端可以找到特定媒体元素(例如实况事件)之处的URL。例如,使用IIS,管理员可以发布URL“http://ingserver/pubpoint.isml”。发布点被编码器230用于向摄取服务器250提供新媒体数据,并且被原始服务器260用于向摄取服务器250请求媒体数据。每个编码器都可以使用相区别的URL来连接到摄取服务器250,使得摄取服务器250可以检测相同数据的不同编码。例如,基于上一示例中的URL,编码器可以使用URL“http://ingserver/pubpoint.isml/Streams(stream1)”发送HTTPPOST以将媒体数据提供给摄取服务器。摄取服务器250存储所接收的数据以供摄取服务器250的客户端(例如原始服务器260)在以后进行检索。POST可以包含各种类型的媒体格式,比如MP4容器。MP4容器包含称为盒的各种类型的信息,所述盒通常被标记有四字母的编码,比如用于描述所使用的编码类型的“ftyp”、以及用于包含视听数据的“moov”。无论使用MP4还是其他容器格式,编码器都可以向流添加附加的盒或信息,比如包含描述媒体元素的清单的“清单盒”。
当摄取服务器250接收针对数据的请求时,摄取服务器250提供较早存储的数据。摄取服务器250可以支持若干类型的请求,包括针对标识出可用编码器流的编码器流清单的请求、以及针对来自特定流的数据(包括流数据的各部分)的请求。请求的类型可以由请求的URL来标识。例如,当摄取服务器250接收URL“http://ingserver/pubpoint.isml/StreamManifest”时,摄取服务器250返回包含每个可用编码器的标识符的编码器清单。当摄取服务器250接收URL“http://ingserver/pubpoint.isml/Streams(stream1)”时,摄取服务器250作为响应而发送针对与标识符“Encoder1”相关联的编码器的相应媒体流。该响应可以包括MP4数据,比如上述所高速缓存的“ftyp”、“清单盒”和“moov”盒,跟随在其后的是FIFO缓冲区中的媒体片段。摄取服务器250还可以接收“http://ingserver/pubpoint.isml/Streams(stream1)/StartTime(12345678)”形式的部分数据请求(例如在故障转移期间),该请求致使摄取服务器250跳过发送“ftyp”、“清单盒”和“moov”盒并且尝试从与指定时间戳最接近的媒体片段开始。
原始服务器260从媒体客户端接收针对媒体流的请求,并且从一个或多个摄取服务器250检索所请求的媒体流。像摄取服务器250那样,管理员或内容作者注册原始服务器上的发布点,并且然后将摄取服务器250和/或编码器URL与该发布点相关联。原始服务器260可以首先向摄取服务器250请求(例如使用HTTPGET请求)描述可用流的清单。然后,原始服务器将针对每个编码器流的单独请求提交给摄取服务器,并且摄取服务器用从编码器接收的所请求媒体流作出响应。
原始服务器260可以单独地接收关于媒体流和表示该媒体流所提供的大媒体元素的一部分的媒体片段的清单信息。原始服务器260基于时间戳或由每个编码器提供的允许原始服务器260将来自每个编码器的数据相关的其他标识符来构建从每个流接收的每个片段的索引。原始服务器260可以从所接收的数据中构建其自己的MP4容器或其他存储格式,以此来响应媒体客户端请求。通过从实况事件中构建已知格式的文件,原始服务器能够在该事件以后快速地提供媒体文件的统一下载。
当原始服务器260接收到媒体客户端请求时,原始服务器260通过将该服务器已经构建的索引附加到从编码器清单接收的静态流信息来生成客户端清单。如果存在多个流,则原始服务器260将流清单合并到全面的客户端清单中。这允许客户端选择该客户端请求哪种编码类型,而不必从原始服务器260获得进一步的信息。该服务器使用标准响应类型将该清单提供给该客户端,所述标准响应类型可以由诸如HTTP响应之类的现有因特网基础结构来高速缓存。由于清单数据可能随时间改变,因此服务器可以对清单响应设定短的高速缓存超时值(例如存活时间(TTL))。
外部网络270包括边缘服务器280和其他因特网(或者其他网络)基础结构和客户端290。当客户端作出针对媒体片段的请求时,该客户端向原始服务器260提出该请求。由于网络高速缓存的设计,如果边缘服务器280之一包含该数据,则该边缘服务器可以响应于客户端而不必传递该请求。然而,如果数据在边缘服务器处不可用,则边缘服务器将该请求转发给原始服务器260之一。同样,如果原始服务器260之一接收到对不可用数据的请求,则该原始服务器可以向摄取服务器250之一请求该数据。
图3是示出一个实施例中的低等待时间流式传输系统从服务器处的编码器接收媒体数据的处理的流程图。在框310中开始,该系统向一个或多个编码器发送配置参数。例如,配置参数可以指示编码器在不使用B帧的情况下对视频进行编码或者定义多少帧被放置在由编码器所发送的每个片段中。在框320中继续,该系统对传入流进行解析以获得描述该系统可以预期的所有编码器流的流清单、以及描述对出现媒体数据的流可用的媒体数据的服务器清单。该系统可以使用拉取或推送模型来操作。例如,该系统可以向编码器发送请求该编码器的配置信息的HTTPGET请求,或者该系统可以简单地作为该流的一部分从该编码器接收该信息。
在“推送”(例如编码器POST)情况下,两个清单都被嵌入在该流的开头处、定制盒(custombox)中,因此没有请求要作出,并且该系统可以解析出所述清单。在“拉取”情况下(例如服务器GET),流清单是不适用的(发布点定义包含等价的信息),并且该系统嵌入该信息作为定制盒。该流清单被用于指定服务器在向下游服务器和客户端呈现任何数据以前从编码器获取的一组流。在没有流清单的情况下存在竞争条件,其中服务器已经获取了一些、但不是全部编码器流,并且下游服务器或客户端取得不完整的图像。该系统如下意义上是“自管理的”:服务器管理员不指定预期什么流,因为每个传入编码器流都包含提供该信息的流清单。
在框330中继续,该系统从每个编码器接收编码器清单。该系统将编码器的清单合并到一起,并且存储经合并的清单以供有兴趣了解系统可提供的媒体编码的客户端在以后进行检索。在一些实施例中,该服务器可以请求:编码器根据诸如编码视频数据之类的特定参数来产生数据,而不使用B帧或在每个片段中包括某个数目的帧。在框340中继续,该系统从编码器接收媒体片段。该媒体片段可以包括时间戳、对该媒体片段进行编码的编码器的标识符、以及关于该媒体片段的其他信息。通常不使用编码器标识符,因为该系统知道片段是通过什么流进来的,并且具有关于除了该流标识符以外哪个编码器生成了该流的标识信息。在框350中继续,该系统对所接收的媒体片段进行索引化,并且将索引信息添加到该系统所维护的索引表中,所述索引表对来自该系统的可用媒体片段进行归类。该系统可以使用与媒体片段相关联的时间戳来把由不同编码器并行产生的媒体片段相关。
在框360中继续,该系统通过将片段和索引信息存储在数据存储中来对所述片段进行归档,其中在以后可以从所述数据存储中检索所述片段和索引信息以满足客户端请求。在框370中继续,该系统通过将关于所接收的片段的信息添加到该清单来构建服务器清单,所述服务器清单包括关于以所述媒体片段为组成部分的媒体事件的信息。该服务器在客户端连接时将该清单提供给该客户端以向该客户端提供关于那时存在的从该系统可用的媒体片段的信息。当该事件完成时,服务器清单包含媒体事件的完整描述,该描述可以被提供给客户端以用于媒体事件的点播查看。在判定框380中继续,如果系统从编码器预期更多的片段(例如实况事件仍在进行),则该系统循环到框340以接收下一编码器片段,否则该系统完成。
图4是示出一个实施例中的低等待时间流式传输系统处理用于服务器处的流媒体的客户端连接的处理的流程图。在框410中开始,该系统从客户端接收清单请求。对于实况事件,许多客户端都可以同时连接,但是不是所有客户端都将在该事件开始时连接。例如,如果媒体片段包含两秒的数据,并且客户端在该事件开始一分钟后进行连接,则将已经有30个片段从该系统可用。该客户端请求初始清单以确定该事件的从该系统可用的编码(其由向该系统提供数据的编码器来确定)、以及关于那时存在的片段的信息。注意,服务器与客户端之间的连接是无状态的。服务器通常不将任何资源专用于特定客户端。更确切地说,服务器监听任何传入请求,每个请求都请求特定片段或其他信息,并且该服务器响应该请求并且继续移动到下一请求,而不专门跟踪任何客户端对服务器的请求的状态或历史。
在框420中继续,该系统基于所接收的片段以及在该系统最初请求编码器清单时所接收的编码器信息来构建清单以满足客户端的请求。客户端清单包括:静态部分,所述静态部分是描述可用编码的每个编码器清单的联合;以及动态部分,所述动态部分描述服务器迄今为止从编码器接收的媒体片段。在框430中继续,该系统响应客户端请求向客户端提供所构建的客户端清单。在一些实施例中,该请求是标准HTTPGET请求,并且该响应是HTTP响应(例如200OK)。该系统可以对响应提供高速缓存寿命,使得在合理时间量内的随后客户端请求可以由因特网高速缓存基础结构进行服务。然后,由于清单的动态部分快速地变陈旧,因此高速缓存寿命短得足以避免给客户端留下过多陈旧的清单信息的高速缓存。基于该清单,该客户端可以开始请求以客户端选择的任何编码的片段。例如,该客户端可以最初选择低比特率编码并且针对随后的片段选择更高的比特率编码,直到网络带宽限制该客户端以一定比特率接收该片段的能力。
在框440中继续,该系统从客户端接收片段请求。该客户端可以通过使用特定的URL来标识出该片段。该URL可以标识出片段的时间以及编码。例如,URL可以是“http://server/event.isml/QualityLevels(1500000)/Fragments(video=20000000)”的形式,其中质量等级(QualityLevels)参数是以每秒比特为度量的比特率,视频(video)是所请求的轨道的名称,并且跟随在“video=”之后的值是以100纳秒为单位的时间位置(单元的比例取决于呈现被编码的方式)。在一些实施例中,客户端可以通过参考上一片段来请求片段,例如替代于上一URL中的“片段(Fragments)”使用诸如“NextFragments(video=20000000)”之类的URL。在框450中继续,该系统通过从片段数据存储和描述所请求片段的本地索引表中检索清单信息来构建递增清单。该系统还可以在此处所述的递增清单中包括一个或多个随后片段的清单信息。
在框460中继续,该系统发送对客户端片段请求的响应,该响应包括所请求的媒体片段和所构建的递增清单。基于最初清单和每个递增清单,该客户端可以构建本地清单,所述本地清单涵盖了关于整个媒体事件的信息。该清单允许客户端快速地在媒体事件内四处跳转、以及回放媒体事件的任何位置。在框470中继续,该系统等待下一片段请求。在决策框480中继续,如果接收到新的片段请求,则该系统循环到框440以处理该片段请求,否则该系统循环到框470以继续等待。在框480之后,这些步骤结束。
注意在此处所述的步骤中,平滑的流式传输不知道每个客户端的状态,并且不跟踪客户端的状态。事实上,对于特定客户端而言可能的是,该客户端播放整个媒体事件而不曾与该系统交谈。这之所以可能是因为,该客户端可以从分布在整个网络内的高速缓存服务器接收每个所请求的清单以及媒体片段。客户端基于各因素来请求它们想要的数据:诸如基于客户端观测的网络条件来请求所期望的比特率;或者基于与客户端显示的控件的用户交互来请求所期望的位置(例如快进、查找、倒带等等)。这允许服务器将资源集中于其他任务并且动态地增加缩放能力。对于上座率好的实况事件而言,这意味着多得多的观众可以观看该事件。
图5是示出了一个实施例中的从编码器到原始服务器再到客户端的媒体片段流的数据流图。编码器505要么直接地、要么如在此所述那样通过摄取服务器来将媒体数据520连续地提供给原始服务器510。例如基于实况事件,该媒体数据可以包括MP4流的片段。原始服务器510比如将每个媒体片段归档525到本地数据存储。原始服务器510从客户端515接收清单请求530。原始服务器510基于最近的媒体片段信息来生成535客户端清单。原始服务器510将客户端清单响应540提供给客户端515。然后,客户端515发送一个或多个媒体片段请求545,并且原始服务器510用所请求的媒体片段、以及可能还有关于随后的媒体片段的信息来作出响应550。只要媒体事件在进行并且编码器505提供新的媒体数据,则该图左部的数据流就继续。只要客户端515在请求媒体片段,则该图右部的数据流就继续,其中该请求可能发生在媒体事件期间以及在客户端请求媒体事件的点播观看时发生在该事件以后。
图6是示出一个实施例中低等待时间流式传输系统在客户端上回放媒体的的处理的流程图。始于框610,该系统选择以此从服务器请求经编码的媒体的初始编码。例如,系统可以最初选择最低可用的比特率。该系统可能之前已经向服务器发送了请求以发现可用的比特率以及其他可用编码。在框620继续,系统请求和播放特定的媒体块,这将参考图7予以进一步描述。在框630中继续,该系统基于所请求的块确定服务质量度量。例如,块可能包括针对服务器当前存储的块那样多的附加块的元数据,这些块可以被客户端用于确定客户端相对于服务器多快地产生块而言多快地请求块。该过程在本文中更详细地描述。
在决策框640中继续,如果系统确定:当前QoS度量过低并且到服务器的客户端连接不能处理当前编码,则系统在框650继续,否则系统循环到框620以处理下一块。在框650中继续,系统选择媒体的不同编码,其中系统通过从不同URL请求数据来为来自服务器的随后的块选择不同的编码。例如,系统可以选择消耗当前编码的一半带宽的编码。同样,系统可以确定:QoS度量指示客户端可以处理更高比特率编码,并且客户端可以为随后的块请求更高的比特率。通过这种方式,客户端基于当前条件向上和向下调节比特率。
尽管图6将QoS确定示为发生在每个块之后,但是本领域的普通技术人员将认识到,其他QoS实施方式是普遍的,比如等待固定数目的分组或块(例如每10个分组)以作出QoS确定。在框650之后,系统在有块可用的情况下循环到620以处理下一块,或者在没有另外的媒体可用的情况下结束(未示出)。
图7是示出一个实施例中的低等待时间流式传输系统处理单个媒体块的处理的流程图。在框710中开始,该系统基于所选的初始比特率通过网络将对块的请求从客户端发送给服务器。例如,系统可以基于所选编码来选择请求数据的特定URL(例如http://server/a.isml/quality/bitrate)。在框720中继续,系统在客户端处接收所请求的块。系统可以从服务器或者从网络上的处于服务器与客户端之间的高速缓存接收块。由于每个块都是由其自己的稳定URL来标识的,因此块可以由共同的因特网高速缓存基础结构来高速缓存。在框730中继续,系统将块解析成元数据部分和媒体数据部分。例如,每个块都可以包含描述块的编码的元数据以及适于使用编解码器和合适硬件进行回放的媒体数据。
在框740中继续,系统将块元数据添加到正在进行的媒体清单中,该清单描述关于每个媒体数据块所属的较大的媒体元素的信息。例如,系统可以在存储器中存储包含来自每个媒体文件块的元数据的清单。在框750中继续,系统使用由块元数据和客户端的硬件所标识出的编解码器来播放媒体数据。媒体数据可以包括视频、音频、以及系统在包括显示器、扬声器等等在内的硬件上回放的其他类型的数据。可替代地或附加地,该数据可以包括与回放不同的方式被消费的非视听数据(例如文本),在这种情况下,该系统基于数据的类型作用于数据。在框750之后,这些步骤结束。
在一些实施例中,低等待时间流式传输系统提供具有更多I帧的流以改善启动时间。由于客户端可在实况流事件期间的任何时刻加入并且由于片段可能包括比完整GOP少的内容,因此客户端可以在该片段不包含I帧时的时间请求其第一个片段。这可能从观看用户的角度而言导致察觉到的等待时间,因为客户端在接收到I帧以前一直不能回放视频。为了减小或消除该等待时间,该系统可以提供如下的流:该流是用较高百分比的I帧被编码的或者甚至完全由I帧构成。通过这种方式,客户端可以最初请求来自该流的片段,使得保证该客户端能够快速地启动媒体事件的回放。然后,一旦回放处于进行中,则该客户端就可以平滑地过渡到由于使用P帧而消耗更少带宽的常规流。
在一些实施例中,低等待时间流式传输系统使用高I帧流以用于快速错误恢复。例如,当在客户端上发生解码错误时,该客户端可以快速地切换到高I帧流以获取I帧并使解码器复位。在需要时的特定时刻请求I帧这一能力允许客户端快速地恢复而无需与服务器进行任何握手。另外,由于某个地理区域中的多个客户端可能经历类似的分组丢失或其他网络问题,因此变得更为可能的是,处于这些客户端附近的高速缓存将包含类似的恢复数据,使得对高I帧流的请求与服务器请求的结果相比更可能来自本地高速缓存。
在一些实施例中,低等待时间流式传输系统为实况媒体流提供类似于数字录像机(DVR)的功能。换言之,用户可以暂停实况流,在实况流内查找等等,而不必给服务器增添工作或状态跟踪。在实况流中,存在诸如缺少画面、暂停以中断、在后期加入事件、打算从开始观看等等的若干情景,这些情景由该系统来实现,从而允许用户以各种顺序以及在各个时间播放媒体片段。基于在此所述的经组装的清单,系统向用户提供对他们如何观看实况流的控制。如今,这些控制在电视的情况下通过DVR可用。低等待时间流式传输系统包括客户端控件来在非实况模式下通过尝试清单中的各个位置以及请求适当的媒体片段来响应用户动作以及管理实况流的回放。另外,客户端可以在回放期间在实况与非实况观看之间切换。
在一些实施例中,低等待时间流式传输系统通过向客户端提供web浏览器插件来操作。例如,该系统可以向客户端提供MicrosoftSilverlight应用。MicrosoftSilverlight接收网页中对包含在称为XAP文件的容器中的应用的引用。MicrosoftSilverlight提取XAP文件并且调用该应用。MicrosoftSilverlight给应用提供沙箱中(sandboxed)的安全环境以在其中运行,使得用户的计算机系统被保护免受恶意或错误应用代码损害。MicrosoftSilverlight提供如下的应用编程接口(API):所述API可以由应用以保护用户的计算机和硬件免受可能有害的应用动作损害的方式来调用来回放媒体。因此,MicrosoftSilverlight和其他浏览器插件可以提供低等待时间流式传输系统预期运行在其内的客户端环境的所有功能。
在一些实施例中,低等待时间流式传输系统提供用于试探法的插件模型以确定在特定时间使用媒体的何种编码。例如,系统可以允许管理员在用于基于特定的条件(例如减小的带宽或增加的分组丢失)来确定请求媒体块的速率的若干策略中选择。另外,内容提供商可以包括其自己的试探法以用于确定要使用的编码,并且可以在应用包(例如MicrosoftSilverlightXAP)文件中提供试探法作为应用模块或应用依赖性模块,该应用包由客户端在播放期间从内容提供商下载。
在一些实施例中,低等待时间流式传输系统存储在此所述的经组装的清单以供之后使用,比如在实况事件的次日回放。在实况事件期间,客户端可能已经基于网络条件请求了各种编码的块。客户端浏览器也可以在浏览器的高速缓存中包含这些块。如果用户请求之后回放媒体,则尝试从本地高速缓存回放媒体是最高效的,这通常意味着客户端请求原来播放的恰好相同的块。通过存储具有来自实际上已接收的每个块的元数据的清单,客户端可以使用之前已请求过的相同编码连续地回放媒体。这可以使得用户能够在到原始服务器的连通性不可用的情况下在诸如飞机之类的情景中观看媒体。
在一些实施例中,低等待时间流式传输系统提供用于同步相关媒体流的逻辑。例如,实况视听事件可以包括一个或多个视频流(例如相机角度)以及一个或多个音频流(例如语言)。当客户端单独地下载音频和视频媒体片段时,该客户端通过将与每个媒体片段相关联的时间信息对齐来同步地播放所述音频和视频媒体内容,这将在此参考时钟同步予以进一步描述。该系统还可以同步其他类型的数据,比如幻灯片呈现中的幻灯片、图像、文本等等。
在一些实施例中,低等待时间流式传输系统向客户端提供以不同速率播放的流。例如,该服务器可以包括2x、5x、0.5x或其他回放速度。客户端可以切换到不同速率的流以向用户提供媒体在快进(例如2x)或倒带(例如0.5x)的表现。为了进行切换,客户端简单地请求例如处于不同URL处的不同媒体片段。客户端可以通过继续播放所接收的特定媒体片段来平滑地在以当前速率播放媒体片段与以不同速率播放媒体片段之间切换。这向最终用户提供无缝的体验,其中在用户的请求与媒体回放的改变之间几乎没有等待时间。这也节省了网络带宽,因为客户端没有为了快1倍播放媒体而2次下载数据,而是下载该媒体的大小降低的编码,其中该编码是以加速的速率编码的。
在一些实施例中,低等待时间流式传输系统在元数据中提供精彩场面(Highlight)标记。精彩场面可以包括媒体的任何感兴趣的片段,比如运动事件期间运动员进球得分的时刻。客户端可以在事件已经结束以后通过播放媒体的与精彩场面标记相关联的那些媒体片段来播放精彩场面卷。如果客户端未曾接收实况事件,则客户端可以请求媒体的清单并且然后仅仅请求与精彩场面相对应的那些媒体片段。如果用户想要观看精彩场面之前或之后的更多媒体(例如由用户快进或倒带来指示),则客户端可以请求附加的媒体片段来播放所请求的媒体部分。因此,该系统可以在清单中为客户端提供精彩场面信息。
在一些实施例中,低等待时间流式传输系统支持内联广告。对于实况事件而言,可能在事件开始时不知道何时将出现广告中断。事件协调员可以在制片期间在该播广告的时间按下按钮,从而导致系统在媒体流元数据中插入广告标记。当客户端接收到广告标记时,客户端可以请求和接收与之前标识出的广告相关联的媒体片段。例如,该系统可以在初始清单中提供潜在广告的列表。广告可以配备在与其他媒体类似的媒体片段内,并且可以不存储在提供实况事件的相同服务器处。在遇到广告标记时,客户端暂停主流的回放,检索和显示广告,并且然后恢复主流的回放。
在一些实施例中,低等待时间流式传输系统基于订阅或其他支付模型来确定哪些编码可用。例如,内容提供商可以针对实时事件的高清(HD)版本收取比该事件的标清(SD)版本更多的费用。在这种情况下,该系统可以基于是否已经满足支付模型的条件(例如用户的账户为当前的)来启用或停用到特定比特率的切换。该信息可以包括在提供给该客户端的清单中。内容提供商可以免费提供一些编码,比如低比特率或仅限精彩场面的媒体,而对其他编码收费。
在一些实施例中,低等待时间流式传输系统提供该系统的各个组件的故障转移。例如,该系统可以包括冗余编码器、摄取服务器、原始服务器等等。在编码器故障转移期间,该服务器可以将“StartTime(nnnn)(起始时间(nnnn))”附加到编码器URL,其中“nnnn”是服务器成功接收到的上一片段的绝对时间戳。故障转移URL的示例将是“http://encoder:port/StartTime(12345678)”。当使用MP4盒时,备份编码器不需要在其启动该流时重发“ftyp”、“清单盒”和“moov”盒。如果编码器故障转移导致缺少片段,则该服务器将在这些片段被客户端请求的情况下返回“404-FileNotFound(文件未找到)”。
低等待时间流式传输系统可以请求和接收多种编码的媒体内容。在一些实施例中,低等待时间流式传输系统使用定制MP4盒。运动图像专家组(MPEG)版本4标准提供可以包含定制数据的格式内的盒。MP4扩展是通常与该版本的内容相关联的文件格式。该系统可以充分利用盒来包括定制元数据和媒体内容块。其他媒体格式在容器内提供类似的内容定制,并且可以供该系统使用。
在一些实施例中,低等待时间流式传输系统符合用于分布式超媒体系统的软件架构的代表性状态转移(REST)风格的方针。REST中的一个观点是应用可以通过仅仅知道资源的标识符(例如URI)以及所请求的动作来与资源交互,而不必知道是否存在高速缓存、代理、网关、防火墙、隧道、或者处于应用与服务器之间的实际上保持该信息的任何其他东西。遵循REST方针将允许系统受益于现有因特网基础结构和诸如高速缓存之类的预先存在的资源节省技术。一些由系统在一些实施例中实现的与REST有关的示例性原理包括:每个URI都标识出恰好一个响应,每个URI都指向无状态和可高速缓存的服务器资源,并且每个URI都是直观的并且使用名词(动词是HTTP动词)。具体而言,该系统可以避免作出使用查询串的请求并且可以将基本上唯一的密钥用于通过URL所请求的起始时间。
从前面的描述中可以看出,能够理解,此处描述的低等待时间流式传输系统的特定实施例只是为了说明的目的,但是在不偏离本发明的精神和范围的情况下,可以进行各种修改。例如,尽管已经在示例中使用了视听数据,但是可以将其他类型的数据用于该系统,包括文本(例如流式传输股票报价)、幻灯片(例如呈现)等等。因此,本发明只受所附权利要求限制。
Claims (13)
1.一种计算机实现的用于从一个或多个编码器接收经编码的媒体片段的方法,该方法包括:
将包括参数的编码器配置信息发送给一个或多个编码器以减少等待时间,所述参数包括请求编码器创建少于完整图像组(GOP)的片段的参数;
向每个经注册的编码器请求清单,所述清单描述从该编码器可用的媒体数据;
从每个编码器接收编码器清单;
从编码器接收媒体片段;
将所接收的媒体片段索引化并且将索引信息添加到索引表,所述索引表对可用媒体片段进行归类;
通过将所述片段和索引信息存储在数据存储中来对所接收的媒体片段进行归档,其中在以后能够从所述数据存储中检索所述片段和索引信息以满足客户端请求,其中每个媒体片段在不依赖于随后的媒体片段的情况下被编码以进一步减少等待时间;以及
通过将关于所接收的片段的信息添加到所述清单来构建服务器清单,所述服务器清单包括关于以所述媒体片段为组成部分的媒体事件的信息;
其中,前面的步骤由至少一个处理器来执行。
2.如权利要求1所述的方法,其特征在于,所述编码器配置信息包括如下参数:所述参数请求编码器在没有双向编码帧(B帧)的情况下对视频进行编码。
3.如权利要求1所述的方法,其特征在于,所述编码器配置信息包括如下参数:所述参数请求编码器创建具有预定数目的帧的片段。
4.如权利要求1所述的方法,其特征在于,所述编码器配置信息包括如下参数:所述参数请求编码器创建快速起始流,所述快速起始流比至少一个其他的流包括更多的内帧(I帧)。
5.如权利要求1所述的方法,其特征在于,将所接收的媒体片段索引化包括:标识出在先片段的时间,使得能够响应于来自客户端的参考所述在先片段的下一片段请求来提供所接收的媒体片段。
6.如权利要求1所述的方法,其特征在于,所接收的媒体片段包括时间戳,所述时间戳把由不同编码器并行产生的媒体片段和对所述媒体片段进行编码的编码器的标识符相关。
7.如权利要求1所述的方法,其特征在于,还包括:针对每个所接收的编码器清单,将所述编码器的清单合并到一起,并且存储经合并的清单以供客户端在以后进行检索以标识出系统能够提供的媒体编码。
8.一种用于递送低等待时间可高速缓存流媒体呈现的计算机系统,该系统包括:
处理器和存储器,该处理器和存储器被配置为执行软件指令;
注册事件组件,所述注册事件组件被配置为接收关于实况媒体事件的信息,其中针对所述实况媒体事件,所述系统将接收经编码的媒体数据;
编码器接口组件,所述编码器接口组件被配置为提供所述系统与作为媒体片段来提供经编码的媒体数据的一个或多个编码器之间的接口,并且向编码器发送指定如下编码的配置信息:所述编码在由所述编码器创建的每个片段中具有比完整图像组(GOP)更少的内容;
索引片段组件,所述索引片段组件被配置为创建和维护从编码器接收的媒体片段的索引表;
片段数据存储,所述片段数据存储被配置为存储所接收的媒体片段和片段的所创建的索引表,以基于所接收的客户端请求提供给客户端;
客户端接口组件,所述客户端接口组件被配置为接收针对媒体片段的客户端请求、以及向客户端提供清单数据和媒体片段,其中每个媒体片段在不依赖于随后的媒体片段的情况下被编码以进一步减少等待时间;
构建客户端清单组件,所述构建客户端清单组件被配置为构建清单以满足客户端请求,所述清单包括关于从所述系统可用的编码中的每个、以及直到该请求的时间为止由所述系统存储的片段的信息;
时钟同步组件,所述时钟同步组件被配置为同步所述系统、客户端和编码器的时钟。
9.如权利要求8所述的系统,其特征在于,所述编码器接口组件还被配置为向编码器发送指定参数的编码器配置信息以用于减少等待时间。
10.如权利要求8所述的系统,其特征在于,所述编码器接口组件还被配置为向编码器发送指定不具有双向编码帧(B帧)的编码的配置信息。
11.如权利要求8所述的系统,其特征在于,所述编码器接口组件还被配置为向编码器发送指定在由所述编码器创建的每个片段中要包括的帧数的配置信息。
12.如权利要求8所述的系统,其特征在于,所述客户端接口组件还被配置为接收针对媒体片段的客户端请求,其中所述请求通过参考在先片段来标识出片段。
13.如权利要求8所述的系统,其特征在于,所述客户端接口组件还被配置为接收针对媒体片段的客户端请求,其中所述请求通过指定与以前的片段相关联的时间来标识出片段。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24925709P | 2009-10-06 | 2009-10-06 | |
US61/249,257 | 2009-10-06 | ||
US12/611,133 US9237387B2 (en) | 2009-10-06 | 2009-11-03 | Low latency cacheable media streaming |
US12/611,133 | 2009-11-03 | ||
PCT/US2010/051695 WO2011044285A2 (en) | 2009-10-06 | 2010-10-06 | Low latency cacheable media streaming |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102577272A CN102577272A (zh) | 2012-07-11 |
CN102577272B true CN102577272B (zh) | 2016-03-16 |
Family
ID=43823144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080045546.9A Active CN102577272B (zh) | 2009-10-06 | 2010-10-06 | 低等待时间的可高速缓存的媒体流式传输 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9237387B2 (zh) |
EP (1) | EP2486705A4 (zh) |
CN (1) | CN102577272B (zh) |
WO (1) | WO2011044285A2 (zh) |
Families Citing this family (171)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
US8472792B2 (en) | 2003-12-08 | 2013-06-25 | Divx, Llc | Multimedia distribution system |
US7515710B2 (en) | 2006-03-14 | 2009-04-07 | Divx, Inc. | Federated digital rights management scheme including trusted systems |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US8233768B2 (en) | 2007-11-16 | 2012-07-31 | Divx, Llc | Hierarchical and reduced index structures for multimedia files |
US8997161B2 (en) * | 2008-01-02 | 2015-03-31 | Sonic Ip, Inc. | Application enhancement tracks |
US8260877B2 (en) * | 2008-12-31 | 2012-09-04 | Apple Inc. | Variant streams for real-time or near real-time streaming to provide failover protection |
US8156089B2 (en) | 2008-12-31 | 2012-04-10 | Apple, Inc. | Real-time or near real-time streaming with compressed playlists |
US20100169303A1 (en) * | 2008-12-31 | 2010-07-01 | David Biderman | Playlists for real-time or near real-time streaming |
US8578272B2 (en) | 2008-12-31 | 2013-11-05 | Apple Inc. | Real-time or near real-time streaming |
KR101635876B1 (ko) | 2009-01-07 | 2016-07-04 | 쏘닉 아이피, 아이엔씨. | 온라인 콘텐츠를 위한 미디어 가이드의 단일, 공동 및 자동 생성 |
US8909806B2 (en) * | 2009-03-16 | 2014-12-09 | Microsoft Corporation | Delivering cacheable streaming media presentations |
EP2467786B1 (en) | 2009-08-17 | 2019-07-31 | Akamai Technologies, Inc. | Method and system for http-based stream delivery |
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 |
KR101361021B1 (ko) * | 2009-11-09 | 2014-02-10 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Http 기반의 스트리밍 미디어 서비스를 구현하는 방법, 시스템 및 네트워크장비 |
CN102055717B (zh) * | 2009-11-09 | 2014-08-13 | 华为技术有限公司 | 快速播放的方法、终端及服务器 |
KR101750048B1 (ko) * | 2009-11-13 | 2017-07-03 | 삼성전자주식회사 | 변속 재생 서비스 제공 방법 및 장치 |
KR101777347B1 (ko) * | 2009-11-13 | 2017-09-11 | 삼성전자주식회사 | 부분화에 기초한 적응적인 스트리밍 방법 및 장치 |
CA2782825C (en) | 2009-12-04 | 2016-04-26 | Divx, Llc | Elementary bitstream cryptographic material transport systems and methods |
US9038116B1 (en) * | 2009-12-28 | 2015-05-19 | Akamai Technologies, Inc. | Method and system for recording streams |
US9532092B1 (en) * | 2009-12-30 | 2016-12-27 | Akamai Technologies, Inc. | Multiple bitrate format-agnostic streaming architecture |
US20110162016A1 (en) * | 2009-12-31 | 2011-06-30 | Petrisor Gregory C | Inflight entertainment system video display synchronization |
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 |
US8560642B2 (en) | 2010-04-01 | 2013-10-15 | Apple Inc. | Real-time or near real-time streaming |
GB2479455B (en) | 2010-04-07 | 2014-03-05 | Apple Inc | Real-time or near real-time streaming |
US8543724B2 (en) | 2010-04-30 | 2013-09-24 | Digital Keystone, Inc. | Methods and apparatuses for a projected PVR experience |
US8260913B2 (en) * | 2010-05-06 | 2012-09-04 | Go Daddy Operating Company, LLC | Reading a file from a cloud storage solution |
US8719223B2 (en) | 2010-05-06 | 2014-05-06 | Go Daddy Operating Company, LLC | Cloud storage solution for reading and writing files |
US9253548B2 (en) * | 2010-05-27 | 2016-02-02 | Adobe Systems Incorporated | Optimizing caches for media streaming |
KR101702562B1 (ko) * | 2010-06-18 | 2017-02-03 | 삼성전자 주식회사 | 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치 |
US8904027B2 (en) * | 2010-06-30 | 2014-12-02 | Cable Television Laboratories, Inc. | Adaptive bit rate for data transmission |
KR20120034550A (ko) | 2010-07-20 | 2012-04-12 | 한국전자통신연구원 | 스트리밍 컨텐츠 제공 장치 및 방법 |
CA2810239C (en) * | 2010-09-03 | 2018-11-27 | Level 3 Communications, Llc | Extending caching network functionality to an existing streaming media server |
US9467493B2 (en) | 2010-09-06 | 2016-10-11 | Electronics And Telecommunication Research Institute | Apparatus and method for providing streaming content |
US10091535B2 (en) * | 2010-11-16 | 2018-10-02 | The Directv Group, Inc. | System and method for sharing television programming information using universal identifier |
US9510061B2 (en) * | 2010-12-03 | 2016-11-29 | Arris Enterprises, Inc. | Method and apparatus for distributing video |
US8885729B2 (en) | 2010-12-13 | 2014-11-11 | Microsoft Corporation | Low-latency video decoding |
US8880633B2 (en) | 2010-12-17 | 2014-11-04 | Akamai Technologies, Inc. | Proxy server with byte-based include interpreter |
US20120265853A1 (en) * | 2010-12-17 | 2012-10-18 | Akamai Technologies, Inc. | Format-agnostic streaming architecture using an http network for streaming |
US9247312B2 (en) | 2011-01-05 | 2016-01-26 | Sonic Ip, Inc. | Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol |
US8775664B2 (en) * | 2011-02-16 | 2014-07-08 | Sony Corporation | Method and apparatus for use in tracking playback of media streams while in stand-by mode |
US11025962B2 (en) * | 2011-02-28 | 2021-06-01 | Adobe Inc. | System and method for low-latency content streaming |
CN103493499B (zh) * | 2011-03-16 | 2018-04-06 | 韩国电子通信研究院 | 提供使用表示的流媒体内容的装置及方法 |
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 |
US9646141B2 (en) * | 2011-06-22 | 2017-05-09 | Netflix, Inc. | Fast start of streaming digital media playback with deferred license retrieval |
RS64742B1 (sr) | 2011-06-30 | 2023-11-30 | Microsoft Technology Licensing Llc | Smanjenje kašnjenja kod video kodiranja i dekodiranja |
US9369723B2 (en) * | 2011-07-14 | 2016-06-14 | Comcast Cable Communications, Llc | Preserving image quality in temporally compressed video streams |
CN108989847B (zh) | 2011-08-30 | 2021-03-09 | 帝威视有限公司 | 用于编码和流处理视频的系统和方法 |
US9467708B2 (en) | 2011-08-30 | 2016-10-11 | Sonic Ip, Inc. | Selection of resolutions for seamless resolution switching of multimedia content |
US8818171B2 (en) | 2011-08-30 | 2014-08-26 | Kourosh Soroushian | Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates |
US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
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 |
US9357275B2 (en) * | 2011-09-06 | 2016-05-31 | Qualcomm Incorporated | Network streaming of coded video data |
US20150304249A1 (en) * | 2011-09-06 | 2015-10-22 | Andras Valkó | Device and Method for Progressive Media Download with Multiple Layers or Streams |
US8719440B2 (en) * | 2011-09-14 | 2014-05-06 | Mobitv, Inc. | Intelligent device media stream caching |
US9197900B2 (en) * | 2011-09-14 | 2015-11-24 | Mobitv, Inc. | Localized redundancy for fragment processing |
US20130064287A1 (en) * | 2011-09-14 | 2013-03-14 | Mobitv, Inc. | Management of resources for live stream variant processing |
US20130064286A1 (en) * | 2011-09-14 | 2013-03-14 | Mobitv, Inc. | Weighted encoder fragment scheduling |
US8560719B2 (en) * | 2011-09-14 | 2013-10-15 | Mobitv, Inc. | Fragment server directed device fragment caching |
US8234350B1 (en) | 2011-12-19 | 2012-07-31 | Seachange International, Inc. | Systems and methods for generating targeted manifest files |
US8762452B2 (en) * | 2011-12-19 | 2014-06-24 | Ericsson Television Inc. | Virtualization in adaptive stream creation and delivery |
US8918908B2 (en) | 2012-01-06 | 2014-12-23 | Sonic Ip, Inc. | Systems and methods for accessing digital content using electronic tickets and ticket tokens |
US9648072B2 (en) | 2012-01-31 | 2017-05-09 | Comcast Cable Communications, Llc | System and method for data stream fragmentation with scalability |
US9930379B2 (en) | 2012-01-31 | 2018-03-27 | Comcast Cable Communications, Llc | System and method for data stream fragmentation |
US9330429B2 (en) * | 2012-02-17 | 2016-05-03 | Mobitv, Inc. | Scalable watermark insertion for fragmented media stream delivery |
US9438883B2 (en) * | 2012-04-09 | 2016-09-06 | Intel Corporation | Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content |
US20130291035A1 (en) * | 2012-04-27 | 2013-10-31 | George Allen Jarvis | Methods and apparatus for streaming audio content |
US9571827B2 (en) * | 2012-06-08 | 2017-02-14 | Apple Inc. | Techniques for adaptive video streaming |
CN104756505B (zh) * | 2012-06-28 | 2020-04-07 | 爱立信股份有限公司 | 用于过顶实况媒体递送中的广告插入的方法和系统 |
US9197685B2 (en) | 2012-06-28 | 2015-11-24 | Sonic Ip, Inc. | Systems and methods for fast video startup using trick play streams |
US9143812B2 (en) | 2012-06-29 | 2015-09-22 | Sonic Ip, Inc. | Adaptive streaming of multimedia |
US10452715B2 (en) | 2012-06-30 | 2019-10-22 | Divx, Llc | Systems and methods for compressing geotagged video |
EP2875417B1 (en) | 2012-07-18 | 2020-01-01 | Verimatrix, Inc. | Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution |
US20140078911A1 (en) * | 2012-09-17 | 2014-03-20 | Fluke Corporation | Method and apparatus to determine the amount of delay in round trip latency for a connection where the tcp traffic does not contain multi-packet responses or may not be transaction oriented traffic. |
US8997254B2 (en) | 2012-09-28 | 2015-03-31 | Sonic Ip, Inc. | Systems and methods for fast startup streaming of encrypted multimedia content |
US8914836B2 (en) | 2012-09-28 | 2014-12-16 | Sonic Ip, Inc. | Systems, methods, and computer program products for load adaptive streaming |
US9544344B2 (en) * | 2012-11-20 | 2017-01-10 | Google Technology Holdings LLC | Method and apparatus for streaming media content to client devices |
US9578133B2 (en) | 2012-12-03 | 2017-02-21 | Apkudo, Llc | System and method for analyzing user experience of a software application across disparate devices |
US10261611B2 (en) | 2012-12-03 | 2019-04-16 | Apkudo, Llc | System and method for objectively measuring user experience of touch screen based devices |
US9344472B2 (en) | 2012-12-28 | 2016-05-17 | Microsoft Technology Licensing, Llc | Seamlessly playing a composite media presentation |
US8904457B2 (en) * | 2012-12-28 | 2014-12-02 | Microsoft Corporation | Archiving a live media presentation |
US9264475B2 (en) | 2012-12-31 | 2016-02-16 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
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 |
US9106934B2 (en) | 2013-01-29 | 2015-08-11 | Espial Group Inc. | Distribution of adaptive bit rate live streaming video via hyper-text transfer protocol |
US9832492B2 (en) | 2013-01-29 | 2017-11-28 | Espial Group Inc. | Distribution of adaptive bit rate video streaming via hyper-text transfer protocol |
CN105075273B (zh) | 2013-02-27 | 2019-03-26 | 苹果公司 | 自适应流式传输技术 |
EP2624523B1 (en) * | 2013-03-04 | 2019-08-28 | Comcast Cable Communications, LLC | System and method for data stream fragmentation with scalability |
US10397292B2 (en) | 2013-03-15 | 2019-08-27 | Divx, Llc | Systems, methods, and media for delivery of content |
US9075781B2 (en) | 2013-03-15 | 2015-07-07 | Apkudo, Llc | System and method for coordinating field user testing results for a mobile application across various mobile devices |
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 |
US9344517B2 (en) | 2013-03-28 | 2016-05-17 | Sonic Ip, Inc. | Downloading and adaptive streaming of multimedia content to a device with cache assist |
US9973559B2 (en) * | 2013-05-29 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for presenting content streams to a client device |
US9247317B2 (en) | 2013-05-30 | 2016-01-26 | Sonic Ip, Inc. | Content streaming with client device trick play index |
US9094737B2 (en) | 2013-05-30 | 2015-07-28 | Sonic Ip, Inc. | Network video streaming with trick play based on separate trick play files |
EP2819367A1 (en) * | 2013-06-28 | 2014-12-31 | Thomson Licensing | Method for retrieving, by a client terminal, a content part of a multimedia content |
US9967305B2 (en) | 2013-06-28 | 2018-05-08 | Divx, Llc | Systems, methods, and media for streaming media content |
US9141789B1 (en) | 2013-07-16 | 2015-09-22 | Go Daddy Operating Company, LLC | Mitigating denial of service attacks |
MX358670B (es) | 2013-07-17 | 2018-08-31 | Sony Corp | Dispositivo de provisión de contenido, método de provisión de contenido, programa, dispositivo de terminal, y sistema de provisión de contenido. |
JP6059820B2 (ja) * | 2013-07-18 | 2017-01-11 | コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ | 低レイテンシ・ストリーミング |
EP2833640A1 (en) * | 2013-08-02 | 2015-02-04 | British Telecommunications public limited company | Video caching |
CN103618911B (zh) * | 2013-10-12 | 2017-02-01 | 北京视博云科技有限公司 | 一种基于视频属性信息的视频流提供方法及装置 |
EP2863386A1 (en) | 2013-10-18 | 2015-04-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio decoder, apparatus for generating encoded audio output data and methods permitting initializing a decoder |
US9343112B2 (en) | 2013-10-31 | 2016-05-17 | Sonic Ip, Inc. | Systems and methods for supplementing content from a server |
US9552611B2 (en) * | 2013-12-02 | 2017-01-24 | State Farm Mutual Automobile Insurance Company | Systems and methods for modifying resources to manage loss events |
CN104702579B (zh) * | 2013-12-09 | 2018-10-12 | 华为技术有限公司 | 用于确定用户设备的缓存状态的方法及装置 |
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 |
US9635077B2 (en) * | 2014-03-14 | 2017-04-25 | Adobe Systems Incorporated | Low latency live video streaming |
US20150271541A1 (en) | 2014-03-19 | 2015-09-24 | Time Warner Cable Enterprises Llc | Apparatus and methods for recording a media stream |
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 |
CN104021155A (zh) * | 2014-05-21 | 2014-09-03 | 小米科技有限责任公司 | 页面显示方法和装置 |
US20150350289A1 (en) * | 2014-05-30 | 2015-12-03 | Paladin Innovators | Methods & Systems for Transmission of High Resolution & Low Latency Data |
AU2015202846B2 (en) * | 2014-06-27 | 2016-07-21 | Foxtel Management Pty Ltd | A method and system for streaming one or more broadcast events |
US11495102B2 (en) | 2014-08-04 | 2022-11-08 | LiveView Technologies, LLC | Devices, systems, and methods for remote video retrieval |
US10645459B2 (en) * | 2014-08-04 | 2020-05-05 | Live View Technologies | Devices, systems, and methods for remote video retrieval |
US12014612B2 (en) | 2014-08-04 | 2024-06-18 | LiveView Technologies, Inc. | Event detection, event notification, data retrieval, and associated devices, systems, and methods |
US20160043982A1 (en) * | 2014-08-11 | 2016-02-11 | Facebook, Inc. | Techniques for a sequential message reader for message syncing |
KR102270034B1 (ko) * | 2014-09-30 | 2021-06-28 | 삼성전자주식회사 | 다수 개의 무선 억세스 인터페이스들을 지원하는 이동 통신 시스템에서 스트리밍 서비스 데이터 수신 장치 및 방법 |
US9283672B1 (en) | 2014-12-11 | 2016-03-15 | Apkudo, Llc | Robotic testing device and method for more closely emulating human movements during robotic testing of mobile devices |
US10375452B2 (en) | 2015-04-14 | 2019-08-06 | Time Warner Cable Enterprises Llc | Apparatus and methods for thumbnail generation |
US9769233B2 (en) * | 2015-05-29 | 2017-09-19 | Aruba Networks, Inc. | Distributed media classification algorithm in a service controller platform for enhanced scalability |
CN106658045A (zh) * | 2015-10-29 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种多媒体数据的云存储、云下载方法及相关装置 |
US9426543B1 (en) * | 2015-12-18 | 2016-08-23 | Vuclip (Singapore) Pte. Ltd. | Server-based video stitching |
US9930427B2 (en) | 2015-12-21 | 2018-03-27 | Comcast Cable Communications Management, Llc | Providing advanced playback and control functionality to video client |
US20170193028A1 (en) * | 2015-12-31 | 2017-07-06 | International Business Machines Corporation | Delta encoding in storage clients |
US10075292B2 (en) | 2016-03-30 | 2018-09-11 | Divx, Llc | Systems and methods for quick start-up of playback |
CN105635188B (zh) * | 2016-03-31 | 2019-07-09 | 深圳市矽伟智科技有限公司 | 一种可视化内容分发方法及系统 |
US10530825B2 (en) | 2016-06-01 | 2020-01-07 | Amazon Technologies, Inc. | Catching up to the live playhead in live streaming |
US10091265B2 (en) * | 2016-06-01 | 2018-10-02 | Amazon Technologies, Inc. | Catching up to the live playhead in live streaming |
EP3466081A1 (en) * | 2016-06-01 | 2019-04-10 | Amazon Technologies, Inc. | Catching up to the live playhead in live streaming |
WO2017218522A1 (en) * | 2016-06-13 | 2017-12-21 | Arris Enterprises Llc | Reduction of startup time in remote hls clients |
US10148989B2 (en) | 2016-06-15 | 2018-12-04 | Divx, Llc | Systems and methods for encoding video content |
US10652594B2 (en) | 2016-07-07 | 2020-05-12 | Time Warner Cable Enterprises Llc | Apparatus and methods for presentation of key frames in encrypted content |
US10389785B2 (en) * | 2016-07-17 | 2019-08-20 | Wei-Chung Chang | Method for adaptively streaming an audio/visual material |
US10367865B2 (en) * | 2016-07-28 | 2019-07-30 | Verizon Digital Media Services Inc. | Encodingless transmuxing |
US10123040B2 (en) | 2016-08-30 | 2018-11-06 | Qualcomm Incorporated | Intra-coded video frame caching for video telephony sessions |
DE102016116555A1 (de) * | 2016-09-05 | 2018-03-08 | Nanocosmos Informationstechnologien Gmbh | Verfahren zur Übertragung von echtzeitbasierten digitalen Videosignalen in Netzwerken |
US11316568B2 (en) | 2017-01-09 | 2022-04-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Controllable beam management accuracy |
US10484446B1 (en) * | 2017-01-31 | 2019-11-19 | Amazon Technologies, Inc. | VBR encoding of live content |
US10313419B1 (en) * | 2017-01-31 | 2019-06-04 | Amazon Technologies, Inc. | VBR encoding of live content |
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 |
US11457251B2 (en) * | 2017-03-16 | 2022-09-27 | Comcast Cable Communications, Llc | Methods and systems for fault tolerant video packaging |
EP3393129A1 (en) * | 2017-04-21 | 2018-10-24 | Alcatel-Lucent España, S.A. | Multimedia content delivery with reduced delay |
US11889138B2 (en) * | 2017-05-02 | 2024-01-30 | Hanwha Techwin Co., Ltd. | Systems, servers and methods of remotely providing media to a user terminal and managing information associated with the media |
US10284888B2 (en) * | 2017-06-03 | 2019-05-07 | Apple Inc. | Multiple live HLS streams |
CN109151494B (zh) * | 2017-06-19 | 2021-07-09 | 杭州萤石网络有限公司 | 多媒体数据传输方法、多媒体采集设备及服务器 |
EP3652951A1 (en) | 2017-07-12 | 2020-05-20 | Telefonaktiebolaget LM Ericsson (Publ) | Fast tune-in for low latency streaming |
US10785092B2 (en) * | 2017-07-28 | 2020-09-22 | Skitter, Inc. | System and method for providing fault tolerant streaming of segmented content and cache coherency on multi-hosted origin systems |
CN107465962B (zh) * | 2017-09-05 | 2020-06-16 | 成都索贝数码科技股份有限公司 | 一种非实时视音频文件传输的方法 |
US10742699B1 (en) * | 2017-09-29 | 2020-08-11 | Twitch Interactive, Inc. | Requesting transmission of future encoded segments |
US10764347B1 (en) | 2017-11-22 | 2020-09-01 | Amazon Technologies, Inc. | Framework for time-associated data stream storage, processing, and replication |
US10944804B1 (en) | 2017-11-22 | 2021-03-09 | Amazon Technologies, Inc. | Fragmentation of time-associated data streams |
US10878028B1 (en) | 2017-11-22 | 2020-12-29 | Amazon Technologies, Inc. | Replicating and indexing fragments of time-associated data streams |
US11025691B1 (en) * | 2017-11-22 | 2021-06-01 | Amazon Technologies, Inc. | Consuming fragments of time-associated data streams |
US11653040B2 (en) * | 2018-07-05 | 2023-05-16 | Mux, Inc. | Method for audio and video just-in-time transcoding |
CN110138716B (zh) | 2018-02-09 | 2020-11-27 | 网宿科技股份有限公司 | 一种密钥的提供、视频播放方法、服务器及客户端 |
US11695978B2 (en) | 2018-07-05 | 2023-07-04 | Mux, Inc. | Methods for generating video-and audience-specific encoding ladders with audio and video just-in-time transcoding |
CN111193686B (zh) * | 2018-11-14 | 2021-12-21 | 北京开广信息技术有限公司 | 媒体流的递送方法及服务器 |
CN111510789B (zh) | 2019-01-30 | 2021-09-21 | 上海哔哩哔哩科技有限公司 | 视频播放方法、系统、计算机设备及计算机可读存储介质 |
US11751090B2 (en) * | 2019-09-06 | 2023-09-05 | Qualcomm Incorporated | Reporting mechanisms for wireless communications |
DE102019214281A1 (de) * | 2019-09-19 | 2021-03-25 | Audi Ag | Verfahren und Videosystem zum Übertragen eines Videosignals in einem Kraftfahrzeug sowie Kraftfahrzeug |
US11895350B2 (en) * | 2019-12-30 | 2024-02-06 | Nagravision Sarl | Techniques for providing a content stream based on a delivered stream of content |
US11172238B1 (en) * | 2020-02-05 | 2021-11-09 | Visualon, Inc. | Multiple view streaming |
CN116437399A (zh) * | 2020-04-22 | 2023-07-14 | 华为技术有限公司 | 媒体报文的传输方法、装置及系统 |
US11206295B1 (en) | 2020-07-16 | 2021-12-21 | CodeShop, B.V. | System and method for streaming content selection |
US11546670B1 (en) | 2021-07-15 | 2023-01-03 | Rovi Guides, Inc. | Rewind and fast forward of content |
US11457288B1 (en) | 2021-07-15 | 2022-09-27 | Rovi Guides, Inc. | Rewind and fast forward of content |
CN116405733B (zh) * | 2023-06-08 | 2023-09-19 | 新华三技术有限公司 | 一种数据传输方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1478355A (zh) * | 2000-08-21 | 2004-02-25 | ��˹��ŵ�� | 视频编码 |
CN1625880A (zh) * | 2002-01-30 | 2005-06-08 | 皇家飞利浦电子股份有限公司 | 在具有可变带宽的网络上流式传输多媒体数据 |
WO2008086313A1 (en) * | 2007-01-05 | 2008-07-17 | Divx, Inc. | Video distribution system including progressive playback |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6252873B1 (en) * | 1998-06-17 | 2001-06-26 | Gregory O. Vines | Method of ensuring a smooth transition between MPEG-2 transport streams |
SE513353C2 (sv) | 1998-10-21 | 2000-08-28 | Ericsson Telefon Ab L M | Partiell hämtning av bilder i den komprimerade domänen |
US7159233B2 (en) | 2000-01-28 | 2007-01-02 | Sedna Patent Services, Llc | Method and apparatus for preprocessing and postprocessing content in an interactive information distribution system |
US6728763B1 (en) | 2000-03-09 | 2004-04-27 | Ben W. Chen | Adaptive media streaming server for playing live and streaming media content on demand through web client's browser with no additional software or plug-ins |
US7689510B2 (en) | 2000-09-07 | 2010-03-30 | Sonic Solutions | Methods and system for use in network management of content |
US7213075B2 (en) | 2000-12-15 | 2007-05-01 | International Business Machines Corporation | Application server and streaming server streaming multimedia file in a client specific format |
US20040117427A1 (en) | 2001-03-16 | 2004-06-17 | Anystream, Inc. | System and method for distributing streaming media |
KR100410973B1 (ko) | 2001-04-18 | 2003-12-18 | 엘지전자 주식회사 | 주문형 비디오 시스템에서 동영상의 스트리밍 방법 |
US20020154691A1 (en) | 2001-04-19 | 2002-10-24 | Kost James F. | System and process for compression, multiplexing, and real-time low-latency playback of networked audio/video bit streams |
US7054911B1 (en) | 2001-06-12 | 2006-05-30 | Network Appliance, Inc. | Streaming media bitrate switching methods and apparatus |
US7412531B1 (en) | 2002-01-29 | 2008-08-12 | Blue Coat Systems, Inc. | Live stream archiving method and apparatus |
US20040199565A1 (en) | 2003-02-21 | 2004-10-07 | Visharam Mohammed Zubair | Method and apparatus for supporting advanced coding formats in media files |
GB0319251D0 (en) | 2003-08-15 | 2003-09-17 | British Telecomm | System and method for selecting data providers |
US20050102371A1 (en) | 2003-11-07 | 2005-05-12 | Emre Aksu | Streaming from a server to a client |
JP2005303927A (ja) | 2004-04-15 | 2005-10-27 | Sony Corp | 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム |
US7818444B2 (en) | 2004-04-30 | 2010-10-19 | Move Networks, Inc. | Apparatus, system, and method for multi-bitrate content streaming |
US20050283535A1 (en) * | 2004-06-17 | 2005-12-22 | Michele Covell | Method and system for interactive control of media over a network |
US20060224760A1 (en) | 2005-03-15 | 2006-10-05 | 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. | Method and system for providing streaming content in a peer-to-peer network with network coding |
US7644108B1 (en) | 2005-09-15 | 2010-01-05 | Juniper Networks, Inc. | Network acceleration device cache supporting multiple historical versions of content |
US7844820B2 (en) | 2005-10-10 | 2010-11-30 | Yahoo! Inc. | Set of metadata for association with a composite media item and tool for creating such set of metadata |
JP2007173987A (ja) | 2005-12-19 | 2007-07-05 | Canon Inc | マルチメディアデータ送受信システム、及び装置、又はプログラム |
US7624417B2 (en) * | 2006-01-27 | 2009-11-24 | Robin Dua | Method and system for accessing media content via the internet |
US7743161B2 (en) | 2006-10-10 | 2010-06-22 | Ortiva Wireless, Inc. | Digital content buffer for adaptive streaming |
WO2008064356A1 (en) | 2006-11-22 | 2008-05-29 | Metis Enterprise Technologies Llc | Real-time multicast peer-to-peer video streaming platform |
US7617178B2 (en) * | 2006-12-05 | 2009-11-10 | International Business Machines Corporation | Moving file fragments from background file sharing to foreground file sharing and preventing duplicate downloads |
US8881011B2 (en) * | 2006-12-05 | 2014-11-04 | Crackle, Inc. | Tool for creating content for video sharing platform |
US20080168516A1 (en) * | 2007-01-08 | 2008-07-10 | Christopher Lance Flick | Facilitating Random Access In Streaming Content |
US20080235331A1 (en) * | 2007-01-26 | 2008-09-25 | Sharon Melamed | Scheduling synchronized demand for p2p networks |
US8051145B2 (en) | 2007-03-30 | 2011-11-01 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method of simultaneously providing data to two or more devices on the same network |
US20080307105A1 (en) | 2007-06-11 | 2008-12-11 | Microsoft Corporation | Streaming media archiver for live events |
US20090019176A1 (en) | 2007-07-13 | 2009-01-15 | Jeff Debrosse | Live Video Collection And Distribution System and Method |
US8149330B2 (en) | 2008-01-19 | 2012-04-03 | At&T Intellectual Property I, L. P. | Methods, systems, and products for automated correction of closed captioning data |
KR100859705B1 (ko) | 2008-02-05 | 2008-09-23 | 주식회사 셀런 | 임시i프레임을 생성하여 라이브 멀티미디어 스트림을전송하는 방법 및 시스템 |
US9141859B2 (en) * | 2008-11-17 | 2015-09-22 | Liveclips Llc | Method and system for segmenting and transmitting on-demand live-action video in real-time |
US8909806B2 (en) * | 2009-03-16 | 2014-12-09 | Microsoft Corporation | Delivering cacheable streaming media presentations |
-
2009
- 2009-11-03 US US12/611,133 patent/US9237387B2/en active Active
-
2010
- 2010-10-06 WO PCT/US2010/051695 patent/WO2011044285A2/en active Application Filing
- 2010-10-06 EP EP10822639A patent/EP2486705A4/en not_active Ceased
- 2010-10-06 CN CN201080045546.9A patent/CN102577272B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1478355A (zh) * | 2000-08-21 | 2004-02-25 | ��˹��ŵ�� | 视频编码 |
CN1625880A (zh) * | 2002-01-30 | 2005-06-08 | 皇家飞利浦电子股份有限公司 | 在具有可变带宽的网络上流式传输多媒体数据 |
WO2008086313A1 (en) * | 2007-01-05 | 2008-07-17 | Divx, Inc. | Video distribution system including progressive playback |
Also Published As
Publication number | Publication date |
---|---|
CN102577272A (zh) | 2012-07-11 |
US20110080940A1 (en) | 2011-04-07 |
US9237387B2 (en) | 2016-01-12 |
EP2486705A2 (en) | 2012-08-15 |
WO2011044285A3 (en) | 2011-09-09 |
WO2011044285A2 (en) | 2011-04-14 |
EP2486705A4 (en) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102577272B (zh) | 低等待时间的可高速缓存的媒体流式传输 | |
CN102356605B (zh) | 平滑、无状态的客户端媒体流式传输 | |
US10257587B2 (en) | Integrating continuous and sparse streaming data | |
US9749676B2 (en) | Virtual playback speed modification | |
KR101616152B1 (ko) | 컴퓨터 구현 방법 및 컴퓨터 시스템 | |
CN112106375B (zh) | 用于视频流式传输的差异媒体呈现描述 | |
JP5911926B2 (ja) | シグナリング又はブロック生成を用いた拡張ブロック−要求ストリーミングシステム | |
US8392748B2 (en) | Reliable media streaming | |
CN111837403B (zh) | 处理用于以流传送媒体数据的交互性事件 | |
US9369508B2 (en) | Method for transmitting a scalable HTTP stream for natural reproduction upon the occurrence of expression-switching during HTTP streaming | |
CN113141522B (zh) | 资源传输方法、装置、计算机设备及存储介质 | |
US20090319557A1 (en) | Method, system and software product for streaming content | |
US20180146230A1 (en) | Content item aggregation method, related apparatus, and communications system | |
CN117749856A (zh) | 多媒体信息播放方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150729 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150729 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |