CN102439579A - 可变速率媒体传送系统 - Google Patents
可变速率媒体传送系统 Download PDFInfo
- Publication number
- CN102439579A CN102439579A CN2010800208372A CN201080020837A CN102439579A CN 102439579 A CN102439579 A CN 102439579A CN 2010800208372 A CN2010800208372 A CN 2010800208372A CN 201080020837 A CN201080020837 A CN 201080020837A CN 102439579 A CN102439579 A CN 102439579A
- Authority
- CN
- China
- Prior art keywords
- bit rate
- media content
- asked
- encoded
- content
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 62
- 230000005540 biological transmission Effects 0.000 claims description 38
- 230000006854 communication Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 25
- 230000005055 memory storage Effects 0.000 claims description 22
- 238000012546 transfer Methods 0.000 claims description 18
- 230000007704 transition Effects 0.000 claims description 11
- 238000002377 Fourier profilometry Methods 0.000 claims 2
- 239000000872 buffer Substances 0.000 description 52
- 230000015654 memory Effects 0.000 description 31
- 238000003860 storage Methods 0.000 description 28
- 238000007726 management method Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 20
- 230000008859 change Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000000875 corresponding effect Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 230000000750 progressive effect Effects 0.000 description 10
- 238000007689 inspection Methods 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000005755 formation reaction Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 6
- 238000006731 degradation reaction Methods 0.000 description 6
- 239000012634 fragment Substances 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000007799 cork Substances 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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/762—Media network packet handling at the source
-
- 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/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2407—Monitoring of transmitted content, e.g. distribution time, number of downloads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Environmental & Geological Engineering (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
用于传送可变比特率媒体文件的方法和设备将媒体文件传送至客户端系统。媒体服务器可以动态地检测客户端何时能够接受不同比特率版本的媒体内容。当媒体服务器将媒体内容传送至客户端系统时,媒体服务器可以在不同比特率版本的媒体内容之间平滑地切换。客户端系统在播放媒体内容的同时还可以请求不同比特率版本的媒体内容。
Description
技术领域
本发明总体涉及媒体内容传送。
背景技术
可以推行在本部分中描述的方法,但这些方法并非一定是先前已经设计或推行的方法。因此,除非本文另外指出,在本部分中描述的方法不是本申请中的权利要求的现有技术,并且不允许通过包含在本部分中而成为现有技术。
这些年来,视频内容在因特网上的传送已得到发展。从内容服务器到客户端计算机的视频传送的最初应用受到技术和带宽容量的限制。必须明显减小视频文件的大小,以适应电话线的低带宽。必须在可以向用户播放视频文件之前将低分辨率视频内容作为整体下载至客户端计算机。这是由于文件系统限制(在文件系统利用文件之前,其需要下载整个文件)和仅具有重放整个文件的能力的视频播放器软件的原因。这迫使用户忍受等待完全下载视频文件的长时延迟。
当下载内容时,创建私人文件格式和视频播放器软件以允许用户观看视频内容。在下载完成且用户观看到视频内容之后,保存或删除该文件。该方法由于带宽限制、服务器负载或网络延迟而非常容易出现下载延迟。由于视频播放器软件缺乏重放的视频内容,所以必须周期性地停止视频内容的重放。
开发了一种更复杂的方法,该方法将视频内容倾注至视频播放器软件。传送系统通常针对每个视频内容标题具有单比特率视频文件。单比特率视频文件被分配给所有用户,而不管它们的带宽是否可用。通过迫使用户观看具有比合理带宽低的质量的视频内容,来惩罚具有比正常带宽高的带宽的用户。
在用户能够重放视频内容之前,缓冲一定量的视频内容。缓冲器足够大,以支持一定量的视频内容来掩盖由带宽限制、服务器负载或网络延迟所导致的视频内容传送中的小延迟。较长的传送延迟(典型地,为几秒或更长)由不稳定的最后一英里带宽导致。传送延迟会使视频播放器软件无内容可播,并导致视频播放器软件停止视频内容的重放,直到传送重新开始且充分填充缓冲器为止。
附图说明
在附图的图中,通过实施例但不限于实施例示出了本发明,其中,相同的参考标号指的是相同的元件,其中:
图1示出了根据本发明的可行实施方式的在网络间与客户端系统、原始服务器、同位体MFD以及中心管理站相通信的媒体流导向器(MFD);
图2示出了根据本发明的可行实施方式的MFD部件和数据流架构的实施例;
图3示出了根据本发明的可行实施方式的动态地确定内容部分的流行度(popularity)的实施例;
图4示出了根据本发明的可行实施方式的代替传统的视频服务器网站的MFD配置;
图5示出了根据本发明的可行实施方式的向客户端系统传送内容的MFD网络;
图6示出了可以在其上执行一可行实施方式的计算机系统;
图7示出了根据本发明的可行实施方式的HPE和服务器侧播放器之间的工作流程的流程图;
图8a示出了根据本发明的可行实施方式的磁盘管理器与策略模块和分析模块之间的相互作用;
图8b示出了根据本发明的可行实施方式的磁盘管理器与用于存储装置的词典之间的相互作用;
图8c示出了根据本发明的可行实施方式的磁盘管理器与反向块映射(reverse block map)之间的相互作用;
图9示出了根据本发明的可行实施方式的缓冲池与缓冲管理器之间的相互作用;
图10a示出了根据本发明的可行实施方式的媒体管理器、缓冲管理器和媒体提供商之间的相互作用;
图10b示出了根据本发明的可行实施方式的媒体管理器与用于确定热门视频片段的分析模块之间的相互作用;
图11示出了根据本发明的可行实施方式的MFD中的网络管理器的流程图;
图12示出了根据本发明的可行实施方式的容器文件中的渐近式下载提示轨道位置;
图13示出了根据本发明的可行实施方式的参数说明画面的图形用户界面屏幕截图;
图14示出了根据本发明的可行实施方式的实时字节传送监控图的图形用户界面屏幕截图;
图15示出了根据本发明的可行实施方式的网络连接性能监控图的图形用户界面屏幕截图;
图16示出了根据本发明的可行实施方式的在网络间与客户端系统相通信的媒体流导向器(MFD);
图17示出了根据本发明的可行实施方式的MFD在网络中的应用。
图18示出了根据本发明的可行实施方式的向MFD传送视频文件的发布系统(publishing system);
图19示出了根据本发明的可行实施方式的制备视频文件以由MFD传送的预处理引擎;
图20示出了根据本发明的可行实施方式的可由MFD使用的文件格式的实施例;
图21示出了根据本发明的实施方式的内部文件结构。
具体实施方式
描述了一种可变速率媒体传送系统。在以下描述中,为了解释的目的,阐述了许多具体细节以提供对本发明的充分理解。然而,对于本领域的技术人员来说将显而易见的是,在没有这些具体细节的情况下也可以实践本发明。在其他情况中,以框图的形式示出了众所周知的结构和装置,以避免不必要地使本发明模糊。
本文中,按照以下提纲描述实施方式:
1.0总体概述
2.0结构和功能概述
2.1网络上的适应性内容传送
2.1.1媒体流导向器架构
2.1.2媒体流导向器布置
2.2网络上的可变速率媒体传送
2.2.1平滑流架构
2.2.2不同比特率之间的过渡
2.2.3网络中的媒体流导向器
2.2.4准备平滑流文件
3.0实现机制——硬件概述
4.0实施例
5.0扩展和变形
总体概述
本概述给出了本发明的可行实施方式的一些方面的基本描述。应当注意,该概述不是可行实施方式的方面的广泛或彻底的总结。此外,应当注意,该概述并非旨在被理解为确定可行实施方式的任何具体的重要方面或元件,也并非旨在被理解为具体地描述可行实施方式的任何范围(具体地,并非旨在大体上为本发明)。该概述仅提出了一些与压缩且简化的形式的实施例的可行实施方式相关的概念,并且其应被理解为,仅是以下实施例的可行实施方式的更详细描述的概念上的序言。
描述了一种可变速率媒体传送系统。在其他实施方式中,本发明包含计算机设备和被配置为执行所述步骤的计算机可读介质。在以下文本中,视频内容和视频数据被用作媒体内容和媒体数据的实例,但是,这些实例不限于视频内容,还可以包括其他类型的媒体内容和媒体数据,例如,音频、多媒体表现、放映幻灯片等。该系统通过传送适于变化的比特率的媒体数据来适应服务器和客户端之间的比特率变化。在实施方式中,视频数据被发送以匹配服务器和客户端之间的带宽。客户端和服务器之间的带宽是不断改变的。在某一时间点,存在这样的比特率,在该比特率时,必须针对视频来传送视频数据,使得该视频由客户端的视频播放器连续重放而没有暂停或中断。
该系统确保客户端视频播放器不会没有数据。可自动地检测服务器和客户端之间的带宽,并且通过服务器将带宽映射至适当的视频比特率。客户端视频播放器被提供有稳定的视频数据流。不使时标折衷,但传递至客户端的数据的量可以改变以与可用的带宽相匹配。如此,重放的视频的质量也可以改变。客户端播放器始终播放相同量的数据;只有视频的质量改变。
服务器在用户和客户端视频播放器看不到任何中断的情况下而在视频比特率之间进行无缝地切换。在可行实施方式中,为了阻止对峰值或谷值过快地产生影响,服务器可以在具有明显的下降或增加时切换比特率。唯一可注意到的变化是所播放的视频的质量。标准的视频播放器可以用来与服务器对接。可行的实施方式经由渐进式下载方法而向用户提供视频流体验。在另一可行实施方式中,视频播放器可以通过使用控制信号或命令与服务器通信来使能服务器的其他特征(例如,特殊再现特征/比特率自适应)、或通过提供关于客户端侧资源(例如,CPU使用/存储)的信息而具有与服务器相通信的智能。特殊再现是这样一种特征:允许用户在当前流动的视频上使用流命令(诸如快进、倒带、帧步进、暂停等)来控制其媒体重放体验。
在另一可行实施方式中,可以稍微改进视频播放器,以能够向服务器发送告知服务器视频播放器已暂停的控制信号或命令。暂停通知使服务器暂停对视频播放器的渐进式下载。这释放了服务器的部分带宽,并使服务器处理其他下载。
描述了一种适应性网络内容传送系统。参考图1,可行实施方式提供了媒体流导向器(MFD)103。MFD是可以经由HTTP、FTP、流动或其他协议而将网络104上的视频内容(以及各种大小的其他类型的文件内容,例如,媒体(音频、图片等)、游戏、软件、HTML、脚本等)有效地传送至多个客户端101a、101b、101n的网络装置。视频内容包括这样的内容,如特征长度电影、情景喜剧、各种演出、脱口秀、新闻节目、广告等。客户端装置101a、101b、101n可以是个人计算装置(诸如台式机或笔记本电脑、机顶盒、手持计算装置、手机、便携式媒体播放器)或能够显示多媒体内容的任何其他便携式装置,并且它们还可以通过任何适当的接口而耦接至网络104。
MFD 103将视频内容存储在各种存储装置(包括HDD、SSD、RAM、非易失性存储器等)中的内部。MFD 103可以将视频传送至许多个客户端同时对每个客户端保持高水平的观看体验。MFD 103通过测量客户端的最后一英里的比特率变化,而自动地适应传送至客户端101的视频的比特率。MFD向客户端提供平滑的视频观看而没有缓冲停顿。其确保了通过使用自适应性比特率将渐进视频传送至客户端。MFD动态地适应视频的比特率,以匹配有效的最后一英里带宽,并适应于改变客户端的网络条件。MFD可以动态地测量到客户端的最后一英里带宽,以动态地调节比特率。客户端不需要定制的视频内容播放器来与MFD通信。MFD支持工业标准视频播放器,诸如Flash、Quicktime、SilverLight、Windows Media Player等。
MFD 103对可以由消费者以及MFD提供商所定义的视频的存储和传送提供策略控制。MFD可以以各种方式配置在网络104上,包括在边缘高速缓存位置或原始服务器位置。网络104可以由在通信系统中的装置之间提供数据交换的任何介质或机制来实现。网络104的实施例包括但不限于诸如局域网(LAN)、广域网(WAN)、以太网、内联网、因特网的网络,或者一个或多个陆地、卫星或无线连接。
MFD 103通过任何适当的通信接口(例如,以太网或无线通信端口)而与网络104通信。可选地或附加地,连接至网络104的任意数量的装置还可以通过通信链路而彼此直接相连接。例如,当客户端101请求并未由MFD 103存储在其存储器中的URL内容时,MFD 103可以经由网络104或经由局域网从原始服务器102请求内容,以获得URL内容。另外,MFD103可以经由网络104或经由局域网与另一MFD 105通信,以获得URL内容、MFD内容信息、MFD状态等。
中心管理站106可以用来允许管理员设置用于MFD管理(例如,高速缓存管理、带宽限制、内容流行度确定等)的策略。中心管理站106还允许管理员管理将内容存储在MFD内的多个存储装置中的哪个地方以及如何存储该内容。中心管理站106可以经由局域网通信,或经由网络104连接至MFD 103、105。管理员登录中心管理系统106,并选择管理员希望与其相互作用的一个MFD或一组MFD。管理员可以定义策略,并通过中心管理站106将策略发送至MFD或推送至多个MFD。可选地,MFD可以周期性地或者当由中心管理站通知MFD可利用更新时而接触中心管理站106。
2.0结构和功能概述
2.1网络上的适应性内容传送
2.1.1媒体流导向器架构
图2示出了说明被构造成一个MFD以传送视频内容的内容传送开关的架构的可行实施方式。以下描述了该架构中的部件。
输出协议引擎210
输出协议引擎210处理来自客户端的请求。客户端向MFD发送请求,以与客户端连接,例如,HTTP获得对特定URL的请求,输出协议引擎210被认为是针对请求向服务器侧播放器201传递URL内容。
服务器侧播放器201
服务器侧播放器201主要负责每个视频流的特定视频逻辑的封装和执行。当针对视频流向MFD进行请求时,这种执行可以出现在入站侧,或者,当特定视频流正前往用于传送时,这种执行可以出现在出站侧。
服务器侧播放器201解释从输出协议引擎210接收的URL,决定哪个比特率将用于所请求的视频内容,处理将发送什么视频内容,以及从哪里播放视频(从视频内的哪个帧开始流动)。服务器侧播放器201注意比特率,并知道其尝试服务的视频内容的比特率。其可以使用从最优化网络堆栈211获得的信息,以找出哪个有效带宽用于最后一英里中的客户端。服务器侧播放器201还可以批准请求。在可行实施方式中,被嵌入URL中的查询字符串的带符号的散列关键字(hash key)用来验证请求已批准。
服务器侧播放器201提供确定的比特率和服务质量(QoS)特征。如果客户端必须缓冲,则这意味着,MFD的传送速率已经落后,并且客户端已经历没有要播放或显示的内容的死周期。在一个可行实施方式中,服务器侧播放器201计算已将多少数据发送至客户端以及已经过去了多长时间。服务器侧播放器201跟踪发送至每个客户端的数据的量以及正发送到每个客户端的视频内容的比特率。当每个客户端被发送一定量的数据时,服务器侧播放器201记录所发送的数据的量以及自从发送最后量的数据开始已经过去的时间的量。可选地,服务器侧201可以记录发送至客户端的数据的总量以及在客户端的对话期间已过去的时间的总量。通过使用所记录的信息,服务器侧播放器201可以计算其在对特定客户端的传送上是否已落后。例如,如果服务器侧播放器201已经以一定的比特率向客户端发送30秒的数据,并且,自从最后的数据传输开始已经过去了31秒,则服务器侧播放器201知道其已经落后。
在另一可行实施方式中,服务器侧播放器201计算其需要向客户端传送多少更多的数据以及必须在其中传送数据以避免客户端侧上的缓冲的时间窗。该计算与之前的实施例稍微不同。服务器侧播放器201知道视频文件的大小,并由此可以计算保持被发送至客户端的数据的量。给定视频文件的比特率和总大小,服务器侧播放器还可以计算其必须传送剩余量的数据的时间的大小。服务器侧播放器201可以计算针对其建立的一个任务所需设置的截止时间,以向客户端传送视频文件的一个片段。
MFD是基于任务的系统,其可以使用基于截止时间的调度。为了避免客户端缓冲,服务器侧播放器201在其建立的任务中设置截止时间。
在可行的实施方式中,服务器侧播放器201计算确定的流速(AFR)值(如下所述)。AFR是确保平滑的观看体验所需的传输速度。服务器侧播放器201使用AFR值来设置用于其建立的任务的截止时间,以从缓冲管理器203请求数据。服务器侧播放器201计算AFR,并且输出协议引擎210基于AFR来管理每个连接上的传输速度,并设置任务截止时间,使得可以满足AFR。在以上实施例中,服务器侧播放器201尝试保持在AFR的前面,并且如果例如,服务器侧播放器201已经发送30秒的数据并且自从最后一次传输开始已经过去了30秒,就会知道其已经落后,服务器侧播放器201立即知道其已经落后。在可选实施方式中,服务器侧播放器201可以扫描媒体文件,以设置媒体文件的AFR。服务器侧播放器201知道,一定质量或分辨率的媒体文件需要一定的传输速度,以确保客户端将不会停止。
服务器侧播放器201还处理擦除请求(为了决定将来做什么)、自动译码以及广告插入。与不知道视频文件格式或视频内容是什么的典型的文件服务器相反,服务器侧播放器201是知道视频的。当服务器侧播放器201在视频已经开始之后改变比特率时,服务器侧播放器201已经知道相关联的帧存在于不同比特率版本中的哪个地方,因此,服务器侧播放器201可以轻松地改变比特率,而无需客户端必须为了新比特率而发送不同的偏移量。一个可行实施方式以可被自动译码成其所需要的任一比特率的定制格式来存储视频内容。这使服务器侧播放器201精确地知道相关联的帧在哪里用于每个比特率自动译码。另一可行实施方式对特定的视频内容存储几个不同的比特率版本。服务器侧播放器201存储每个比特率版本的索引表,因此,服务器侧播放器201可以快速地查阅一个表以找到用于新比特率视频的相关联的帧。
服务器侧播放器201可以执行在视频流中插入广告。广告可以覆盖地放在视频流中。这使得广告插入与客户端播放器无关。可以动态地创建内容,例如,可以快速地进行副标题语言选择,并可以快速地覆盖适当的副标题。服务器侧播放器201可以将广告拼接在视频的中间部分中(被称作中间加载)。服务器侧播放器201还可以用另一信道重写(overwrite)视频的语音信道,以提供多语言支持,而不用必须存储不同版本的视频内容。
在一个可行实施方式中,服务器侧播放器201提供两个接口,它们均由输入协议引擎209中的HTTP协议引擎(HPE)接入。
北向接口:其用作这样的北向接口,其中,通过服务器侧播放器201检查由HPE解析的每个进入请求,以通过其特定用户逻辑来使请求生效。一旦检查到请求并执行必需的参数,请求就被发回至HPE,使得其可以对缓冲管理器203(以及此后的其他提供商)针对内容进行有效的请求。
南向接口:其用作这样的南向接口,其中,将所有传出数据发送至服务器侧播放器201以在传送之前进行检查。这是最后一个位置,在该位置,服务器侧播放器201可以在为了传送而发出内容之前执行任何的限制。服务器侧播放器201在该阶段具有这样的能力:在将由缓冲管理器203返回的数据缓冲发出之前如果需要,则可以对其进行修改。
图7示出了HPE和服务器侧播放器201之间的工作流程的可行实施方式。执行以下步骤:
步骤1:在已经建立连接之后,用户请求通过最优化网络堆栈211而到达HPE 701。
步骤2:HPE 701进行最小的解析,以得到查询字符串和名称/值对。
步骤3:然后,HPE 701用查询字符串启动对服务器侧播放器201的调用。
步骤3a:服务器侧播放器201可以起到使与视频无关的文件通过的作用,但是本质上为安全存取文件等的除外,诸如由客户端播放器请求的那些文件。
步骤4:对于每个新连接的每个第一调用,服务器侧播放器201将查询字符串重新映射至指向元文件的内部URL。该元文件存储所存在的简档(profile)的数量、其速率、时间周期,以及视频的其他信息。
步骤5:服务器侧播放器201将所重新映射的URL返回至HPE 701,并且还设置了这样的标记,其向HPE 701指出不在线上发送所返回的元文件,而是将被元文件返回至服务器侧播放器201用于进一步的处理。
步骤6:HPE 701建立任务以从高速缓存中读取元文件。HPE 701接收元文件并使其返回至服务器侧播放器201。
步骤6a:服务器侧播放器201将元文件中的信息存储在用于该连接的套接字结构(socket structure)中。元文件信息被存储在高速缓存中作为该读取的结果,以在未来快速查看。
步骤7:一旦元文件中的信息位于套接字结构中,服务器侧播放器201现在便可以用转换逻辑插件704重新映射原始URL。转换逻辑插件704(进行寻找和速度适应)使用存在于套接字连接中的服务器侧播放器201结构中的信息,以进行向不同简档/组块的必需转换。
步骤8:服务器侧播放器201返回所重新映射的URL,并在HPE 701中重新设置标记,以表明其准备好读取并在线上发送从高速缓存检索的数据。
步骤9:将查询字符串传递至服务器侧播放器201。服务器侧播放器201检查其是否已位于套接字结构中。
步骤10:如果已位于其中和/或如果用于时间偏移的名称/值对不是最小的(存在表示擦除或寻找的时间偏移或字节偏移),则服务器侧播放器201调用转换逻辑,以重新映射至适当的URL,并且,服务器侧播放器201调用HPE 701,以读取/传递数据。
步骤11:如果查询字符串中的名称/值对是最小的(没有表示擦除或寻找的时间偏移或字节偏移),那么从步骤4开始重复。
调度器202
调度器202使用由调用者设置的截止时间,以组织任务的调度。可以存在调度器202管理的几十万个任务。调度器保持由截止时间组织的任务。调度器202监控该任务,以查看是否有哪个任务已经错过其截止时间。这告诉调度器202MFD已经落后。调度器向服务器侧播放器201发送反馈,以告诉服务器侧播放器传送速度已经落后。调度器202可以发送诸如错过截止时间的任务的任务ID和时间大小的信息。
在一个可行实施方式中,如果调度器202确定其无法满足所请求的任务的截止时间,则其可以拒绝接收用于新连接的任务。这是确保没有过度提交(over-commit)MFD资源并且现有连接平滑地播放的许可控制的部件。类似地,执行任务的所有部件(例如,缓冲管理器、磁盘管理器和原始管理器)可以查看其内部资源承诺,并使新连接的第一任务无法成为拒绝接受对话的方式。
服务器侧播放器201可以识别哪些任务与每个客户端相关联。其可以通过使用上述计算而计算其有多晚向客户端传送视频内容,并相应地调节后续任务的截止时间。然后,服务器侧播放器201可以停止接收新连接。在一个可行实施方式中,服务器侧播放器201可以基于策略设置而降低一些现有连接的比特率,以接收另外的连接。这些方法使服务器侧播放器201动态地测量其性能,因此,其不需要对客户端连接的数目设置静态的上限。假设服务器侧播放器处理很多不同的比特率,则连接数目的固定上限不代表MFD的实际容量,因此,动态上限可以更有效,并允许MFD自己决定其是否可以处理更多或更少的连接。
一个可行的实施方式执行截止时间调度,其中,每个任务状态可以具有多个截止时间队列。每个截止时间队列可以与固定的时间周期(例如,1/10ms组块)相对应。调度器202可以使具有最短截止时间的队列退栈。
任务处理器在起始时间通过调度器202而被预先记录。它们始终是不阻塞的。阻塞处理器为另一组线程并在下面进行了描述。在一个可行实施方式中,任何任务切换均不包括线程上下文切换。
向线程池放出阻塞任务。无论何时存在待完成的任务,来自线程池的一个线程都将服务该任务。在这一点上,调度器202已经推开阻塞任务。因此,将不阻止其他任务。
调度器以WRR(加权轮询)方式检查相关的队列(状态/截止时间队列)。其通过调用预先记录的任务处理器来分派任务。调度器202通过保持跟踪过去的时间并使相关队列退栈,来根据截止时间进行调度。截止时间调度不是严格的实时。截止时间是对调度器202的建议,即,在另一个任务之前需要对特定任务进行调度。
调度器202使得能够进行不同类型的线程。这些线程为任务线程、I/O线程、事件线程和网络线程。这些列举的线程并不限制可以执行的线程的数量和类型。任务线程为任务执行的主要引擎。调度器202为开始例程。其基于优先管理来执行分派查看。当没有任务运行时,这些线程阻塞。
I/O线程用来执行阻塞线程(例如,磁盘管理器206中的磁盘I/O)。它们可以对读/写调用进行阻塞。事件线程为异步的,并将网络事件映射至任务状态变化。网络线程执行用户空间网络堆栈,并通常不会阻塞读取。专用线程用于AFR的定时器的定标和管理。可选地,可以通过使用调度器线程上的任务来执行网络活动。
磁盘管理器206
磁盘管理器206管理分布在多个磁盘驱动器上的对象,而不管大小、数量和类型如何。还参考图8a,磁盘管理器206从策略模块801(PM)和分析模块802(AM)获得关于对象位置的提示。媒体管理器204可以与PM 801相互作用,以帮助其决定如何将视频分配到片段中,并且还确定何时判断视频的一部分是热门的(如下所述)。媒体管理器204还可以与AM 802相互作用。AM 802基于统计信息来确定哪些视频部分是热门的,这些统计信息覆盖了由媒体管理器204所提供的视频部分点击。
存储在磁盘管理器206中的对象最可能是相关的视频,但也可以是任何视频。由于视频对象以连续的方式被消费,所以对象的磁盘布局特别适合于视频对象。对于较小的对象,磁盘管理器206执行特殊的压缩,因此,许多连续的小对象可以以时序的顺序而被紧密地压缩在一起。在小对象是较大的视频在时序中的大块部分时,这是非常适用的。该压缩使磁盘管理器206将磁盘驱动器的读取性能最优化,因为其读取少量数据所花费的时间大约与其读取1MB至2MB数据所花费的时间相同。在另一实施方式中,磁盘管理器206可以使能多种用于压缩对象的策略。除了基于时间的位置以外,磁盘管理器还可以支持基于名称结构或其他定制方案内的位置的压缩。
还参考图8c,磁盘管理器206可以使用反向块映射(RBM)805,以始终如一地读取大块806(甚至在存在小对象时)。块大小被设置为允许从磁盘驱动器有效地读取的特定大小,例如,1MB、2MB等。对于每个块,磁盘管理器206保持RBM 805中的一列范围,其中,每个范围为对象的相邻部分。在该实施例中,RBM 805列出具有相关范围807至812的块806。注意,对于较小的对象,多个小对象本身或较小对象的一部分可以适合于一个块,并且它们可以一起被读入高速缓冲存储器。当磁盘管理器206接收用于对象的特定部分的请求时,其将这个块定位在特定部分所在的位置。然后,其将整个块读入由缓冲管理器203提供的高速缓冲存储器813中。使用RBM 805,磁盘管理器206能够将正确身份(UOL)分配给每个缓冲器(如下所述)。这允许缓冲管理器203随后消耗额外的数据,而不进行任何附加的IO。在实施方式中,磁盘管理器206针对存储在MDF中的所有对象而在RBM中建立入口。当从原始服务器加载一个对象时,磁盘管理器206可以针对该对象而在RBM中建立入口。
磁盘管理器206解决了许多类型的磁盘控制器和磁盘驱动器,包括SATA、SAS、SSD和闪存。每个驱动器类型具有不同的大小和性能特征。如此,磁盘管理器206将改变每个驱动器类型的数据布局,以使能磁盘空间的最佳性能和利用。为了自调节驱动器类型和控制器的变化,磁盘管理器206在启动时执行简短的带宽测试,因此,磁盘管理器可以对其在开放硬件框架内看到的大量配置进行分类。
管理员可以配置磁盘管理器206,以将来自原始服务器的内容存储在硬盘驱动器上或存储在高速缓存中。管理员可以指定:在磁盘管理器206将内容存储在硬盘驱动器或高速缓存上之前,磁盘管理器206将内容存储在第一命中(hit)上或任何特定数量的命中上。这允许管理员关于任何已知或可预测的需求而灵活地调节所高速缓存的内容。可选地,可以由内部分析来驱动磁盘管理器206如何存储内容。由于例如管理员知道节目的新情节将是有需求的,所以管理员可以命令磁盘管理器206将特定的新内容存储在硬盘驱动器上。
通过磁盘管理器206执行逐出策略(eviction policy)。可以将内容从硬盘驱动器或高速缓存去除,以基于由管理员或用户定义的逐出策略而为新内容腾出空间。在一个可行实施方式中,可以基于分析算法(例如,使用最近使用的(LRU)算法或其衍生算法)而内部地获得逐出策略。用户可以在MFD中安装足够大的存储容量,使得可以不再通过用户的内容来填充存储空间。为了实现该目标,用户可以期望使其内容在硬盘驱动器的最快区域中,并稀疏地位于硬盘驱动器中。然后,用户可以具有一组专用于其最热门的内容的MFD(具有稀疏地填充的硬盘驱动器),并具有高速缓存其不太流行的内容的另一组MFD。管理员可以指定MFD上的某些硬盘驱动器保持由稀疏地用最热门的内容来填充,而MFD上的其他硬盘驱动器用于所有其他的内容。这允许用户执行特定MFD的有效存储方案。
还参考图8b,磁盘管理器206将每个装置对待为独立的高速缓存模块。与文件系统类似,每个装置上的元数据和数据包括分开的且独立的存储。然而,与传统的文件系统不同,命名层级在所有模块上是公共的,其中,将给定的名称与逻辑设备(文件系统)绑定。例如,如果将传统的文件系统安装在/a/b/c,则该目录下的所有对象将位于该文件系统中。相反,磁盘管理器206能够将/a/b/c/one.gif、/a/b/c/two.gif、以及/a/b/c/three.gif存储在高速缓存装置803a、803b、803c中的任一个中,并且其进行管理。在初始放置(以及对负载平衡重新定位)的过程中,磁盘管理器206在其基于每个装置而保持的使用统计的基础上选择装置来存储对象。在查找(以服务STAT任务)的过程中,磁盘管理器206确定哪些装置具有对象,并再次基于使用统计选择一个装置。这允许放置对象或其一部分,并由与其名称无关的任何高速缓存模块服务。磁盘管理器206能够通过在使用统计的基础上放置对象(并动态地将其重新定位),而从每个装置中将带宽最优化。在一个实施方式中,磁盘管理器206在每个装置的读写吞吐量方面保持跟踪每个装置流量。在初始放置和重新定位的过程中,其选择具有最少量流量的装置。在另一实施方式中,其使用队列深度(重要请求的数量)和平均等待时间作为流量的测量。灵活的放置导致了在高速缓存装置之间的线性定标。
在一个实施方式中,磁盘管理器206针对每个高速缓存装置803a、803b、803c将词典804a、804b、804c高速缓存在RAM中。词典804a、804b、804c由存储在该装置803a、803b、803c中的对象的树与关于对象的少量元数据一起组成。这允许磁盘管理器206非常有效地回答STAT查询,而不会导致任何磁盘IO。
磁盘管理器206提供简单的故障恢复模型。单个高速缓存装置的故障仅导致包含在该高速缓存装置中的对象遗失。其对其他高速缓存装置的性能没有影响。有故障的高速缓存装置可以被替换(在线,针对支持热交换的硬件系统)并被重新配置为新的高速缓存模块。在一个实施方式中,磁盘管理器206还可以选择性地复制多个高速缓存装置中的对象,以得到更好的故障恢复和性能。
在一个实施方式中,关于视频的所有信息均自包含在每个驱动器内,使得可以在MFD之间移动驱动器。随着时间的过去,磁盘管理器206询问分析模块802,以在驱动器之间自动地移动整部电影或剪辑,和/或将其移动至SAS磁盘803的驱动器中的内部或外部轨道。磁盘管理器206提供媒体管理器204所必需的数据,以使高速缓存层级内的各层之间的对象升级和降级。内容的初始放置可以取决于来自分析模块802和/或策略模块801的数据。磁盘管理器206选择将读取性能最优化的数据布局,甚至针对小对象。
磁盘管理器206可以避免影响大多数文件系统的性能的存储残片问题。无论什么时候已在该块中释放可配置的空间量,其都通过回收全部块来这样做。例如,如果用64个32KB的对象填充2MB的块,并且删除一半的对象(例如,基于逐出),则磁盘管理器206便可以释放整个块。通过磁盘管理器206使用RBM以逻辑上删除或重新定位剩余的对象。
视频信息可以包括:压缩/未压缩的视频数据、应用所需的视频属性(标题信息),以及帮助内部操作所需的视频属性(高速缓存期满、高速缓存起始时间)。当去除和增加驱动器时,磁盘管理器206重新调节高速缓存内容。其还适度地处理来自物理介质的运行时间误差。在同一系统上一起支持SAS、SATA、SSD和闪存驱动器。磁盘管理器206允许多个驱动器高水平地并行。一个可行实施方式允许用介质预先加载高速缓存,可服务该介质直到特定的日期和/或时间为止。
智能高速缓存
硬盘驱动器作为高速缓存而操作得不好,当硬盘驱动器被用作高速缓存并且其正高速缓存几百、几千或甚至几万个视频时,最终结果是随机输入/输出(IO)图案。MFD将有意思的内容放在硬盘驱动器的相同区域中,因此,MFD可以执行大读取以补偿带宽,例如,对于低带宽连接,MFD在一次读取中可以读取30秒的视频,并将其存储在RAM或SSD中的高速缓存中(或根据所服务的连接的数量以及这些连接的带宽考虑,而在硬盘驱动器上缓冲)。这使得对客户端传送该高速缓存,并且客户端在30秒的时间内不需要其下一次IO。SSD用于更频繁地存取的内容,或用于需要不能有效地从硬盘驱动器服务的更小的随机IO的内容。流行度索引用于一部分内容,以确定一个部分是否是热门的。对于视频,人们可能不观看整个视频,并且视频的某些部分可能比其他部分更热门,因此高速缓存最热门的内容部分。这使得MFD在其高速缓存时更智能。例如,MFD不用必须高速缓存整个视频流。MFD动态地计算内容部分的流行度。
参考图3,当MFD测量视频流的存取时,动态地确定视频的热门部分的边界。在一个可行实施方式中,服务器侧播放器201使用逻辑组块方法来动态地确定哪部分是视频的热门部分。例如,服务器侧播放器201可以使用帧标识符,诸如嵌入在视频帧中的时间标签或存储器地址位置中。可以通过服务器侧播放器201利用针对视频流所创建的偏移量的表格来获得帧标识符。偏移量的表格可以由系统在接收视频流时创建,或者可以由内容提供商创建,内容提供商在接收视频流时被加载至系统中。对于不同比特率的视频流,可以存储多个表格。
服务器侧播放器201可以确定覆盖视频流的观看最多的帧的视频流的一部分或边界,并将视频流的热门部分放入一个高速缓存(硬盘驱动器、SSD或RAM)中。在一个可行实施方式中,分析模块监控视频1,301、视频2 302、视频3,303及视频4 404。其发现,存在比该视频的其他部分或利用客户端系统的其他视频更频繁地观看的视频的片段。将视频305、306、307、308的这些部分存储在高速缓存309中。高速缓存309可以为任何高速缓存,RAM高速缓存、SSD高速缓存,或硬盘驱动器高速缓存,或它们的任何组合。
在一个可行实施方式中,服务器侧播放器201支持所存储的视频流的将视频流划分成小文件并确定哪个文件流行的物理组块。物理组块将视频分成客户端播放器可看得到的小命名组块。
基于时间的存取模式用来确定哪些视频(例如,与主题相关的新闻项或与内容相关的视频)趋向于一起观看,并且磁盘管理器206将视频的热门部分重新定位在硬盘驱动器高速缓存、SSD高速缓存或RAM高速缓存中的相同区域中,从而增加高速缓存命中并允许更快的存取时间。
RAM高速缓存与缓冲管理器203相结合。其使用分析和/或策略来管理RAM高速缓存并选择逐出候选者。当服务器侧播放器201找到每个热门视频部分时,缓冲管理器203确定已经存储在高速缓存中的热门部分哪些不再被确定为是热门的。缓冲管理器203从高速缓存中去除不再热门的部分,以为新的热门部分腾出空间。这由缓冲管理器203基于从存取模式获得的内部分析来完成。在一个实施方式中,缓冲管理器203保持所有不活跃使用的缓冲器按逐出顺序组织。排序考虑以下因素,例如,缓冲器存取的次数、存取的时间频率以及增加/减小的使用速度。
缓冲管理器203可以使用主存储器(RAM)作为用于高比特率视频的高速缓存,并使用SSD存储器用于低比特率视频。这允许MFD更有效地使用主存储器。
媒体管理器204管理高速缓存层级(例如,SSD、硬盘、同位体)。其查看分析和/或策略,以确定何时升级、降级或逐出高速缓存内容。媒体管理器204启动分级的高速缓存管理(包括高速缓存升级和降级动作)。每个元素在高速缓存层级中的执行叫做高速缓存提供商。动态地记录提供商,并基于其记录的特性(例如,带宽、等待时间、容量等)将提供商汇编在层级中。存在两类提供商:高速缓存提供商,其是对支持读写的系统的本地高速缓存;以及原始提供商,其是提供原始内容并且是只读的网络源。高速缓存迁移的单元可以包含逻辑组块边界,或者在一些情况中,纯粹从装置等级块管理中获得。例如在HDD中,可以将流行的块(其可以包含多个视频的一部分)升级至SSD或升级至HDD的外部轨道。
元数据描述了将媒体存储在磁盘中的什么地方。大多数操作系统高速缓存与文件相关的信息。该信息被叫做信息节点。信息节点高速缓存可以支持很多信息节点,典型地,为百万的数量级。该高速缓存将消耗MFD可以使用的之前的存储器,以高速缓存媒体数据。MFD具有告诉媒体数据的各种片段存储在磁盘的原始分区内的什么地方的信息。该信息落入元数据,并且其被称作“范围”。支持大媒体对象的每个磁盘块可以具有单个范围以查阅该数据。当磁盘块支持多个小对象时,每个小对象均具有不同的范围以对其进行描述。
为了减小在一些系统中难以控制的信息节点高速缓存空间,将元数据(包括范围)压缩成被称作容器的单个信息节点/文件。每个容器均支持用于一组公共的对象的范围。因为对象是公共的,所以MFD会正常读取用于这些对象的元数据。
在一个可行实施方式中,MFD产生动态磁盘层级,其允许MFD确定磁盘在MFD内的带宽。磁盘管理器206确定哪些驱动器可能是高速缓存目标。其运行简短的测试,以根据磁盘带宽将每个驱动器进行分类。这样做是因为相同类型的驱动器可以根据哪个磁盘控制器在其前面而看到不同的性能数。通过运行磁盘测试,磁盘管理器206不需要在各种驱动器类型之间进行区分,或找出每个磁盘控制器可以传递什么性能。驱动器/控制器带宽组合将这一对放在由工厂或由管理员设置的一些类别内。典型地,存在预置数目的类别。
在一个可行实施方式中,MFD创建磁盘高速缓存层级。高速缓存层级的每个级别均包含一组对象。在访问次数方面接近最高值的对象是移入下一个最快层级中的良好候选者,从而使得能够降低所有对象的总访问次数时间。可以使用带宽利用情况和空间利用情况来确定对象从较低等级到较高等级的移动,以确定何时适于移动对象。在访问次数方面接近最低值的对象是移入下一个最慢层级中的良好候选者,以为较高的访问计数的对象释放空间。MFD尝试将用于最高等级的可用带宽最大化至最低等级。例如,定义三个等级A、B和C,其中,A是最快的高速缓存。如果A不完整,则将B中的最高存取的对象升级至A是有意义的。这将腾出更多空间,以将对象从C升级至B。如果B中的某些对象访问得没有C中的对象那么频繁,则通过将B中访问最少的对象从B移入C而使其降级并将C中访问最多的对象升级至B中是有意义的。该移动过程被叫做“升级”和“降级”。
每个磁盘驱动器的外部的10%至15%可以传递比整个装置的随机性能好15%至20%的性能。一个可行实施方式可以开拓(carve out)驱动器的外部,并将媒体对象的最热门部分移至该区域。
缓冲管理器203
缓冲管理器203在MFD内提供原始数据路径。经由缓冲器发送由MFD服务的所有内容。缓冲器用于在出站网络(outbound network)与高速缓存提供商之间以及在其与RAM高速缓存之间进行速度匹配(缓冲)。后者是高速缓存层级中的(隐含的)第一等级。当所请求的内容在高速缓存中得不到时,缓冲管理器203使用媒体管理器204的服务来检索该数据,并且如果可能的话,为了后续请求而将其高速缓存。
缓冲管理器203从HPE创建的任务中接收对内容的请求。缓冲管理器203取来内容。给定URL和从那里播放的偏移量,缓冲管理器将提供内容。缓冲管理器203从媒体管理器204中检索内容。缓冲管理器204创建任务,以检索在偏移开始时的一部分视频内容。媒体管理器204从硬盘驱动器或SSD检索内容。缓冲管理器203可以检查所请求的内容是否与存储在主存储器高速缓存(RAM)中的任何内容匹配。RAM高速缓存由多个缓冲器组成。可以根据高速缓存来直接服务一个命中,而不用任何进一步的复制。可以通过使用媒体管理器204填充新的缓冲器来服务一个未命中,以将内容重新定位在存储中。缓冲管理器203将指针传递至包含给输出协议引擎210(将视频内容的一部分流动至客户端)的视频内容的一部分的缓冲器。
缓冲管理器203有效地管理大量存储器。其具有在服务相同内容的连接之间共享缓冲器的能力。缓冲管理器203还具有从MFD中的使用模式获得的有效的再使用方案。
缓冲管理器203基于在使用计数和寿命基础上计算的成本函数来处理缓冲器逐出。较高的使用计数导致了较高的成本,而寿命用作成本上的衰减函数,例如,较老的缓冲器具有较老的成本。逐出算法尝试大概找出在非常有效地操作(恒定时间)的同时具有最低成本的缓冲器。
将可以逐出的缓冲器(具有零参考计数)插在LRU列表的尾部。通过缓冲器的使用计数而对列表进行排序。通过时间戳而对每个LRU列表有效地进行排序。将不在高速缓存中的缓冲器(例如,到期的、被清除的)放在具有零时间戳的最低LRU列表的最前头上。
在逐出的过程中,对每个LRU列表的最前头计算成本,并且逐出最低成本的缓冲器。
每个对象(URI)具有为属性的一部分的期满时间。在访问缓冲器高速缓存时,相对于当前时间检查期满时间。如果到期,则从高速缓存中去除与对象相关的所有缓冲器和属性。当参考计数变为零时,将缓冲器放在LRU列表上。在期满时间之前的时间窗(其可由管理员或用户配置)的过程中,可以用原始服务器使对象重新生效。
参考图9,在一个可行实施方式中,缓冲管理器203管理缓冲池904。可用于数据的存储器被静态地分成固定大小页面的阵列。每个页面具有相应的缓冲器结构,以压缩与缓冲器相关联的元数据。还从阵列中静态地分配缓冲器结构。每个缓冲器可以经由缓冲器高速缓存和自由列表而链接。元数据的部分元素是:
身份。缓冲器的身份。数据缓冲器具有由UOL(URI、偏移量和长度)组成的ID。属性缓冲器仅具有URI的ID。
参考计数。缓冲器的使用中的用户的数量。
使用计数。缓冲器已经使用的次数。这是缓冲器“流行度”的基本测量标准。
时间戳。将缓冲器放在LRU列表上的时间(即,参考计数为零)。
缓冲管理器203管理缓冲器高速缓存。针对具有身份且可与其他连接共享的所有缓冲器,保持使用UOL作为键码的哈希映射。一个可行实施方式支持用于缓冲器的非高速缓存模式,由此,缓冲器具有身份但不可以共享。
与相同对象(URI)相关的数据缓冲器通过植根在相应的属性缓冲器中的列表将而链接在一起。这允许快速地应用属于整个对象的动作(例如,高速缓存到期和对象清除)。
自由表也由缓冲管理器203保持。所有缓冲器(包括那些具有身份的缓冲器,其具有零参考计数)均在该列表上。这允许根据需要有效地逐出缓冲器。该列表可以由利用缓冲器的使用计数所排序的多个列表组成。
每个GET任务在用来保持其缓冲器的列表以进行参考计数的高速缓存请求专用数据905中分配一些私人数据。其还用来与下层的媒体请求连接。高速缓存请求处理器902管理高速缓存请求私人数据905,并处理GET任务请求。
媒体请求处理器903对发送至媒体管理器204的每个媒体GET任务获取进入/出去的自变量。媒体请求对象链接在媒体请求表906中,使得可以使对相同或共同存储的对象的多个请求同步。
参考图10a,缓冲管理器203和媒体管理器204之间的接口(其实现高速缓存层级)具有独特的特性,该特性使得能够实现高性能高速缓存系统。通过使用STAT任务(其作用就像是投标系统)来实现提供数据的装置的选择。高速缓存层级中的每一层(例如,固态器件(SSD)管理器205、磁盘管理器206,以及原始管理器207)可以依次响应于用于服务请求的投标(bid)。投标包括告诉缓冲管理器203分配缓冲器的必需设置的“块大小”。然后,缓冲管理器203将GET请求向下发送至赢得投标的特定高速缓存提供商。将请求和响应在逻辑上去耦合。提供商用内容来填充所提供的缓冲器,并针对每个缓冲器设置适当的身份。这导致了新的缓冲器被插入RAM高速缓存中。缓冲管理器203一完成任务,其就再次查找RAM高速缓存,并能够找到其所寻找的缓冲器。该模型允许提供商在相同的请求中提供附加的数据,同一对象的后续部分或其他相关的对象。其还允许对象的不同部分由不同的提供商提供。命名和位置是正交的。例如,具有名称/a/b/c/one.flv的视频对象(部分地或整体地)可以存在于高速缓存层级中的任一提供商中。
媒体管理器204
媒体管理器204基于视频的相对热门度而使视频升级和降级。视频的热门度为该视频的点击次数、点击频率,以及频率的增大或减小趋势的函数。
媒体管理器204具有n个不同的源,一个或多个SSD 205、一个或多个硬盘206、原始服务器207、或同位体208。媒体管理器接收缓冲器,并用所请求的内容的一部分对其填充。媒体管理器204将所填充的缓冲器发送至缓冲管理器203。如果内容不在本地存储中,则媒体管理器204从原始服务器、同位体或客户端中检索内容。以下为速度的层级,在一个可行实施方式中,其与每个源相关联:
1.存储器(RAM):10Gbps
2.闪存:4Gbps
3.固态器件(SSD):1.6Gbps
4.磁盘(SAS):550Mbps
5.磁盘(SATA):400Mbps
6.其他
7.NFS和其他文件高速缓存
8.原始管理器。
参考图10b,媒体管理器204首先将新视频放在最低存储器层级中。在定时器到时时,媒体管理器204检查最热门和最冷门视频的分析/策略管理器1002。分析/策略管理器1002向媒体管理器204提供最热门的视频和/或所存取的视频的一部分。将最热门的视频或视频的一部分升级至层级中的下一个存储器高速缓存,并将最冷门的视频降级至层级中的下一个最低的存储器。以此方式,可以将视频放在高速缓存层级的最低层中,并且如果其热度相对于其他视频而增加,则其可以上浮至层级的顶部。
媒体管理器204从相应的高速缓存驱动视频的逐出。媒体管理器执行逐出定时器。当定时器激发时,媒体管理器204仔细检查每个高速缓存提供商205、206、207、1006,从而检查高速缓存是否充满至某一阈值。如果特定的高速缓存是满的,则媒体管理器204调用提供商的逐出功能性。然后,提供商执行其特定的逐出算法。
同位体管理器207
同位体管理器207可以被配置为在高速缓存缺失时从同位体MFD获得某一内容。假设MFD在本地存储器(例如,一个或多个硬盘驱动器以及一个或多个SSD)中具有有限量的存储空间,则可能存在这样的情况,其中,用户具有比单个MFD可存储的视频内容更多的视频内容。可以在安装于用户的场所处的多个同位体MFD中分配用户的视频内容,或者在那里,同位体MFD可以在网络(诸如,分配在彼此通信的多个同位体MFD中的内联网、因特网、LAN或WAN)上彼此可访问。
管理员可以通知其同位体的IP地址的每个同位体MFD,因此同位体MFD能够与其同位体通信。如果同位体MFD局部地相连接,则其可以通过任何类型的发现机制而由其自己发现其同位体。同位体MFD可以在它们自身之间通信,并让每个同位体MFD知道其高速缓存哪些URL。这意味着,在每个同位体MFD已加载来自原始服务器或另一同位体MFD的内容之后,同位体MFD通知每个其同位体MFD关于其服务的URL。这可以经由发送至每个同位体MFD或广播至所有同位体MFD的一个消息或一系列消息来实现。如果将用于特定URL的请求发送至导致高速缓存缺失的同位体MFD,则该MFD中的同位体管理器可以从高速缓存该特定URL的同位体MFD中请求URL内容。
原始管理器208
a.原始服务器可以将内容推送至原始管理器208,或者原始管理器208可以从原始服务器拖出内容。原始服务器可以通过将内容预先安排至原始管理器208,而将内容推送至原始管理器208。原始服务器可以将FTP或HTTP推送至原始管理器208,并告诉原始管理器208高速缓存某些URL,因为内容提供商知道该内容将是热门的。
b.由于错过所有局部可用的高速缓存(还是代理服务器功能)的客户端请求,原始管理器208从原始服务器拉出内容。拉出内容还可以由于策略或命令驱动的动作而发生,以与客户端请求分开地读取内容。代理服务器功能与高速缓存摄取是分开的。这有几个原因:(a)代理服务器可能必须服务对于高速缓存来说不方便的奇怪对准的字节范围请求;(b)该系统可能需要执行处理功能,例如,在摄取过程中的组块和自动译码(这些在代理服务器中难以实时地实现);以及(c)用于两个功能的不同策略。
输入协议引擎209
输入协议引擎209以和输出协议引擎210相同的方式操作,只是其通过使用诸如HTTP、FTP和NFS的协议与原始服务器通信。
最优化网络堆栈211
最优化网络堆栈211使用TCP堆栈中的往返时间(RTT),以估计对客户端的最后一英里的比特率变化。RTT时间告诉最优化网络堆栈211是否存在完全(down the line)拥塞。RTT提供在前往客户端的网络中可用的带宽的估计。最优化网络堆栈211还通过使用适于时敏应用(例如视频)的算法来执行误差处理和拥塞控制。MFD可以响应于所检测到的比特率变化来改变比特率,而无需客户端知道。
确定的流速
在一个可行实施方式中,MFD具有对允许进入系统以进行数据传送的每一流动保证某一类服务的能力。这被叫做确定的流速。MFD针对每个对话来计算确定的流速,并针对对话设置最大带宽。用于对话的带宽利用不应小于确定的流速,并且如果存在可用的带宽,则应尝试达到最大带宽。
MFD执行流控制,以确保现有对话得到所需的速度,并且不大于最大速度。这在网络套接字等级中实现。套接字等级管理数据发送速度。对话带宽队列和服务器定时器用于计算流控制。
MFD通过确保如果服务器没有足够的资源以接受连接,则不容许新的对话,来执行许可控制和连接管理。
四种规格可以用于MFD,以保持确定的流速(AFR):
∑所有连接的AFR≤设备界面端口带宽
对话AFR≤客户端对话带宽
∑所有连接的AFR≤(磁盘+缓冲器)读取速度
最差质量视频比特率≤对话AFR≤最高质量视频比特率
其中:
-对话:单TCP连接。
-∑所有连接的AFR:所有接受的对话的AFR之和。
-对话AFR:用于单个对话的各个AFR。
-客户端对话带宽:客户端对话最大带宽。典型地,客户端对话最大带宽指的是,由于WAN环境的限制而产生的最大TCP吞吐量。对于DSL下载,典型的带宽为1500K比特/秒。
-视频比特率:每个视频均具有一个简档。不同的简档具有不同的质量。较高质量的视频需要较高的比特率。并不是每个视频都具有用于所有比特率的简档。典型的视频简档比特率的范围可以是从200K比特/秒至1000K比特/秒。
为了确保MFD没有过度提交服务器资源,使得可以保持用于现有任务的AFR,MFD拒绝新的对话或者降低用于现有对话的简档(如果可能的话),以在策略设置的基础上适应新的对话。通过在服务器上发送繁忙HTTP应答或通过简单地关闭连接,来拒绝对话。MFD在服务数据的中间过程时不关闭对话。其仅降低视频简档。
例如,如果对于每个网络界面端口,将总设备网络带宽被限制在1G比特/秒,则∑所有对话的AFR应小于该带宽。当所有接受的对话的AFR之和等于1G比特/秒时,MFD可以停止接受新的对话。在一个可行实施方式中,通过考虑由包重发、ACK包、TCP/IP标题、其他使用(例如,ARP)、离线原始管理器208等所使用的网络开销,对于所有对话,AFR计算,带宽可以降低至0.8G比特/秒,以考虑更现实的带宽限制。
AFR比特率可以在最差质量视频比特率和最高质量视频比特率之间。如果AFR<最差质量视频比特率,那么屏幕抖动将出现在客户端侧。如果AFR>最高质量视频比特率,则将浪费带宽资源。服务器侧播放器201不关闭连续对话GET请求,但允许通过返回故障误差代码来关闭新的对话。
在一个可行实施方式中,如果客户端经由拨号调制解调器获得接入,则AFR受到较慢的最后一英里连接的限制。网络驱动器模块基于RTT计算来检测客户端连接ISP。一个实施例等式可以为:客户端对话带宽速度=1460字节/RTT(秒)。
如上所述,视频内容被存储在磁盘或RAM中。一旦MFD确定了AFR,其就需要确保磁盘+缓冲器可以达到该速度。与CPU和网络容量不同,作为一个容量的磁盘速度不是可以容易测量的东西。其与工作量高度相关。一种测量磁盘是否处于或接近容量的更实际的方法是查看队列深度和/或平均等待时间。调度器202的截止时间缺失计数器是在系统中发生什么的良好指标。
在某些情况下,例如,网络管理员希望产生VIP列表。网络管理员可能通过用户接口管理控制台来设置策略,使得VIP列表接收产生更高的用于对话的AFR的高质量视频。在另一实施例中,网络管理员可以设置平均视频质量。网络管理员可以使用用户接口管理器控制台来设置平均AFR。
在一个可行实施方式中,MFD不希望将较高的视频质量发送至无法播放高质量视频的客户端。例如,PC/笔记本可以播放高质量视频,但iPhone/g-phone/Palm等仅具有非常小的屏幕,因此无法播放高质量视频。完全不需要将高质量视频发送至这些类型的装置。
参考图11,示出了用于最优化网络堆栈211中的网络管理器的AFR部分的可行实施方式的数据流,最优化网络堆栈在HPE对调度器202提出任务并且调度器202返回数据块之后发送数据。如果在一个定时器间隔缝隙(例如,一次一秒)内无法发出所计算的数据的大小,则这意味着在网络管理器中出现AFR错过。如果调度器202在截止期限错过时间内不返回任务,则这意味着磁盘管理器206中发生AFR错过。
网络管理器计算任务的截止时间。然后,其提出具有所计算的截止时间的任务1101。然后,给定AFR和套接字的传输周期的定时器间隔,网络管理器计算可以在连接上发送的最大数量的字节。这产生可以在一个定时器间隔中在连接上发送的最大量的数据1102。然后,网络管理器在套接字上发送数据1103。
如果发送是不完全的1104,例如,没有足够的空间来发送数据或者定时器间隔已经过去,则网络管理器将尝试在连接上重新发送数据1107、1103。
如果有足够的空间来发出/接收数据1104(例如,客户端上的缓冲器等级是足够的,TCP等级是足够的,窗口大小是足够的,更多数据将被发送等),则网络管理器检查以查看是否存在更多的数据要发送1105。如果有更多的数据可用于发送,则网络管理器将套接字放回在定时器队列中以等待下一定时器间隔,来发送更多的数据1108,并计算可以在连接上发送的下一个最大数量的比特1102。另外,网络管理器以定时器间隔结束,并且使下一块数据发送1106。
该过程继续,直到已经发送来自调度器202的一个或多个数据块中的所有数据为止。
在一个可行实施方式中,为了保持AFR,MFD执行以下操作:
1.在网络端口上请求的连接。如果该网络端口的总连接>最大容许连接,则拒绝该连接。
2.每个连接仅可以分完所计算的对话带宽。在该实施例中=1Gbps/该网络端口上的总连接。
3.由于最大对话带宽配置而产生的改进。
a.如果配置最大配置的对话带宽并且所计算的对话带宽>最大对话带宽,则将所计算的对话带宽设置为最大配置对话带宽。
b.否则不改变。
4.计算对话AFR。
a.将对话AFR设置为所配置的AFR作为基本建议的AFR。
b.调用服务器侧播放器201用于调节AFR。如果通过服务器侧播放器201返回误差消息,那么关闭对话。
5.由于平衡的AFR计算而产生的改进。
a.如果所计算的对话带宽>1.2*AFR,则将所计算的对话带宽设置为1.2*AFR。
b.否则不改变。
6.由于AFR而产生的改进。
a.如果所计算的对话带宽<AFR,则将所计算的对话带宽设置为AFR。
b.否则不改变。
7.在将数据发送至客户端的任何时候,在每个epollout事件或任务完成中执行所计算的对话带宽。
网络和HTTP管理器对用于计算服务器侧播放器201的AFR值的服务器侧播放器201提供三个参数。这三个参数是:
URI。
客户端对话带宽(AFR的上限值)。
网络带宽的总可用AFR。
其中:
-网络模块可能削减总可用AFR。
-总可用AFR≠总网络带宽-∑现有对话的AFR。
-总可用AFR=min(总网络带宽-∑现有对话的AFR,所配置的最大AFR)。
在服务器侧播放器201的AFR计算中,返回的AFR值可以小于客户端对话带宽和总可用AFR。可以在HPE完成HTTP解析之后的时间调用服务器侧播放器201。HPE提供所有的HTTP信息(诸如URI等)以及标记,以表明这是新的对话或具有相同连接的连续对话。
服务器侧播放器201不关闭连续对话GET请求,但应被允许关闭新的对话。服务器侧播放器201将AFR设置为在URI请求中指定的值。如果服务器侧播放器201不能将AFR设置为所请求的值,则其将错误代码返回至将关闭该连接的HTTP引擎。
调度器202截止时间错过可以用来在运行时间的过程中测量磁盘吞吐量。HPE计算截止时间(使用截止时间=函数(总HTTP字节/AFR))(单位为微秒),并且当向调度器202提交任务时,将截止时间发送至调度器202。如果磁盘操作超载,则调度器202丢掉一些新任务。所选择的丢掉的任务应属于由新对话产生的第一任务。通过HPE可以设置标记,以告诉调度器202一个任务是否属于新的对话。
当存在过多的磁盘截止时间错过时,调度器202向网络管理器发送反馈,以减小服务器结构中的最大容许连接。这减小了总对话数量。
在恢复磁盘操作且忽略截止时间错过问题之后,调度器202试图恢复回至在服务器结构中设置的最大容许连接。
提示轨道(hint track)
参考图12,在一个可行实施方式中,渐进式下载提示轨道(PDH)1206向MFD描述了如何在HTTP上使用渐进式下载来服务存在于文件1201中的媒体数据。只有一个容器文件1201需要存在于MFD中。在该容器文件1201中,用户可以存储变化比特率、空间分辨率的流1204、1205或可缩放的流。与MP4容器文件一样,容器文件1201还可以包含元数据1202。PDH提示轨道1206将是视频文件容器(在该实施例中移动)1203内的较高等级的元方框,视频文件容器向MFD描述其可用的所有选择以支持PDH。
在一个可行实施方式中,取决于来自客户端的请求而适应变化的带宽条件、可用的客户端CPU资源,或由MFD查询(poll)网络以解决网络等待时间,MFD侧逻辑可以在以下方面进行智能决策:其应如何服务以及服务何种类型的比特率、帧速率或分辨率,以最佳地满足网络的条件和客户端的需求。
在一个可行实施方式中,可以通过MFD使用提示轨道,以决定最佳的速度或分辨率来进行服务,然后,将媒体数据的时间周期的相关部分压缩成MP4的自包含块,以在HTTP上传送。在普通容器中存在的媒体数据本身不需要以任何方式重定格式。
在一个可行实施方式中,可以产生多个预定义的PDH提示轨道,其覆盖大多数普通使用条件,以减小MFD侧上的负载。
在一个可行实施方式中,可以在被组成为以预定义帧速率(例如,以B1kbps,30fps编码的H.264流)服务的服务器中使用单个媒体数据流。在传送的过程中,根据网络条件,MFD可以选择丢掉较高的临时增强层(通过MP4中的分层方框可以轻松地获得其信息)。同样地,用于这些较低的帧速率部分(例如,15fps、7.5fps)的PDH块的速率将小于B1kbps,从而提供这样一种机制,该机制在不会很大程度上影响用户的重放质量体验的同时快速地适应带宽波动。
在一个可行实施方式中,可以使用附加的提示轨道(或较高等级的方框)对可用于支持特殊再现的各种选项进行描述。这种提示轨道(或方框)可以对MFD提供关于快进或倒带的速度(2x/4x/-2x/-4x等)的信息,同时提供关于相对帧偏移量的精确信息和在重放过程中将帮助客户端播放器的重放速率。
在一个可行实施方式中,还可以扩展提示轨道使用,以支持MFD侧的节目播放表。这些提示轨道可以提供关于需要在哪里插入广告或视频片段以及它们的精确的持续时间的信息。提示轨道还可以提供控制机制信息,例如,如果客户端播放器可以跳过或快进通过广告或视频片段。提示轨道还可以包含关于以下内容的信息:对于广告或视频片段的动态放置,如果需要,与哪个广告服务器联系。
MFD策略
a.管理员能够设置用于MFD的策略以在其上操作。例如,管理员可以希望使MFD服务尽可能多的客户端,或以服务许多个客户端的代价来服务HD内容并保持HD内容的质量。
b.可以将来自调度器202的反馈(关于任务已经晚了的时间量、已经晚了的任务的数量,或任何其他有用的度量)发送至服务器侧201和/或输出协议引擎210。服务器侧201可以使用该信息来调节其所服务的客户端的数量,或者甚至调节其传送至某些客户端的视频的质量,以解决传送等待时间。在某些带宽运行的某些客户端可以足够灵活,以动态地减小其带宽。
c.输出协议引擎210可以使用来自调度器202的信息,来拒绝任何新的客户端连接,直到调度器202向输出协议引擎210传递表明MFD已经用期望的传送效率充分地追赶上的统计数据为止。定义用什么标准进行这种判断的参数可以由管理员定义。这些参数可以包括,基于受到最后的传送或等待时间的量(例如,其存在错过截止时间的任务的数量)影响的客户端的数量来执行动作。
d.管理员可以配置原始服务器,以通知MFD关于其应与哪个内容服务器通信,以当MFD经历高速缓存缺失时检索内容。原始服务器可以命令原始管理器207通过使用特定协议而从特定内容服务器获得某些内容。原始服务器还可以定义MFD上的策略,以告诉原始管理器207哪个内容是可以高速缓存的以及必须从原始服务器获得什么内容,例如,很少请求的内容。
MFD扩展
MFD还可以在工厂是带宽限制的。可以将MFD设置为不超过某一峰值带宽或开放对话的数量。这允许MFD提供商销售某些级别的服务。如果用户需要较高的峰值带宽或较多的开放对话,则MFD提供商可以一定费用远程设置用户的MFD的峰值带宽或最大数量的开放对话,该费用可以是一次性费用或者循环费用。MFD还可以自动地超过最大带宽或最大数量的开放对话,并通知MFD提供商所超过的量。然后,MFD提供商可以针对所超过的量而对用户充值。这允许用户临时处理高活动性脉冲串(burst),并且,并非必须购买额外的MFD或MFD升级。
负载均衡器相互作用
典型地,存在与同位体MFD通信的负载均衡器。负载均衡器可以被配置为当请求针对特定URL时,向某一同位体MFD发送客户端请求。一个同位体MFD可以发送什么URL可为每个同位体MFD所用的表格。可选地,每个同位体MFD可以告诉负载均衡器其服务于哪些URL。负载均衡器可以从同位体MFD收集所有信息,并产生其自己的表格或数据库入口,以将客户端URL请求引导至正确的同位体MFD。负载均衡器可以使用基于URL和/或其他参数的哈希方案来确定MFD将URL请求引导至其中。这允许在同位体MFD中分配URL内容。
监控和统计用户界面
管理员等可以查看MFD的所存储的由服务器侧播放器201记录的统计数据,并且管理员等可以经由文本的或图形的表达看到如何执行MFD。媒体管理器204还记录高速缓存命中和缺失的数量以及什么内容是最流行的(热门内容)或最不流行的。媒体管理器204还可以记录其从中请求内容的原始服务器以及进行这种请求的次数。用户界面允许管理员观察图形或文本表达的内容性能数据。用户界面可以在特定的时间周期中或实时地提供任何记录的信息。
图形用户界面允许MFD使用统计信息,使得其可以相对于磁盘使用和内容存取来收集信息,以显示在视觉上表现以下任何内容的图表:
表现每个磁盘的最近数据检索次数的柱状图数据。
磁盘存取计数器。
每个磁盘的视频的数量。
自由空间的量。
所请求的视频的数量。
每个磁盘的所请求视频的数量。
每个磁盘的最近吞吐量。
缓冲器高速缓存中的命中/缺失。
各种缓冲器操作。
误差(来自媒体管理器统计数据、媒体请求等中)
所存储的视频的数量。
每个高速缓存的视频的数量。
所产生的视频的数量。
所删除的视频的数量。
媒体提供商的数量。
关于媒体提供商的元信息。
每个高速缓存级别(存储器、SSD、磁盘)以及原始源(HTTP、NFS等)所服务的带宽。
每个高速缓存装置(每个SSD或磁盘单元)所服务的带宽。高速缓存逻辑被设计为当工作量简档相对于内容而变化时,在装置上加载级别。
每个界面端口所服务的带宽和连接。
每个协议(HTTP、RTSP等)所服务的带宽和连接。
在一个可行实施方式中,用户可以配置与MFD的性能特性相关的参数。诸如服务器侧播放器和媒体管理器的部件记录由图形用户界面使用的性能统计数据,以向用户显示统计数据和图表。图13示出了一个可行实施方式中的用户界面屏幕,其中,用户可以指定参数,例如,AFR 1304或每个对话1305的最大比特率。用户还可以与用于名字空间的其URI1302和HTTP原始服务器1303的主机名称一起指定名字空间1301。
参考图14,在一个可行实施方式中,图形用户界面屏幕1400可以示出从高速缓存、原始服务器传输的字节1401以及随着时间传送至客户端的总字节1402的总数的实时图表。当MFD向客户端1403发送内容时,图形用户界面屏幕1400允许用户看到MFD的实际性能。用户可以定制MFD中的策略,以调节高速缓存存储,例如,以处理用户始终希望可用的某些热门内容。图形用户界面1400立即向用户表明其变化对MFD的影响。
图15示出了显示MFD的连接1501上的性能特性的图形用户界面的屏幕截图1500。
2.1.2媒体流导向器布局
图4示出了使用MFD 401代替现有视频服务器402的一个可行实施方式。现有视频服务器实现方式典型地为从一台原始服务器或一组原始服务器404中高速缓存内容的一组文件服务器403。在许多视频服务器403上映射(mirror)来自原始服务器404的内容。用户经由客户端访问入口服务器(portal server)405上的网页,以搜索视频内容。用户经由网页上的链接而从网页中选择视频。将URL发送至DNS服务器,该DNS服务器将URL解析为负载均衡器所负责的IP地址。客户端通过由客户端所使用的经解析的IP地址,以进行视频请求。在一组边缘路由器407中,路由器将请求路由至分配中心406中的负载均衡器。负载均衡器接收请求,并将URL请求转送至视频服务器群402中的视频服务器。URL请求可以告诉视频服务器客户端正期望的所请求的视频的比特率。视频服务器是不知道其正传送的文件的特性的文件服务器,除了知道其必须将一定比特率版本的视频发送至客户端的事实以外。典型地,名称和内容对视频服务器来说是不透明的。典型地,视频的每个比特率均为命名文件。视频服务器将视频文件流动至客户端,并尝试将视频传送至客户端,使得客户端的视频缓冲器不会变空。
客户端必须缓冲所接收的视频,以代替来自视频服务器的视频流中的延迟。客户端的缓冲器意味着给予用户连续的观看体验。假设视频服务器正向许多客户端服务大量的视频,由带宽的服务器溢出或由网络延迟所产生的传送延迟是频繁的,并且客户端缓冲器变空。结果,用户看到视频流停止播放,直到缓冲器开始再次填充为止,或者对于小视频文件,进行等待直到在视频开始播放之前将整个视频载入缓冲器为止。
在一个可行实施方式中,一个MFD具有实现超过10Gbps的吞吐量的能力,从而产生代替十个以上视频服务器的单个MFD。两个MFD 401可以代替一组20个视频服务器。MFD 401与原始服务器402通信,以当MFD接收URL内容(MFD在存储器中没有)的请求时,或者当MFD从原始服务器接收新的视频内容时,来获得视频内容。MFD直接代替视频服务器,并且入口服务器405、边缘路由器407和分配开关406的基础结构保持相同。
图5示出了MFD在边缘和/或原始位置的布局。在该实施例中,虚线是用于传统实现方式的数据通路。MFD可以被安装在内容所有者的位置501、CDN 502、506、内容整合位置504、或ISP。位置的任何组合可以安装有MFD,从而导致向客户端508进行更快且更可靠的内容传送。例如,当将两个MFD安装在ISP 507时,将MFD配置在ISP网络中的某处。这可以在群中的相同数据中心中,或在不同的数据中心中但在相同的ISP接入网络中。MFD可以彼此通信,以更有效地传送内容,因为如果MFD可以从相同的网络内检索内容,则这比从不同的和/或多个不同的网络上或从原始位置检索内容更有效。如果大内容整合体配置所有MFD私人传送网络,则甚至可以更有效地看到内容整合体,因为MFD可以甚至更有效地使用私人协议来处理高速缓存缺失处理、预升级、数据收集等。
当实现所有MFD实现方式时,由于MFD经由最有效的路线检索内容的能力,所以效率急剧地提高。
注意,在整个文本的实施方式描述中,已经使用了术语“视频内容”。可以用一直讨论的实施方式中的任何媒体类型代替术语“视频内容”,因为MFD适合于传送任何类型的内容文件,例如媒体(音频、图片等)、游戏、软件、HTML、脚本等。
2.2网络上的可变速率媒体传送
2.2.1平滑流视频架构
图16示出了一个可行实施方式,其示出了被配置为在网络上传送视频内容的媒体流导向器(MFD)101的数据流。视频内容文件被存储在可以由MFD 101接入的至少一个本地存储装置108上。对于某一视频内容,内容提供商可以提供包含视频内容的几个内容文件,其中,每个文件均以不同的比特率(例如100Kb、200Kb、500Kb、1Mb、2Mb等)被编码。在一个可行实施方式中,使用MFD 101,或者可选地,使用中央处理服务器预处理来自原始服务器的输入内容,以产生成块的文件图像,使得根据可配置的参数(例如,一秒,两秒等)按大小排列文件图像的每个组块。如下所述,组块的大小允许MFD 101中的服务器侧播放器(SSP)107在不同的比特率文件之间提供无缝过渡(平滑流)。在另一可行实施方式中,组块为逻辑块,它们具有由索引表或任何其他类型的数据结构所跟踪的边界。SSP 107以与处理物理组块几乎相同的方式来处理逻辑块。
在一个可行实施方式中,客户端视频播放器没有限制。客户端视频播放器可以是处理HTTP渐进式下载的标准视频播放器。不需要对播放器进行改进,以处理来自MFD 1601的渐进式下载。
客户端-MFD相互作用
在一个可行实施方式中,MFD 1601以具有对话绑定的双信道方法为基础。客户端播放器与MFD 1601建立媒体链路和控制链路,它们通过使用由客户端播放器所产生的唯一对话ID(SID)而被绑定在一起。当客户端播放器由于带宽波动的原因而使用控制链路向MFD 1601发出适当的适应点的信号时,通过使用媒体链路传送视频数据。控制信道可以被用作双向链路,以发送和接收请求/控制数据。
在一个可行实施方式中,用户点击网页上的文件链接以查看文件。例如,客户端启动客户端上的播放器,例如Flash播放器或Silverlight播放器。客户端播放器对每个对话产生唯一的SID,并将该ID作为查询参数与视频名称的请求一起提供给MFD 1601。在与MFD 1601的所有后续通信中使用该对话ID。在该实施例中,客户端播放器使用UID生成器1603产生用户ID,该用户ID是与客户端相关联的唯一ID。UID生成器1603例如可以使用伪随机数和当前时间(几秒和几毫秒,为ID的一部分)的组合,并可以将ID的长度限制为小于36字节。客户端播放器1602将UID与包含域和文件名称的文件请求1604组合。在一个可行实施方式中,还可以包括平滑流(sf)命令状态。在表1中示出了实施例命令状态。
在图16中的URI的实施例中,所请求的文件为foo_p00.flv,对话ID为AXGBF,并将sf设置为1。
表1平滑流状态表
所请求的文件是可以由任何HTTP服务器解释的标准HTTP文件请求。这允许由任何HTTP服务器处理所组合的HTTP请求。例如,如果MFD失败,则反馈位置可以向第三方内容服务器转发HTTP请求。第三方内容服务器会看到HTTP请求并忽略UID和sf命令状态,仅将文件发送至客户端播放器。这使MFD系统容易地集成在现有的内容传送系统中。
通过MFD 1601使用UID将媒体数据传送与从客户端播放器接收的任何控制数据绑定。
当MFD 1601接收HTTP请求时,其看到sf命令状态,并识别出该请求是平滑流请求。MFD 1601标记/识别与所提供的SID的连接,并建立在媒体信道和控制信道之间共享的对话对象。MFD 1601将URI映射至内部文件,并检索与所请求的文件相关联的MFD元数据文件。如果存在元数据文件,则服务器侧播放器(SSP)1607解析其内容,并将此对话中的平滑流状态设置为真。SSP 1607从元数据文件中提取以下信息,诸如可用的比特率、有多少视频文件是可用的、视频文件中的组块分割是怎样的、视频文件中的组块间隔有多小、视频文件中的总分割是怎样的等。
然后,MFD 1601开始将视频文件的第一组块发送至客户端播放器。MFD 1601具有视频传送环路模式,其中,当发现一个组块被传送时,MFD1601发出下一个组块。请求SSP 1607重新映射并提供下一个组块的URI,使得MFD 1601可以在该连接上发送下一个组块的数据。例如,第一组块的文件名为foo_p00_c0000000001.flv。SSP 1607随后重新映射URI,以根据请求读取下一个组块,以通过使用文件名foo_p00_c0000000002.flv在该连接上进行发送。在服务下一个组块之前,SSP检查共享的对话对象的状态,该对话在媒体和控制信道之间共享,以检查控制信道是否已经改变了共享的对话对象中的任何参数的状态。这样继续下去直到重放持续时间结束为止。注意,MFD 1601可以适应任何渐进式下载机制,以适应整个发明所描述的带宽变化。
如果不存在元数据文件,则SSP 1607通过将平滑流状态设置为假,来证明针对该文件并不支持平滑流。SSP 1607可以将这看作为高速缓存缺失,并启动预处理触发器,以为未来的请求准备平滑流的内容。然后,SSP1607可以开始服务一种文件,该文件处于由用户/内容提供商向客户端播放器提供的默认比特率。
当后续控制连接以相同的SID进入时,针对客户端请求XML文件。当“sf”状态参数具有“2”的值时,请求客户端元数据文件。MFD检查用于平滑流标记的对话对象状态,并将根据状态读取XML文件,如果存在的话进行传送(表示我们支持平滑流),或者拒绝提供未找到文件的响应(表示不支持平滑流)。该XML文件告知可用于此资源的各种简档的播放器。如果客户端接收XML文件,则其在未来可以明确地针对相关的适应简档进行请求。通过使用表1,适应请求由被接受为3的值的sf状态参数来表示。
2.2.2不同比特率之间的过渡
在一个可行实施方式中,客户端播放器可以被配置为能够向MFD1601发送控制命令。客户端播放器可以使用控制通路1605对来自MFD1601的XML文件创建HTTP请求。HTTP请求包含之前由UID生成器1603产生的UID。MFD 1601看到,HTTP请求是针对描述可用的比特率和特征的XML文件。如由HTTP请求中的UID所指示的,MFD 1601在与视频传送对话相关联的MFD元数据中查找。MFD 1601检索XML文件,并将其发送至客户端播放器。
一旦客户端播放器接收到XML文件,客户端播放器就具有告诉MFD在比特率之间切换的能力。在一个可行实施方式中,一个应用存在于可监测客户端上的资源(例如带宽、CPU资源、存储器资源等)的客户端上。例如,该监测应用可以检测客户端是否带宽不足或者是否已经增加带宽。然后,客户端可以通过使用控制通路1605告诉MFD 1601经由HTTP请求(包含之前由UID生成器1603产生的UID)切换比特率。HTTP请求可以包含sf命令状态,该sf命令状态告诉MFD 1601简档(pf)请求跟随。MFD 1601看到已被请求的pf。如果所请求的pf在MFD元数据中存在,则MFD 1601改变所传送的视频的简档。
当MFD 1601到达视频传送环路中的将传送下一个组块的点时,其可以看到,针对视频已经改变了简档。MFD 1601查找用于视频高速缓存/存储的新的比特率,并找到与假设在之前的简档中被传送的组块相对应的组块。然后,MFD 1601将与所修订的简档相对应的新的重新映射的组块发送至客户端播放器。
客户端播放器仅播放所接收的组块。用户不会注意到任何丢失的帧或中止,因为客户端播放器已经以客户端播放器所需的传送速率接收了组块。比特率之间的过渡对用户和客户端播放器都是无缝的。
在一个可选的可行实施方式中,MFD 1601可以检测客户端和MFD1601之间的任何带宽变化。MFD 1601使用例如TCP堆栈中的往返时间(RTT),来监测MFD 1601和客户端之间的带宽延迟,以估计对客户端的最后一英里比特率变化。RTT时间告诉MFD 1601是否在线下存在拥塞。
使用RTT,MFD 1601可以估计MFD 1601和客户端之间的可用带宽。如果有效带宽已经改变,则MFD 1601可以针对带宽变化调节比特率。例如,如果已经提高带宽,则MFD 1601可以发送更高比特率的视频,或者如果已经降低带宽,则MFD 1601可以向客户端发送更低比特率的视频。
当MFD 1601已检测到带宽变化时,其可以查看用于视频的MFD元数据,并找到可用于视频且适于可用带宽的比特率。MFD 1601可以如上所述地改变视频的简档。
当MFD 1601到达视频传送环路中的将传送下一个组块的点时,可以看到,针对视频已改变简档。MFD 1601查找用于新比特率的视频高速缓存/存储,并找到与假设在之前的简档中被传送的组块相对应的组块。然后,MFD 1601将与所修订的简档相对应的新的重新映射的组块发送至客户端播放器。
在另一可行实施方式中,可以将客户端资源监测和MFD 1601带宽监测相组合。客户端可以监测客户端上的资源,例如CPU资源、存储器资源等。如果客户端检测到资源指出客户端显示视频的能力减小或增大,则客户端可以告诉MFD 1601如上所述地经由HTTP请求来切换比特率。MFD 1601看到已被请求的pf。如果所请求的pf在MFD元数据中存在,则MFD 1601改变所传送的视频的简档。
在MFD侧,MFD 1601可以如上所述地检测带宽变化。其可以查看用于视频的MFD元数据,并找到可用于视频且适于可用带宽的比特率。然后,MFD 1601可以改变视频的简档。
如上所述,当MFD 1601发现简档已经改变时,其改变视频的比特率。MFD 1601查找用于新的比特率的视频高速缓存/存储,并找到与假设在之前的简档中传送的组块相对应的组块。然后,MFD 1601将与所修订的简档相对应的新的重新映射的组块发送至客户端播放器。
MFD 1601带宽检测和客户端侧资源监测的组合提供了用于正被传送和正被显示的视频的比特率的更好控制。
服务器侧播放器
服务器侧播放器1607针对每个视频流主要负责特定视频逻辑的封装和执行。当针对视频流向MFD 1601进行请求时,这种执行可以出现在入站侧(inbound side),或者当正要传送特定视频流时,这种执行可以出现在出站侧。
服务器侧播放器1607解释从输出协议引擎接收的URI,决定什么比特率用于所请求的视频内容、处理将发送什么、以及从哪里播放视频(从视频内的哪一帧开始流动)。服务器侧播放器1607对比特率很清楚,并知道其尝试服务的视频内容的比特率。其可以使用从最优化网络堆栈中获得的信息,以找出什么样的有效带宽可用于最后一英里的客户端。服务器侧播放器1607还可以批准该请求。
与不知道视频文件格式或视频内容是什么的一般文件服务器相反,服务器侧播放器201对视频很清楚。当服务器侧播放器1607在视频已经开始之后改变比特率时,服务器侧播放器1607已经知道相关联的帧存在于不同的比特率版本中的什么地方,因此,服务器侧播放器1607可以容易地改变比特率,而无需客户端必须针对新的比特率发送不同的偏移量。一个可行实施方式针对特定的视频内容而存储了几个不同的比特率版本。服务器侧播放器1607为每个比特率版本存储索引表,因此,服务器侧播放器1607可以快速地查阅一个表以为新的比特率视频找到相关联的帧。
文件元数据
内容文件被存储在可接入MFD 1601的至少一个本地存储装置上。内容提供商为MFD提供与已由其提供的每组视频文件相关联的元数据文件。元数据描述任何元数据文件(例如,XML数据文件)的名称,这些元数据文件可用于下载至客户端视频播放器,该客户端视频播放器例如向视频播放器描述可用于视频内容的比特率和/或可以被发送至MFD的特殊再现特征命令。元数据还告诉MFD 1601与每个可用比特率相关联的视频文件的文件名。
MFD 1601针对包含由内容提供商提供的元数据的一组视频文件而保持其自身的一组元数据。MFD元数据格式是可扩展的。诸如特殊再现特征的特征可以容易地被添加至元数据。每个特征均可以具有标签标题,该标签标题可以具有该特征所需的所有字段和对该特征可能需要的数据集的偏移量。该数据可以由文件顶部的类属标题(generic header)来引导。标题可以具有关于由其特征标识符在特定元数据文件中支持的特征的数量的信息。该信息可以由MFD 1601直接使用,以快速地移动至所需特征标签并从那里移动至数据集。
MFD 1601还创建告诉客户端播放器关于可用于一组视频文件的各种简档的客户端元数据文件。
在比特率过渡期间出现的伪像(artifact)
当从一个比特率流切换至另一个比特率时,可能出现伪像。在一个可行实施方式中,可以以这样的方式编码视频数据,使得在组块之间存在视频数据的重叠。当之前的组块进入重叠区域本身时,没有重现(render),开始下一个组块的初始化和重放。当出现实际的组块过渡时,减少/去除帧抖动。可以通过在预定的组块边界处切换视频的比特率,来实现平滑流。为了将抖动最少化,SSP 1607对其将切换至的组块的一部分预加载;这使得组块过渡是无缝的。为了完成这一点,SSP 1607在内部使用定时器,当达到可配置的阈值时,定时器触发下一个组块的预加载。另外,对于MP4文件,在对视频背景的解码和重现中存在有限的延迟。为了克服这一点,GUI具有两个视频背景,一个具有当前重放的组块,另一个视频背景用于预加载的流。然后,在组块边界处交换这些视频对象。
2.2.3网络中的媒体流导向器
参考图17,示出了MFD 1702、1703网络应用的两个实施例。在一个实施例中,对平滑流处理器1706a和边缘服务器1711分配MFD 1702的任务。发布系统1704(在下文中描述)允许内容提供商准备用于平滑流传送的文件。内容提供商通过使用发布系统1704产生用于某一内容的多比特率文件。文件可以被存储在用作存储库(其中,该文件与其他内容文件一起被存储)的原始服务器1703上。
MFD 1702中的边缘服务器1711在网络连接(例如因特网、内联网等)上服务对来自客户端播放器1710d、1710e的视频数据的请求。当来自客户端播放器的内容的请求导致高速缓存缺失时,边缘服务器1711作用于高速缓存缺失触发器,并向平滑流处理系统1706a发送对内容的请求。平滑流处理系统1706获得与来自原始服务器1703的内容相关联的文件。在一个可行实施方式中,平滑流系统1706a可以仅向边缘服务器1711传递用于内容的默认文件,以使边缘服务器1711尽可能快地对请求的客户端播放器服务内容。如下文对较迟的客户端播放器请求所描述的,平滑流处理系统1706a有时间来预处理内容文件。预处理使得能够实现用于该内容的比特率切换和特殊再现功能。一旦文件被预处理,平滑流处理系统1706a就将预处理的文件发送至边缘服务器1711,以将其存储在与边缘服务器1711相通信的一个或多个存储装置上。
在一个可行实施方式中,触发器可以以预处理请求为基础。预处理请求是这样的请求,其中,甚至在边缘服务器1711从客户端播放器接收对内容的请求之前,用户可以将触发器特定地发送至边缘服务器1711,以预处理并输入内容。边缘服务器1711作用于预处理的触发器,并向平滑流处理系统1706a发送对内容的请求。平滑流处理系统1706a获得与来自原始服务器1703的内容相关联的文件。平滑流处理系统1706a如下所述地预处理这些内容文件。一旦已对这些文件预处理,平滑流处理系统1706a就将预处理的文件发送至边缘服务器1711,以将其存储在与边缘服务器1711通信的一个或多个存储装置上。
在第二实施例中,MFD 1703作为中心平滑流内容服务器对与MFD1703通信的其他MFD边缘服务器1709a至1709c进行操作。在内容提供商完成与发布系统1704上的内容相关联的文件的产生之后,发布系统1704将内容文件推送至MFD 1703中的原始存储系统1705。原始存储系统1705是所发布的文件的存储库。
平滑流处理系统1706b从原始存储系统1705获得用于预处理的文件。平滑流处理系统1706b如下所述地预处理内容文件。预处理使得能够实现用于该内容的比特率切换和特殊再现功能。一旦对这些文件进行了预处理,平滑流处理系统1706b就将预处理的文件发送至原始服务器1707,以将其存储在与原始服务器1707通信的一个或多个存储装置上。原始服务器1707存储用于分配至边缘服务器的预处理的内容文件。
边缘服务器1709a至1709b在网络连接(例如因特网、内联网等)上服务对来自客户端播放器210a至210c的视频数据的请求。边缘服务器1709a至1709c与很多客户端播放器相通信。边缘服务器1709a至1709c在网络连接(例如,因特网、内联网等)上还与MFD 1703通信。当对来自客户端播放器(例如,客户端播放器210a)的内容的请求在边缘服务器(例如,边缘服务器1709a)上导致高速缓存缺失时,边缘服务器作用于高速缓存缺失触发器,并将对内容的请求发送至MFD 1703中的原始服务器1707。原始服务器1707将预处理的平滑流内容文件发送至边缘服务器1709a。边缘服务器1709a通过使用预处理的平滑流内容文件而向请求的客户端播放器210a服务内容。
在一个可行实施方式中,与以上的实施例一样,触发器可以以预处理请求为基础。甚至在边缘服务器从客户端播放器接收对内容的请求之前,用户可以将触发器特定地发送至边缘服务器1709a至1709c中的任何一个,以预处理并输入内容。原始服务器1707将预处理的平滑流内容文件发送至请求的边缘服务器。边缘服务器将预处理的平滑流内容文件存储在与边缘服务器通信的至少一个存储装置上。
2.2.4准备平滑流文件
参考图18,示出了MFD 1601中的内容文件的平滑流预处理的可行实施方式。可以以两种方式触发内容文件(摄取)的读取和预处理。第一种方式是,对于对内容的预处理的特定请求,通过使用来自表1的特定sf查询参数而出现1803。在该输入形式中,MFD 1601特定地接收请求,以触发/开始来自发布商的平滑流内容的预处理/输入。MFD 1601将该请求内部地分解为相关的名字空间,并且如果所指定的虚拟播放器类型与平滑流播放器类型相匹配,则通过识别sf的状态,在该情况下,为“4”,MFD 1601能够启动预分级(pre-stage)处理。
第二种方式是,由对内容的客户端播放器请求所导致的高速缓存缺失1804。在该输入形式中,MFD 1601不能读取内部元数据文件,此时其重新映射请求,以服务常规的单比特率视频文件。由于MFD 1601知道平滑流资源对于该视频来说是不可用的,所以其在内部产生请求,以启动对该内容的预分级处理。VPE-Q保持跟踪文件(排队以由其处理)的哈希表。如果复制对平滑流的请求,则如果存在对VPE-Q中的资源的入口(处于排队、已处理或正处理状态中),MFD自动地拒绝。
为了处理内容文件,MFD 1601具有视频处理引擎队列(VPE-Q),其作为端口监督程序(daemon)而运行,以处理对VPE模块特定的请求,并基于提供有队列元素的信令属性将这些请求引导至相关的模块。
触发器和高速缓存缺失摄取命令在用于处理的VPE-Q流水线中产生队列请求。端口监督程序处理每个排队的元素,并调用启动预处理输入工作流程的外部模块1806。如果预处理作业报告指示误差,则外部模块1806具有固定数量的重试以校正该情形。当外部模块用完尝试时,其向VPE-Q管理器1805返回无法为平滑流准备元素的消息。然后,SSP 1607自动地回到用于该资源的单比特率传送机制。
VPE-Q管理器1805为外部模块1806提供必需的参数,以启动摄取过程。外部模块1806读取内容提供商所提供的描述其发布的内容的元数据文件。一旦接收到文件,外部模块1806就解析文件中的数据,以获得关于多比特率文件的数量的信息。外部模块1806随后检索各个视频文件。
外部模块1806调用预处理模块1807。预处理模块1807重新使文件集装箱化(containerize),以推荐的或配置的间隔打碎文件,并产生各个视频文件的多个组块/碎片作为其输出。预处理模块1807产生MFD内部元数据、客户端xml元文件,以及每个请求的作业状态报告。外部模块1806将所有碎片排队成MFD 1601的文件管理器队列(FMGR),以高速缓存输入至MFD高速缓存层级1802中。
参考图19,示出了预处理引擎1808数据流结构中的VPE-Q管理器1805。预处理引擎1808的输入可以经由外部模块1806,而外部模块1806由VPE-Q管理器1805控制。预处理引擎1808经由用于平滑流、特殊再现等的MFD 1601准备用于特征丰富传送的视频数据。对平滑流的准备处理包括,解析输入视频数据包并识别最接近(在时间尺度上)预配置的平滑流周期的I帧。这些点被称作同步点。然后,根据每个FLV V9.0格式规格,将这些同步点处的视频包集装箱化为叫做“组块”的分离视频对象。
预处理引擎1808完全设计为与插件(plugin)1905一起起作用。编码译码器处理1909和I/O处理1906均是基于插件的。通过实现由预处理引擎1808暴露的适当接口,可以容易地增加更多编码译码器,以与平滑流传送系统相符。同样地,该系统可以通过符合I/O接口,而在基于缓冲器1908或基于文件/磁盘1907的I/O之间无缝地切换。任何编码译码器接口1910至1912均能够将数据处理成可分别解码的数据组块,这些数据组块可以被附加为以产生固定的流或者可以独立地播放。编码译码器结构还可以产生附加的元数据,以用平滑流传送框架提供如特殊再现的附加特征。
在一个可行实施方式中,视频数据被存储为可以以任何顺序组合的构件块(不均匀地,意味着可以混合任意多个这些构件块,以形成不均匀的流),以构造所述流,而接收器不知道该顺序并且没有需要明确证明的变化。可以任何顺序组合数据,以传送除平滑流以外的特征。例如:
特殊再现——其中,基于特殊再现请求的速度和方向,仅以特定顺序组合I帧。
广告插入——其中,可以无缝地组合或混合广告。
通过改变插入的音频包来选择音频语言。
现场流——通过将数据实时地转换为构件块,并在PDL上的电线上对它们进行传输。
预处理引擎1808可以产生准备好的视频数据、用于服务器的元数据、用于客户端的元数据,以及给出每个作业的状态的作业状态报告。作业状态报告可以在简单的文本文件中汇报以下内容:
所处理的简档的数量
所处理的总数据
用于处理所花费的时间
处理数据的速率
错误代码(如果有的话)
视频文件结构
参考图20,示出了FLV 2001和MP4 2002文件结构。在FLV文件格式2001中,标题信息横跨在整个文件上,而对于MP4文件2002,整个标题信息2010适当地集中在开始处。与MP4格式相比,这种形式的标题布局使得FLV格式对渐进式下载非常好。在一个可行实施方式中,由于由FLV结构所提供的固有的优点,将H.264/AAC内容存储在FLV容器中而不是存储在MP4中,可以在平滑流传送框架方面给予帮助。以下是渐进式下载方面的两种格式之间的几个特征,用于进行比较:
当将H.264内容存储在FLV中时,没有质量损失。在比特方面,数据是精确地相同的。当将该数据以FLV格式存储时,在文件大小上存在微小的系统开销。
作为平滑流工作流程的一部分,使用与内容提供商/发布商、MFD和客户端播放器相关的三种不同类型的元数据规格。下面的文本描述了以下细节:
用户媒体资产描述规格
Nokeena内部规格
客户端播放器XML元数据规格
媒体资产需要被输入至MFD系统中,使得经由预分级机制或通过高速缓存缺失机制能够进行基于平滑流的传送。由于在平滑流情况中媒体资产为比特率不同的一组视频序列,所以关于对其命名和分组应存在标准化。资产的所有者发布附加的元数据,以帮助预处理和传送过程。可以以下面的格式将元数据发布为简单的文本文件:
版本:major.minor
流:3
关键帧间隔:“n”秒
帧速率:“x”fps
序列持续时间:“n”秒
视频编码格式:{.236\VP6\.264}
音频编码格式:{.aac\.mp3}
容器格式:{.flv\.mp4}
速率:Br1<kbps>
URI:http://media<dot>nokeena<dot>com/foo_p01.flv
速率:Br2<kbps>
URI:http://media<dot>nokeena<dot>com/foo_p02.flv
速率:Br3<kbps>
URI:http://media<dot>nokeena<dot>com/foo_p03.flv
元数据文件可以包含以下信息块:
-简档/流的数量
-每个流的总比特率<Br(kbps)>
-用于每个流的URI
-关键帧间隔(n秒)
以上实施例使用FLV作为一个实例,但也支持MP4。
参考图21,在一个可行实施方式中,预处理引擎准备输入视频数据,以支持如同平滑流的各种特征。预处理包括重新格式化内容并增加特征特定的元数据。
每个特征均具有标签标题,其可以具有该特征所需的所有字段和对其可能需要的数据集的偏移量。该数据可以由文件顶部处的类属标题2102来引导。标题具有关于特征的数量的信息,这些特征在具有其特征标识符的特定元数据文件中得到支持。该信息可以直接被用于快速地移动至所需特征标签并从该特征标签移动至该数据集。
类属标题2102
特征表(nkn_feature_table)
特征TAG 2103,2105
特征标签
平滑流
客户端播放器XML元数据规格
以下示出了用于客户端元数据规格的概要的一个实施例:
3.0实现机制——硬件概述
图6是示出了可以在其上实现本发明的一个实施方式的计算机系统600的结构图。计算机系统600包括总线602或用于传达信息的其他通信机构,以及与总线602相耦接的用于处理信息的处理器604。计算机系统600还包括主存储器606,例如,随机存取存储器(RAM)或其他动态存储装置,其与总线602接合,用于存储将由处理器604执行的信息和指令。主存储器606还可以用于在执行将由处理器604执行的指令的过程中存储临时变量或其他中间信息。计算机系统600进一步包括只读存储器(ROM)608或与总线602耦接以用于存储静态信息和处理器604的指令的其他静态存储装置。提供存储装置610(诸如磁盘或光盘),并将它们耦接至总线602,以存储信息和指令。
计算机系统600可以经由总线602而耦接至用于向计算机用户显示信息的显示器612(例如,阴极射线管(CRT))。输入装置614(包括字母数字和其他键)耦接至总线602以向处理器604传达信息和命令选择。另一种类型的用户输入装置为光标控制616,诸如鼠标、跟踪球,或者,用于向处理器604传达方向信息和命令选择并用于控制显示器612上的光标运动的光标方向键。该输入装置通常在两个轴(第一轴(例如x)和第二轴(例如y))中具有两个自由度,其允许装置指定平面中的位置。
本发明涉及用于执行本文所描述的技术的计算机系统600的使用。根据本发明的一个实施方式,通过计算机系统600响应于处理器604执行包含在主存储器606中的一个或多个指令的一个或多个序列,而执行这些技术。可以将这些指令从另一机器可读介质(例如,存储装置610)读入主存储器606。包含在主存储器606中的指令序列的执行使得处理器604执行本文所描述的处理步骤。在可选实施方式中,可以用硬连线电路代替该处理器或与软件指令相结合,以实现本发明。因此,本发明的实施方式不限于硬件电路和软件的任何特定组合。
本文中所使用的术语“机器可读介质”指的是参与提供使机器以特定方式操作的数据的任何介质。在使用计算机系统600所实现的实施方式中,各种机器可读的介质例如均涉及向处理器604提供指令以执行。这种介质可以采用很多形式,包括但不限于存储介质和传输介质。存储介质包括非易失性介质和易失性介质。非易失性介质例如包括诸如存储装置610的光盘或磁盘。易失性介质包括动态存储器,例如主存储器606。传输介质包括包含电线(包括总线602)的同轴电缆、铜线和光纤。传输介质也可以采用声波或光波的形式,例如那些在无线电波和红外数据通信过程中产生的声波或光波。所有这些介质必须确实使得能够通过将指令读入机器的物理机构来检测由介质所携带的指令。
机器可读介质的一般形式包括例如软盘、软磁盘、硬盘、磁带,或任何其他磁性介质、CD-ROM、任何其他光学介质、穿孔卡、纸带、任何其他具有孔的图案的物理介质、RAM、PROM,以及EPROM、FLASH-EPROM、任何其他存储芯片或盒式磁带,或计算机可读取的任何其他介质。
各种形式的机器可读介质均可以涉及将一个或多个指令的一个或多个序列运送至处理器604以用于执行。例如,指令在初始被承载在远程计算机的磁盘上。远程计算机可以将指令载入其动态存储器中,并使用调制解调器而在电话线上发送指令。计算机系统600本地的调制解调器可以在电话线上接收数据,并使用红外发射器将数据转换成红外信号。红外检测器可以接收承载在红外信号中的数据,并且适当的电路可以在总线602上放置数据。总线602将数据运送至主存储器606,处理器604从该主存储器中进行检索并执行指令。可选地,由主存储器606接收的指令在由处理器604执行之前或之后可以被存储在存储装置610上。
计算机系统600还包括耦合至总线602的通信接口618。通信接口618提供耦接至与本地网络622连接的网络链路620的双向数据通信。例如,通信接口618可以是综合业务数字网络(ISDN)卡或调制解调器,以对相应类型的电话线提供数据通信连接。作为另一实施例,通信接口618可以是局域网(LAN)卡,以向兼容的LAN提供数据通信连接。还可以实现无线链路。在任何这种实现方式中,通信接口618发送并接收电信号、电磁信号或光信号,它们均携带代表各种类型的信息的数字数据流。
网络链路620典型地通过一个或多个网络向其他数据装置提供数据通信。例如,网络链路620可以通过局域网622对主机624或对由因特网服务提供商(ISP)626操作的数据设备提供连接。然后,ISP 626通过世界包数据通信网络(现在一般叫做“因特网”)628提供数据通信服务。本地网622和因特网628均使用携带数字数据流的电信号、电磁信号或光信号。
计算机系统600可以通过网络、网络链路620和通信接口618发送消息并接收数据(包括程序代码)。在因特网实施例中,服务器630可以通过因特网628、ISP 626、本地网622和通信接口618发射用于应用程序的所请求的代码。
当接收到代码时,可以通过处理器604来执行所接收的代码,和/或将代码存储在存储装置610或其他非易失性存储器中以在以后执行。
4.0实施例
在一个实施方式中,一种方法或一种携带一个或多个指令序列的计算机可读存储介质包括,其中,利用一个或多个处理器执行一个或多个指令序列使得一个或多个处理器执行以下步骤:在服务器处从客户端系统接收对媒体内容的请求;通过服务器将所请求的媒体内容的被编码为第一比特率的部分传送至客户端系统;在服务器处确定:可以将传送所请求的媒体内容的被编码为第一比特率的部分改变为传送所请求的媒体内容的编码为第二比特率的部分;一经确定可以将传送所请求的媒体内容的被编码为第一比特率的部分改变为传送所请求的媒体内容的被编码为所述第二比特率的部分,所述传送步骤就停止将所请求的媒体内容的编码为第一比特率的部分传送至客户端系统,并开始将所请求的媒体内容的被编码为第二比特率的部分传送至客户端系统。
在一个实施方式中,一种方法或计算机可读存储介质还包括:在服务器处确定服务器和客户端系统之间的可用带宽已经改变;其中,可用带宽确定步骤通知传送确定步骤服务器和客户端系统之间的可用带宽已经改变。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括,其中,客户端系统规定第二比特率。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括在客户端系统处接收来自服务器的用于所请求的媒体内容的可用比特率和特征,其中,客户端系统从所接收的可用比特率中选择第二比特率。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括:将多个媒体内容文件存储在与所述服务器通信的至少一个存储装置上;其中,至少一个存储装置包含所请求的媒体内容的被编码为第一比特率的部分和所请求的媒体内容的被编码为第二比特率的部分。
在一个实施方式中,一种方法或计算机可读存储介质还包括:当将所请求的媒体内容的被编码为第二比特率的部分传送至客户端系统时,对所述部分进行编码。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括,其中,传送步骤从所请求的媒体内容中的、已经停止传送所请求的媒体内容的被编码为所述第一比特率的部分的点,开始传送所请求的媒体内容的被编码为第二比特率的部分。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括,其中,传送步骤参考索引找到在所请求的媒体内容中被编码为第二比特率的媒体帧,该媒体帧与其中停止传送所请求的媒体内容的被编码为第一比特率的部分的媒体帧相关联,并且其中,传送步骤从所请求的媒体内容中的被编码为第二比特率的相关联媒体帧,开始传送所请求的媒体内容的被编码为第二比特率的部分。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括:其中,传送步骤在所请求的媒体内容的被编码为第一比特率的媒体部分组块的末尾处停止传送所请求的媒体内容的被编码为第一比特率的部分,并开始从所请求的媒体内容中的被编码为第二比特率的媒体部分组块的起点处传送所请求的媒体内容的被编码为第二比特率的部分,所请求的媒体内容中的被编码为第二比特率的媒体部分组块的起点与所请求的媒体内容的被编码为第一比特率的媒体部分组块的末尾在时间上是连续的。
在一个实施方式中,一种方法或一种计算机可读的存储介质还包括:当将所请求的媒体内容的部分传送至客户端系统时,传送作为所请求的媒体内容的部分的一部分的替代内容。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括,其中,当从原始服务器接收到所请求的媒体内容的被编码为所述第一比特率的部分时,传送步骤传送所请求的媒体内容的被编码为第一比特率的部分。
在一个实施方式中,一种方法或一种计算机可读的存储介质还包括:其中,对从原始服务器接收的被编码为第一比特率的所请求的媒体内容进行排队,以由服务器编码成第二比特率。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括:其中,所请求的媒体内容为音频内容。
在一个实施方式中,一种方法或一种计算机可读存储介质还包括:其中,所请求的媒体内容为视频内容。
在一个实施方式中,一种设备包括:媒体传送请求接收器,在服务器上接收来自客户端的对媒体内容的请求;媒体内容传送子系统,在服务器上将所请求的媒体内容的被编码为第一比特率的部分传送至所述客户端系统;比特率过渡确定子系统,在服务器上确定可以将传送所请求的媒体内容的被编码为第一比特率的部分改变为传送所请求的媒体内容的被编码为第二比特率的部分;一经确定将传送所请求的媒体内容的被编码为第一比特率的部分改变为传送所请求的媒体内容的被编码为第二比特率的部分,媒体内容传送子系统就停止向客户端系统传送所请求的媒体内容的被编码为第一比特率的部分,并开始向客户端系统传送所请求的媒体内容的被编码为第二比特率的部分。
在一个实施方式中,一种设备还包括带宽确定子系统,在服务器上确定服务器和客户端系统之间的可用带宽已经改变;其中,带宽确定子系统通知比特率过渡确定子系统服务器和客户端系统之间的可用带宽已经改变。
在一个实施方式中,一种设备还包括,其中,客户端系统规定第二比特率。
在一个实施方式中,一种设备还包括媒体内容描述接收器,在客户端系统上接收来自服务器的用于所请求的媒体内容的可用比特率和特征;其中,客户端系统从所接收的可用比特率中选择第二比特率。
在一个实施方式中,一种设备还包括与所述服务器通信的用于存储多个媒体内容文件的至少一个存储装置;其中,至少一个存储装置包含所请求的媒体内容的被编码为第一比特率的部分和所请求的媒体内容的被编码为第二比特率的部分。
在一个实施方式中,一种设备还包括,其中,当将所请求的媒体内容的被编码为第二比特率的部分传送至客户端系统时,媒体内容传送子系统对该部分进行编码。
在一个实施方式中,一种设备还包括,其中,媒体内容传送子系统从所请求的媒体内容中的、已经停止传送所请求的媒体内容的被编码为第一比特率的部分的点,开始传送所请求的媒体内容的被编码为第二比特率的部分。
在一个实施方式中,一种设备还包括,其中,媒体内容传送子系统参考索引找到在所请求的媒体内容中的被编码为所述第二比特率编码的媒体帧,所述媒体帧与其中停止传送所请求的媒体内容的被编码为第一比特率的部分的媒体帧相关联,并且其中,媒体内容传送子系统从所请求的媒体内容中的被编码为第二比特率编码的相关联媒体帧开始传送所请求的媒体内容的被编码为第二比特率的部分。
在一个实施方式中,一种设备还包括,其中,媒体内容传送子系统在所请求的媒体内容的被编码为第一比特率的媒体部分组块的末尾处停止传送所请求的媒体内容的被编码为第一比特率的部分,并开始从所请求的媒体内容中的被编码为第二比特率的媒体部分组块的起点处传送所请求的媒体内容的被编码为第二比特率的部分,所请求的媒体内容中的被编码为第二比特率的媒体部分组块的起点与所请求的媒体内容的被编码为第一比特率的媒体部分组块的末尾在时间上是连续的。
在一个实施方式中,一种设备还包括,其中,当将所请求的媒体内容的部分传送至客户端系统时,媒体内容传送子系统传送作为所请求的媒体内容的部分的一部分的替代内容。
在一个实施方式中,一种设备还包括,其中,当从原始服务器接收所请求的媒体内容的被编码为第一比特率的部分时,媒体内容传送子系统传送所请求的媒体内容的被编码为第一比特率的部分。
在一个实施方式中,一种设备还包括,其中,对从原始服务器接收的被编码为第一比特率的所请求的媒体内容进行排队,以由服务器编码成所述第二比特率。
在一个实施方式中,一种设备还包括,其中,所请求的媒体内容为音频内容。
在一个实施方式中,一种设备还包括,其中,所请求的媒体内容为视频内容。
5.0扩展和变形
在上述说明书中,已经参考每个实现方式可能均不同的许多具体细节描述了本发明的实施方式。因此,本发明是什么并且申请人旨在针对本发明的唯一且独有的指标是由本申请产生的这组权利要求,在这些权利要求产生的具体形式下,其包括任何后续的校正。本文中针对包含在权利要求中的术语所清晰阐述的定义,应规定如权利要求中所使用的这些术语的意义。因此,没有限制地,在权利要求中并未清楚叙述的元素、特性、特征、优点或属性不应以任何方式限制这种权利要求的范围。相应地,将说明书和附图均看作是说明性的而不是限制性的。
Claims (28)
1.一种用于在网络上将可变比特率媒体内容动态地传送至多个客户端系统的方法,包括:
在服务器处接收来自客户端系统的对媒体内容的请求;
通过所述服务器将所请求的媒体内容的被编码为第一比特率的部分传送至所述客户端系统;
在所述服务器处确定,可以将传送所请求的媒体内容的被编码为所述第一比特率的部分改变为传送所请求的媒体内容的被编码为第二比特率的部分;
一经确定可以将传送所请求的媒体内容的被编码为所述第一比特率的部分改变为传送所请求的媒体内容的被编码为所述第二比特率的部分,所述传送步骤就停止将所请求的媒体内容的被编码为所述第一比特率的部分传送至所述客户端系统,并开始将所请求的媒体内容的被编码为所述第二比特率的部分传送至所述客户端系统。
2.根据权利要求1所述的方法,还包括:
在所述服务器处确定所述服务器和所述客户端系统之间的可用带宽已经改变;
其中,所述可用带宽确定步骤通知所述传送确定步骤所述服务器和所述客户端系统之间的可用带宽已经改变。
3.根据权利要求1所述的方法,其中,所述客户端系统规定所述第二比特率。
4.根据权利要求3所述的方法,还包括:
在所述客户端系统处接收来自所述服务器的用于所请求的媒体内容的可用比特率和特征;
其中,所述客户端系统从所接收的可用比特率中选择所述第二比特率。
5.根据权利要求1所述的方法,还包括:
将多个媒体内容文件存储在与所述服务器通信的至少一个存储装置上;
其中,所述至少一个存储装置包含所请求的媒体内容的被编码为所述第一比特率的部分和所请求的媒体内容的被编码为所述第二比特率的部分。
6.根据权利要求1所述的方法,还包括:
当将所请求的媒体内容的被编码为所述第二比特率的部分传送至所述客户端系统时,对所述部分进行编码。
7.根据权利要求1所述的方法,其中,所述传送步骤从所请求的媒体内容中已经停止传送所请求的媒体内容的被编码为所述第一比特率的部分的点,开始传送所请求的媒体内容的被编码为所述第二比特率的部分。
8.根据根据权利要求7所述的方法,其中,所述传送步骤参考索引找到在所请求的媒体内容中的被编码为所述第二比特率的媒体帧,所述媒体帧与其中停止传送所请求的媒体内容的被编码为所述第一比特率的部分的媒体帧相关联,并且其中,所述传送步骤从所请求的媒体内容中的被编码为所述第二比特率的相关联媒体帧开始传送所请求的媒体内容的被编码为所述第二比特率的部分。
9.根据权利要求7所述的方法,其中,所述传送步骤在所请求的媒体内容的被编码为所述第一比特率的媒体部分组块的末尾处停止传送所请求的媒体内容的被编码为所述第一比特率的部分,并开始从所请求的媒体内容中的被编码为所述第二比特率的媒体部分组块的起点处传送所请求的媒体内容的被编码为所述第二比特率的部分,所请求的媒体内容中的被编码为所述第二比特率的媒体部分组块的起点与所请求的媒体内容的被编码为所述第一比特率的媒体部分组块的末尾在时间上是连续的。
10.根据权利要求1所述的方法,还包括:
当将所请求的媒体内容的部分传送至所述客户端系统时,传送作为所请求的媒体内容的部分的一部分的替代内容。
11.根据权利要求1所述的方法,其中,当从原始服务器接收到所请求的媒体内容的被编码为所述第一比特率的部分时,所述传送步骤传送所请求的媒体内容的被编码为所述第一比特率的部分。
12.根据权利要求11所述的方法,其中,对从所述原始服务器接收的被编码为所述第一比特率的所请求的媒体内容进行排队,以通过所述服务器编码成所述第二比特率。
13.根据权利要求1所述的方法,其中,所请求的媒体内容为音频内容。
14.根据权利要求1所述的方法,其中,所请求的媒体内容为视频内容。
15.一种在网络上将可变比特率媒体内容动态地传送至多个客户端系统的设备,包括:
媒体传送请求接收器,在服务器上接收来自客户端的对媒体内容的请求;
媒体内容传送子系统,在所述服务器上将所请求的媒体内容的被编码为第一比特率的部分传送至所述客户端系统;
比特率过渡确定子系统,在所述服务器上确定:可以将传送所请求的媒体内容的被编码为所述第一比特率的部分改变为传送所请求的媒体内容的被编码为第二比特率的部分;
一经确定可以将传送所请求的媒体内容的被编码为所述第一比特率的部分改变为传送所请求的媒体内容的被编码为所述第二比特率的部分,所述媒体内容传送子系统就停止将所请求的媒体内容的被编码为所述第一比特率的部分传送至所述客户端系统,并开始将所请求的媒体内容的被编码为所述第二比特率的部分传送至所述客户端系统。
16.根据权利要求15所述的设备,还包括:
带宽确定子系统,在所述服务器上确定所述服务器和所述客户端系统之间的可用带宽已经改变;
其中,所述带宽确定子系统通知所述比特率过渡确定子系统所述服务器和所述客户端系统之间的可用带宽已经改变。
17.根据权利要求15所述的设备,其中,所述客户端系统规定所述第二比特率。
18.根据权利要求17所述的设备,还包括:
媒体内容描述接收器,在所述客户端系统上接收来自所述服务器的用于所请求的媒体内容的可用比特率和特征;
其中,所述客户端系统从所接收的可用比特率中选择所述第二比特率。
19.根据权利要求15所述的设备,还包括:
与所述服务器通信的用于存储多个媒体内容文件的至少一个存储装置;
其中,所述至少一个存储装置包含所请求的媒体内容的被编码为所述第一比特率的部分和所请求的媒体内容的被编码为所述第二比特率的部分。
20.根据权利要求15所述的设备,其中,当将所请求的媒体内容的被编码为所述第二比特率编码的部分传送至所述客户端系统时,所述媒体内容传送子系统对所述部分进行编码。
21.根据权利要求15所述的设备,其中,所述媒体内容传送子系统从所请求的媒体内容中的已经停止传送所请求的媒体内容的被编码为所述第一比特率的部分的点,开始传送所请求的媒体内容的被编码为所述第二比特率的部分;
22.根据权利要求21所述的设备,其中,所述媒体内容传送子系统参考索引找到在所请求的媒体内容中的被编码为所述第二比特率的媒体帧,所述媒体帧与其中停止传送所请求的媒体内容的被编码为所述第一比特率的部分的媒体帧相关联,并且其中,所述媒体内容传送子系统从所请求的媒体内容中的被编码为所述第二比特率的相关联媒体帧开始传送所请求的媒体内容的被编码为所述第二比特率的部分。
23.根据权利要求21所述的设备,其中,所述媒体内容传送子系统在所请求的媒体内容的被编码为所述第一比特率的媒体部分组块的末尾处停止传送所请求的媒体内容的被编码为所述第一比特率的部分,并开始从所请求的媒体内容中的被编码为所述第二比特率的媒体部分组块的起点处传送所请求的媒体内容的被编码为所述第二比特率的部分,所请求的媒体内容中的被编码为所述第二比特率的媒体部分组块的起点与所请求的媒体内容的被编码为所述第一比特率的媒体部分组块的末尾在时间上是连续的。
24.根据权利要求15所述的设备,其中,当将所请求的媒体内容的部分传送至所述客户端系统时,所述媒体内容传送子系统传送作为所请求的媒体内容的部分的一部分的替代内容。
25.根据权利要求15所述的设备,其中,当从原始服务器接收到所请求的媒体内容的被编码为所述第一比特率的部分时,所述媒体内容传送子系统传送所请求的媒体内容的被编码为所述第一比特率的部分。
26.根据权利要求25所述的设备,其中,对从所述原始服务器接收的被编码为所述第一比特率的所请求的媒体内容进行排队,以由所述服务器编码成所述第二比特率。
27.根据权利要求15所述的设备,其中,所请求的媒体内容为音频内容。
28.根据权利要求15所述的设备,其中,所请求的媒体内容为视频内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710114250.1A CN106878315B (zh) | 2009-03-18 | 2010-03-18 | 可变速率媒体传送系统 |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16137609P | 2009-03-18 | 2009-03-18 | |
US61/161,376 | 2009-03-18 | ||
US16642309P | 2009-04-03 | 2009-04-03 | |
US61/166,423 | 2009-04-03 | ||
US12/722,579 | 2010-03-12 | ||
US12/722,579 US8190674B2 (en) | 2008-11-24 | 2010-03-12 | Variable rate media delivery system |
PCT/US2010/027857 WO2010108031A1 (en) | 2009-03-18 | 2010-03-18 | Variable rate media delivery system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710114250.1A Division CN106878315B (zh) | 2009-03-18 | 2010-03-18 | 可变速率媒体传送系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102439579A true CN102439579A (zh) | 2012-05-02 |
Family
ID=42739999
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080020836.8A Expired - Fee Related CN102439578B (zh) | 2009-03-18 | 2010-03-18 | 动态可变速率媒体传送系统 |
CN201710114250.1A Active CN106878315B (zh) | 2009-03-18 | 2010-03-18 | 可变速率媒体传送系统 |
CN2010800208372A Pending CN102439579A (zh) | 2009-03-18 | 2010-03-18 | 可变速率媒体传送系统 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080020836.8A Expired - Fee Related CN102439578B (zh) | 2009-03-18 | 2010-03-18 | 动态可变速率媒体传送系统 |
CN201710114250.1A Active CN106878315B (zh) | 2009-03-18 | 2010-03-18 | 可变速率媒体传送系统 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8370520B2 (zh) |
EP (2) | EP2409241B1 (zh) |
CN (3) | CN102439578B (zh) |
WO (2) | WO2010108031A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104937583A (zh) * | 2013-01-18 | 2015-09-23 | 华为技术有限公司 | 一种对媒体内容进行自适应的方法和装置 |
CN105610782A (zh) * | 2015-11-02 | 2016-05-25 | 林晓东 | 一种移动流媒体播放器及其网关 |
Families Citing this family (191)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307487B1 (en) * | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US7068729B2 (en) | 2001-12-21 | 2006-06-27 | Digital Fountain, Inc. | Multi-stage code generator and decoder for communication systems |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
CN100539439C (zh) * | 2002-10-05 | 2009-09-09 | 数字方敦股份有限公司 | 连锁反应码的系统编码和解码系统和方法 |
EP1665539B1 (en) * | 2003-10-06 | 2013-04-10 | Digital Fountain, Inc. | Soft-Decision Decoding of Multi-Stage Chain Reaction Codes |
CN101019326B (zh) | 2004-05-07 | 2013-02-27 | 数字方敦股份有限公司 | 文件下载和流系统 |
US8274909B2 (en) * | 2009-03-26 | 2012-09-25 | Limelight Networks, Inc. | Conditional protocol control |
US9136983B2 (en) * | 2006-02-13 | 2015-09-15 | Digital Fountain, Inc. | Streaming and buffering using variable FEC overhead and protection periods |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
WO2007134196A2 (en) | 2006-05-10 | 2007-11-22 | Digital Fountain, Inc. | Code generator and decoder using hybrid codes |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US8639681B1 (en) * | 2007-08-22 | 2014-01-28 | Adobe Systems Incorporated | Automatic link generation for video watch style |
EP2203836A4 (en) * | 2007-09-12 | 2014-11-05 | Digital Fountain Inc | GENERATING AND COMMUNICATING SOURCE IDENTIFICATION INFORMATION TO ENABLE RELIABLE COMMUNICATIONS |
EP2329385A4 (en) | 2008-08-06 | 2016-09-14 | Movik Networks | CALLING CONTENT IN THE RADIO ACCESS NETWORK (RAN) |
US8548297B2 (en) * | 2008-09-11 | 2013-10-01 | Nice Systems Ltd. | Method and system for utilizing storage in network video recorders |
US8458290B2 (en) | 2011-02-01 | 2013-06-04 | Limelight Networks, Inc. | Multicast mapped look-up on content delivery networks |
AU2010276462B1 (en) * | 2010-12-27 | 2012-01-12 | Limelight Networks, Inc. | Partial object caching |
CN102203758A (zh) * | 2008-09-19 | 2011-09-28 | 杰出网络公司 | 内容传递网络流服务器片段分发 |
US9426213B2 (en) | 2008-11-11 | 2016-08-23 | At&T Intellectual Property Ii, L.P. | Hybrid unicast/anycast content distribution network system |
US8219711B2 (en) * | 2008-11-24 | 2012-07-10 | Juniper Networks, Inc. | Dynamic variable rate media delivery system |
US8370520B2 (en) | 2008-11-24 | 2013-02-05 | Juniper Networks, Inc. | Adaptive network content delivery system |
US8612668B2 (en) * | 2008-11-24 | 2013-12-17 | Juniper Networks, Inc. | Storage optimization system based on object size |
EP2391953A4 (en) * | 2009-01-30 | 2012-08-08 | Movik Networks | APPLICATION, USE AND WIRELESS CONNECTING TRANSPORT NETWORK PLANNER |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US8621044B2 (en) * | 2009-03-16 | 2013-12-31 | Microsoft Corporation | Smooth, stateless client media streaming |
CA2755774C (en) * | 2009-03-19 | 2015-01-06 | Azuki Systems, Inc. | Method for scalable live streaming delivery for mobile audiences |
WO2010111261A1 (en) * | 2009-03-23 | 2010-09-30 | Azuki Systems, Inc. | Method and system for efficient streaming video dynamic rate adaptation |
US8135912B2 (en) | 2009-05-18 | 2012-03-13 | Hola Networks, Ltd. | System and method of increasing cache size |
US8782267B2 (en) * | 2009-05-29 | 2014-07-15 | Comcast Cable Communications, Llc | Methods, systems, devices, and computer-readable media for delivering additional content using a multicast streaming |
US20100312828A1 (en) * | 2009-06-03 | 2010-12-09 | Mobixell Networks Ltd. | Server-controlled download of streaming media files |
US10410222B2 (en) | 2009-07-23 | 2019-09-10 | DISH Technologies L.L.C. | Messaging service for providing updates for multimedia content of a live event delivered over the internet |
CN101616181B (zh) * | 2009-07-27 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种上传和下载字幕文件的方法、系统和设备 |
US8560597B2 (en) | 2009-07-30 | 2013-10-15 | At&T Intellectual Property I, L.P. | Anycast transport protocol for content distribution networks |
US8966033B2 (en) * | 2009-08-17 | 2015-02-24 | At&T Intellectual Property I, L.P. | Integrated proximity routing for content distribution |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
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 |
US20110096828A1 (en) * | 2009-09-22 | 2011-04-28 | Qualcomm Incorporated | Enhanced block-request streaming using scalable encoding |
WO2012177267A1 (en) * | 2011-06-24 | 2012-12-27 | Limelight Networks, Inc. | Write-cost optimization of cdn storage architecture |
US8321521B1 (en) | 2011-06-24 | 2012-11-27 | Limelight Networks, Inc. | Write-cost optimization of CDN storage architecture |
US8560604B2 (en) | 2009-10-08 | 2013-10-15 | Hola Networks Ltd. | System and method for providing faster and more efficient data communication |
US20110087553A1 (en) * | 2009-10-14 | 2011-04-14 | Yahoo! Inc. | Bitrate preview for video objects |
JP2011087103A (ja) * | 2009-10-15 | 2011-04-28 | Sony Corp | コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供 |
US8755405B2 (en) * | 2009-11-09 | 2014-06-17 | Movik Networks, Inc. | Burst packet scheduler for improved ran efficiency in UMTS/HSPA networks |
US8341284B2 (en) * | 2009-12-18 | 2012-12-25 | At&T Intellectual Property I, L.P. | Method and system for selecting a delivery method for media on demand |
US8769614B1 (en) * | 2009-12-29 | 2014-07-01 | Akamai Technologies, Inc. | Security framework for HTTP streaming architecture |
US8527649B2 (en) * | 2010-03-09 | 2013-09-03 | Mobixell Networks Ltd. | Multi-stream bit rate adaptation |
WO2011115965A1 (en) * | 2010-03-15 | 2011-09-22 | Movik Networks | Adaptive chunked and content-aware pacing of multi-media delivery over http transport and network controlled bit rate selection |
EP2550607B1 (en) * | 2010-03-23 | 2020-02-12 | Reversinglabs Corporation | Cloud-based web content filtering |
US9137278B2 (en) * | 2010-04-08 | 2015-09-15 | Vasona Networks Inc. | Managing streaming bandwidth for multiple clients |
CN103069406B (zh) * | 2010-04-08 | 2016-11-23 | 瓦索那网络公司 | 对于多个客户机管理流媒体带宽 |
US9613142B2 (en) * | 2010-04-26 | 2017-04-04 | Flash Networks Ltd | Method and system for providing the download of transcoded files |
US8463846B2 (en) * | 2010-05-06 | 2013-06-11 | Cdnetworks Co., Ltd. | File bundling for cache servers of content delivery networks |
US9253548B2 (en) * | 2010-05-27 | 2016-02-02 | Adobe Systems Incorporated | Optimizing caches for media streaming |
US9225520B2 (en) * | 2010-05-28 | 2015-12-29 | Adobe Systems Incorporated | System and method for deterministic generation of a common content encryption key on distinct encryption units |
WO2011153194A1 (en) * | 2010-06-02 | 2011-12-08 | Onmobile Global Limited | Method and apparatus for adapting media |
US9485546B2 (en) | 2010-06-29 | 2016-11-01 | Qualcomm Incorporated | Signaling video samples for trick mode video representations |
US9762639B2 (en) | 2010-06-30 | 2017-09-12 | Brightcove Inc. | Dynamic manifest generation based on client identity |
US8904027B2 (en) * | 2010-06-30 | 2014-12-02 | Cable Television Laboratories, Inc. | Adaptive bit rate for data transmission |
US9838450B2 (en) * | 2010-06-30 | 2017-12-05 | Brightcove, Inc. | Dynamic chunking for delivery instances |
US8918533B2 (en) | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
US8832709B2 (en) | 2010-07-19 | 2014-09-09 | Flash Networks Ltd. | Network optimization |
WO2012012334A2 (en) | 2010-07-19 | 2012-01-26 | Movik Networks | Content pre-fetching and cdn assist methods in a wireless mobile network |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US9319448B2 (en) | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
US9374404B2 (en) * | 2010-08-26 | 2016-06-21 | Vasona Networks Inc. | Streaming media flows management |
EP2612254B1 (en) * | 2010-09-03 | 2021-05-26 | Level 3 Communications, LLC | Extending caching network functionality to an existing streaming media server |
US9143838B2 (en) | 2010-09-06 | 2015-09-22 | Vasona Networks Inc. | Device and method for quality assessment of encrypted streaming media flows |
US8817614B1 (en) | 2010-09-16 | 2014-08-26 | Vasona Networks Inc. | Policy enforcer having load balancing capabilities |
US8976655B2 (en) | 2010-09-16 | 2015-03-10 | Vasona Networks Inc. | Evaluating a capacity of a cell of a radio access network |
US8902753B2 (en) | 2010-09-16 | 2014-12-02 | Vasona Networks Inc. | Method, system and computer readable medium for affecting bit rate |
US9832671B2 (en) | 2010-09-16 | 2017-11-28 | Vassona Networks | Modeling radio access networks |
US9872185B1 (en) | 2010-09-16 | 2018-01-16 | Vasona Networks Ltd. | Policy enforcer in a network that has a network address translator |
WO2012040608A2 (en) | 2010-09-24 | 2012-03-29 | Movik Networks | Destination learning and mobility detection in transit network device in lte & umts radio access networks |
JP2012084008A (ja) * | 2010-10-13 | 2012-04-26 | Sony Corp | サーバ、サーバのカンファレンスルーム管理方法およびネットワークカンファレンスシステム |
US8645437B2 (en) * | 2010-10-29 | 2014-02-04 | At&T Intellectual Property I, L.P. | System and method for providing fast startup of a large file delivery |
US8990317B2 (en) * | 2010-11-24 | 2015-03-24 | At&T Intellectual Property I, L.P. | Shared multimedia experience |
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US8688074B2 (en) | 2011-02-28 | 2014-04-01 | Moisixell Networks Ltd. | Service classification of web traffic |
AU2011201404B1 (en) | 2011-03-28 | 2012-01-12 | Brightcove Inc. | Transcodeless on-the-fly ad insertion |
US20120324122A1 (en) * | 2011-06-20 | 2012-12-20 | David Miles | Method and apparatus for server-side adaptive streaming |
CN102882829A (zh) * | 2011-07-11 | 2013-01-16 | 腾讯科技(深圳)有限公司 | 一种转码方法及系统 |
US9112942B2 (en) * | 2011-07-15 | 2015-08-18 | Shmuel Ur | Dynamic modification of media streams' quality |
US10089017B2 (en) | 2011-07-20 | 2018-10-02 | Futurewei Technologies, Inc. | Method and apparatus for SSD storage access |
CN102957672A (zh) * | 2011-08-25 | 2013-03-06 | 中国电信股份有限公司 | 自适应播放flv媒体流的方法、客户端和系统 |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
CA2847703C (en) * | 2011-09-12 | 2016-10-18 | Rogers Communications Inc. | Method and system for managing bandwidth |
US8665858B2 (en) | 2011-09-15 | 2014-03-04 | Vasona Networks Inc. | Method and computer readable medium for gathering user equipment location information |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
KR101491604B1 (ko) * | 2011-11-02 | 2015-02-13 | 주식회사 케이티 | 다중 채널을 이용한 콘텐츠 제공 방법 및 시스템 |
EP3340575A1 (en) * | 2011-12-06 | 2018-06-27 | EchoStar Technologies L.L.C. | Remote storage digital video recorder and related operating methods |
US10397294B2 (en) * | 2011-12-15 | 2019-08-27 | Dolby Laboratories Licensing Corporation | Bandwidth adaptation for dynamic adaptive transferring of multimedia |
US9319321B2 (en) | 2011-12-16 | 2016-04-19 | Netflix, Inc. | Web server constraint support |
US9769281B2 (en) | 2011-12-19 | 2017-09-19 | Google Technology Holdings LLC | Method and apparatus for determining a multimedia representation for a multimedia asset delivered to a client device |
US10667137B2 (en) | 2011-12-23 | 2020-05-26 | Samsung Electronics Co., Ltd. | Method and apparatus for providing contents in communication system |
US10218756B2 (en) | 2012-01-06 | 2019-02-26 | Comcast Cable Communications, Llc | Streamlined delivery of video content |
US9167049B2 (en) * | 2012-02-02 | 2015-10-20 | Comcast Cable Communications, Llc | Content distribution network supporting popularity-based caching |
US10079710B2 (en) * | 2012-02-16 | 2018-09-18 | Brightcove, Inc. | System and method for dynamic file availability during encoding |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
US20130282844A1 (en) | 2012-04-23 | 2013-10-24 | Contact Solutions LLC | Apparatus and methods for multi-mode asynchronous communication |
US9635067B2 (en) | 2012-04-23 | 2017-04-25 | Verint Americas Inc. | Tracing and asynchronous communication network and routing method |
JP6251730B2 (ja) | 2012-04-26 | 2017-12-20 | ザ・ユニバーシティ・オブ・シカゴThe University Of Chicago | 黄色ブドウ球菌(staphylococcusaureus)疾患の間にコアグラーゼ活性を中和する抗体に関連した組成物および方法 |
US9449089B2 (en) | 2012-05-07 | 2016-09-20 | Pixability, Inc. | Methods and systems for identifying distribution opportunities |
US9571827B2 (en) * | 2012-06-08 | 2017-02-14 | Apple Inc. | Techniques for adaptive video streaming |
US9819715B2 (en) * | 2012-06-21 | 2017-11-14 | Adobe Systems Incorporated | Client side control of adaptive streaming |
US11095665B2 (en) * | 2012-08-31 | 2021-08-17 | Fastly, Inc. | User access rate limiting among content delivery nodes |
TWI516104B (zh) * | 2012-09-04 | 2016-01-01 | 緯創資通股份有限公司 | 網路影片播放的方法及其電子裝置 |
US8775648B1 (en) | 2013-12-30 | 2014-07-08 | Limelight Networks, Inc. | Control systems and methods for cloud resource management |
US20140115056A1 (en) * | 2012-10-22 | 2014-04-24 | Apple Inc. | Book thinning |
CN102984561A (zh) * | 2012-11-09 | 2013-03-20 | 中山爱科数字科技股份有限公司 | 一种通过数字机顶盒获取信息服务的数据缓存方法 |
US9716916B2 (en) | 2012-12-28 | 2017-07-25 | Echostar Technologies L.L.C. | Adaptive multicast delivery of media streams |
US9805410B2 (en) * | 2013-01-31 | 2017-10-31 | Google Inc. | Seamless transition from sample to full version of digital content |
US9225768B2 (en) * | 2013-02-06 | 2015-12-29 | Sap Portals Israel Ltd | Providing network-applicable content |
US9112939B2 (en) | 2013-02-12 | 2015-08-18 | Brightcove, Inc. | Cloud-based video delivery |
EP2949123A2 (en) | 2013-02-27 | 2015-12-02 | Apple Inc. | Adaptive streaming techniques |
US9069681B1 (en) | 2013-03-20 | 2015-06-30 | Google Inc. | Real-time log joining on a continuous stream of events that are approximately ordered |
US9274863B1 (en) | 2013-03-20 | 2016-03-01 | Google Inc. | Latency reduction in distributed computing systems |
US9092338B1 (en) * | 2013-03-20 | 2015-07-28 | Google Inc. | Multi-level caching event lookup |
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 |
US9215080B2 (en) * | 2013-05-31 | 2015-12-15 | Broadcom Corporation | Adaptive bit rate distribution of multicast streams |
US9330055B2 (en) * | 2013-06-04 | 2016-05-03 | International Business Machines Corporation | Modular architecture for extreme-scale distributed processing applications |
US9544352B2 (en) | 2013-06-11 | 2017-01-10 | Bitmovin Gmbh | Adaptation logic for varying a bitrate |
US9462032B2 (en) | 2013-07-24 | 2016-10-04 | Google Inc. | Streaming media content |
US9241044B2 (en) | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
CN104580305B (zh) * | 2013-10-18 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 网络上传调度和带宽检测方法、系统、客户端和服务器 |
CN104602118A (zh) * | 2013-10-30 | 2015-05-06 | 中国移动通信集团公司 | 一种多媒体数据的输出方法和设备 |
RU2571732C2 (ru) * | 2013-11-08 | 2015-12-20 | Общество с ограниченной ответственностью "МобиВита" | Управляющее устройство и способ управления передачей потока видеоданных по сети на сетевое пользовательское устройство |
CN103605482B (zh) * | 2013-11-21 | 2017-02-01 | 浪潮电子信息产业股份有限公司 | 一种硬盘内数据高性能存储方法 |
WO2015120263A1 (en) | 2014-02-06 | 2015-08-13 | Contact Solutions LLC | Systems, apparatuses and methods for communication flow modification |
US20150256601A1 (en) * | 2014-03-10 | 2015-09-10 | Palo Alto Research Center Incorporated | System and method for efficient content caching in a streaming storage |
CN105100685A (zh) * | 2014-05-06 | 2015-11-25 | 中兴通讯股份有限公司 | 无线视频处理方法、装置、媒体服务器、监控终端及系统 |
US10057618B2 (en) | 2014-06-06 | 2018-08-21 | Microsoft Technology Licensing, Llc | System for filtering media manifests using manifest attributes |
CN104052991A (zh) * | 2014-06-17 | 2014-09-17 | 德科仕通信(上海)有限公司 | 检测has视频卡顿的方法及系统 |
US11869038B2 (en) * | 2014-06-24 | 2024-01-09 | Arris Enterprises Llc | Tracking ad preferences in adaptive bit rate systems |
US9686375B2 (en) * | 2014-08-29 | 2017-06-20 | Accenture Global Services Limited | Media intelligence suite |
US9710199B2 (en) | 2014-11-07 | 2017-07-18 | International Business Machines Corporation | Non-volatile memory data storage with low read amplification |
US9094464B1 (en) | 2014-12-18 | 2015-07-28 | Limelight Networks, Inc. | Connection digest for accelerating web traffic |
US10162700B2 (en) | 2014-12-23 | 2018-12-25 | International Business Machines Corporation | Workload-adaptive data packing algorithm |
US9166881B1 (en) | 2014-12-31 | 2015-10-20 | Contact Solutions LLC | Methods and apparatus for adaptive bandwidth-based communication management |
US9961004B2 (en) | 2015-02-18 | 2018-05-01 | Viasat, Inc. | Popularity-aware bitrate adaptation of linear programming for mobile communications |
US9935993B2 (en) * | 2015-03-31 | 2018-04-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Streaming video over a hybrid network |
US11057446B2 (en) | 2015-05-14 | 2021-07-06 | Bright Data Ltd. | System and method for streaming content from multiple servers |
WO2017024248A1 (en) | 2015-08-06 | 2017-02-09 | Contact Solutions LLC | Tracing and asynchronous communication network and routing method |
US9712190B2 (en) | 2015-09-24 | 2017-07-18 | International Business Machines Corporation | Data packing for compression-enabled storage systems |
US9870285B2 (en) | 2015-11-18 | 2018-01-16 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
CN105487824A (zh) * | 2015-12-07 | 2016-04-13 | 联想(北京)有限公司 | 信息处理方法、存储装置及电子设备 |
CN105681283A (zh) * | 2015-12-29 | 2016-06-15 | 广东欧珀移动通信有限公司 | 一种传输带宽的自动调节方法及装置 |
US10368109B2 (en) | 2015-12-29 | 2019-07-30 | DISH Technologies L.L.C. | Dynamic content delivery routing and related methods and systems |
TWI762465B (zh) | 2016-02-12 | 2022-05-01 | 瑞士商納格維遜股份有限公司 | 共享從視訊傳輸提取的快照之方法及系統 |
US10313418B2 (en) * | 2016-06-20 | 2019-06-04 | Ramp Holdings, Inc. | Chunked HTTP video cache routing |
US10567461B2 (en) * | 2016-08-04 | 2020-02-18 | Twitter, Inc. | Low-latency HTTP live streaming |
CA2984818C (en) | 2016-11-18 | 2023-10-17 | Recover Energy Services Inc. | Flexible auger conveyor |
CN106599577A (zh) * | 2016-12-13 | 2017-04-26 | 重庆邮电大学 | 一种结合rbm和特征选择的列表级排序学习方法 |
US11064226B2 (en) * | 2017-03-16 | 2021-07-13 | Echo-Sense, Inc. | System and method for concurrent data streams from a singular sensor with remotely selectable parameters |
US11102294B2 (en) | 2017-06-09 | 2021-08-24 | Samsung Electronics Co., Ltd. | System and method for supporting energy and time efficient content distribution and delivery |
US11190374B2 (en) | 2017-08-28 | 2021-11-30 | Bright Data Ltd. | System and method for improving content fetching by selecting tunnel devices |
EP4191981A1 (en) | 2017-08-28 | 2023-06-07 | Bright Data Ltd. | Improving content fetching by selecting tunnel devices grouped according to geographic location |
CN109982113B (zh) * | 2017-12-28 | 2022-04-08 | 阿里巴巴集团控股有限公司 | 一种视频文件处理方法及装置 |
CN108322360A (zh) * | 2018-01-24 | 2018-07-24 | 上海康斐信息技术有限公司 | 一种通过路由器网络测速的方法、系统和设备 |
CN108628804A (zh) * | 2018-04-11 | 2018-10-09 | 中国海洋大学 | 面向长时间跨度复杂海流数据拉格朗日拟序结构快速计算方法 |
US11930439B2 (en) | 2019-01-09 | 2024-03-12 | Margo Networks Private Limited | Network control and optimization (NCO) system and method |
US10931778B2 (en) | 2019-01-09 | 2021-02-23 | Margo Networks Pvt. Ltd. | Content delivery network system and method |
US10656841B1 (en) * | 2019-01-17 | 2020-05-19 | Microsoft Technology Licensing, Llc | Reducing per-I/O CPU overhead by queueing and batching read requests and read completion notifications |
US10743041B1 (en) | 2019-01-31 | 2020-08-11 | DISH Technologies L.L.C. | Systems and methods for facilitating adaptive content splicing |
EP3750079A4 (en) | 2019-02-25 | 2022-01-12 | Bright Data Ltd | SYSTEM AND METHOD FOR URL EXTRACTION CHALLENGE MECHANISM |
EP4030318A1 (en) | 2019-04-02 | 2022-07-20 | Bright Data Ltd. | System and method for managing non-direct url fetching service |
US11228631B2 (en) * | 2019-04-26 | 2022-01-18 | Juniper Networks, Inc | Apparatus, system, and method for conditionally performing media delivery index measurements on streaming media |
US11089112B2 (en) * | 2019-08-21 | 2021-08-10 | Facebook, Inc. | Low latency interactive media distribution using shared user hardware |
US11792472B2 (en) * | 2019-09-18 | 2023-10-17 | Wayne Fueling Systems Llc | Schedule-based uninterrupted buffering and streaming |
US11638049B2 (en) | 2019-10-16 | 2023-04-25 | Dish Network L.L.C. | Systems and methods for content item recognition and adaptive packet transmission |
US10880351B1 (en) | 2019-10-16 | 2020-12-29 | Dish Network L.L.C. | Systems and methods for adapting content items to endpoint media devices |
US11303943B2 (en) | 2019-10-16 | 2022-04-12 | Dish Network L.L.C. | Systems and methods for facilitating adaptive content items for delivery in a packet stream |
CN111147947B (zh) * | 2020-01-10 | 2021-12-10 | 深圳市同洲电子股份有限公司 | 一种基于websocket的flv视频传输及网页播放的方法 |
US11245946B2 (en) | 2020-01-21 | 2022-02-08 | Dish Network L.L.C. | Systems and methods for adapting content items to secured endpoint media device data |
US11218525B2 (en) | 2020-01-21 | 2022-01-04 | Dish Network L.L.C. | Systems and methods for adapting content delivery based on endpoint communications |
US11451603B2 (en) * | 2020-02-25 | 2022-09-20 | Disney Enterprises, Inc. | Selective pre-caching of media streams |
US11012737B1 (en) | 2020-04-27 | 2021-05-18 | Dish Network L.L.C. | Systems and methods for audio adaptation of content items to endpoint media devices |
US11233715B1 (en) * | 2020-07-14 | 2022-01-25 | Juniper Networks, Inc. | Dynamic prediction and management of application service level agreements |
CN114205344B (zh) * | 2020-08-31 | 2023-02-28 | 华为技术有限公司 | 媒体文件传输的方法及装置 |
CN114422519B (zh) * | 2020-10-14 | 2024-01-09 | 腾讯科技(深圳)有限公司 | 一种数据请求的处理方法、装置、电子设备及存储介质 |
US11695855B2 (en) | 2021-05-17 | 2023-07-04 | Margo Networks Pvt. Ltd. | User generated pluggable content delivery network (CDN) system and method |
CN115914756A (zh) * | 2021-08-12 | 2023-04-04 | 花瓣云科技有限公司 | 基于网络分级的视频码率控制方法和设备 |
US20230051781A1 (en) * | 2021-08-16 | 2023-02-16 | International Business Machines Corporation | Data movement intimation using input/output (i/o) queue management |
WO2023224680A1 (en) | 2022-05-18 | 2023-11-23 | Margo Networks Pvt. Ltd. | Peer to peer (p2p) encrypted data transfer/offload system and method |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020029274A1 (en) * | 1998-11-17 | 2002-03-07 | Allen Arthur Douglas | Method for connection acceptance control and rapid determination of optimal multi-media content delivery over network |
US6650618B1 (en) * | 1999-07-01 | 2003-11-18 | Nortel Networks Limited | Method and apparatus for managing communications between nodes in a bi-directional ring network |
US20050267948A1 (en) * | 2004-06-01 | 2005-12-01 | Mckinley Brittain | Method and system for resource management in a video on-demand server |
CN1835482A (zh) * | 2005-12-29 | 2006-09-20 | 上海贝豪通讯电子有限公司 | 一种无线流媒体服务解决的方法 |
CN1926861A (zh) * | 2003-11-12 | 2007-03-07 | 索尼电子有限公司 | 用于提供动态比特率编码的设备和方法 |
CN101123729A (zh) * | 2006-08-10 | 2008-02-13 | 国际商业机器公司 | 用于传输信号流的方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4763319A (en) * | 1986-05-19 | 1988-08-09 | Bell Communications Research, Inc. | Multi-rate synchronous virtual circuit network for voice and data communications |
CN1112809C (zh) * | 1996-03-02 | 2003-06-25 | 德国汤姆逊-布朗特公司 | 数字视频数据的编码或译码方法和装置 |
US5771350A (en) * | 1996-04-09 | 1998-06-23 | Electronics And Telecommunications Research Institute | Asynchronous transfer mode(ATM) network adaptor for the simultaneous processing of the multi-channel traffic |
US6292834B1 (en) * | 1997-03-14 | 2001-09-18 | Microsoft Corporation | Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network |
US20030099254A1 (en) * | 2000-03-03 | 2003-05-29 | Richter Roger K. | Systems and methods for interfacing asynchronous and non-asynchronous data media |
EP2369842B1 (en) * | 2000-03-13 | 2015-08-19 | Sony Corporation | Supplying, generating, converting and reading video content |
US6407680B1 (en) * | 2000-12-22 | 2002-06-18 | Generic Media, Inc. | Distributed on-demand media transcoding system and method |
DE602004031669D1 (de) * | 2003-12-24 | 2011-04-14 | Nippon Telegraph & Telephone | Dynamische bandzuteilungsschaltung, dynamisches bandzuteilungsverfahren, dynamisches bandzuteilungsprogramm und aufzeichnungsmedium |
US20080098446A1 (en) * | 2004-08-11 | 2008-04-24 | Vidiator Enterprises Inc, | Multicast and Broadcast Streaming Method and System |
US20070058926A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Optimizing trick modes for streaming media content |
US20070162487A1 (en) * | 2005-12-30 | 2007-07-12 | Razorstream, Llc | Multi-format data coding, managing and distributing system and method |
US8214516B2 (en) | 2006-01-06 | 2012-07-03 | Google Inc. | Dynamic media serving infrastructure |
US8612619B2 (en) * | 2006-03-31 | 2013-12-17 | Alcatel Lucent | Method and apparatus for improved multicast streaming in wireless networks |
US7937728B2 (en) * | 2006-12-06 | 2011-05-03 | International Business Machines Corporation | Retrieving lost content for a scheduled program |
WO2008095314A1 (en) * | 2007-02-09 | 2008-08-14 | Technologies Ezoom Exponentiel Inc. | System and method for distributed and dynamic transcoding |
US20080195748A1 (en) | 2007-02-09 | 2008-08-14 | Melodeo Inc. | Data delivery |
US7787818B2 (en) * | 2007-03-27 | 2010-08-31 | Iocast Llc | Customized content delivery system and method |
WO2008143493A2 (en) * | 2007-05-24 | 2008-11-27 | Jeya Rajendram Alan Rajendram | Media stream system and method thereof |
CN101060463B (zh) * | 2007-06-04 | 2010-09-29 | 杭州华三通信技术有限公司 | 异步传输模式调度方法及装置 |
CN101188428B (zh) * | 2007-12-10 | 2012-09-05 | 中兴通讯股份有限公司 | 一种ldpc码的有限长度循环缓存的速率匹配方法 |
US8370520B2 (en) * | 2008-11-24 | 2013-02-05 | Juniper Networks, Inc. | Adaptive network content delivery system |
-
2009
- 2009-11-23 US US12/624,358 patent/US8370520B2/en not_active Expired - Fee Related
-
2010
- 2010-03-12 US US12/722,579 patent/US8190674B2/en active Active
- 2010-03-18 EP EP10754138.5A patent/EP2409241B1/en active Active
- 2010-03-18 EP EP10754131.0A patent/EP2409240B1/en active Active
- 2010-03-18 WO PCT/US2010/027857 patent/WO2010108031A1/en active Application Filing
- 2010-03-18 CN CN201080020836.8A patent/CN102439578B/zh not_active Expired - Fee Related
- 2010-03-18 CN CN201710114250.1A patent/CN106878315B/zh active Active
- 2010-03-18 CN CN2010800208372A patent/CN102439579A/zh active Pending
- 2010-03-18 WO PCT/US2010/027877 patent/WO2010108045A1/en active Application Filing
-
2013
- 2013-01-14 US US13/740,931 patent/US8745262B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020029274A1 (en) * | 1998-11-17 | 2002-03-07 | Allen Arthur Douglas | Method for connection acceptance control and rapid determination of optimal multi-media content delivery over network |
US6650618B1 (en) * | 1999-07-01 | 2003-11-18 | Nortel Networks Limited | Method and apparatus for managing communications between nodes in a bi-directional ring network |
CN1926861A (zh) * | 2003-11-12 | 2007-03-07 | 索尼电子有限公司 | 用于提供动态比特率编码的设备和方法 |
US20050267948A1 (en) * | 2004-06-01 | 2005-12-01 | Mckinley Brittain | Method and system for resource management in a video on-demand server |
CN1835482A (zh) * | 2005-12-29 | 2006-09-20 | 上海贝豪通讯电子有限公司 | 一种无线流媒体服务解决的方法 |
CN101123729A (zh) * | 2006-08-10 | 2008-02-13 | 国际商业机器公司 | 用于传输信号流的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104937583A (zh) * | 2013-01-18 | 2015-09-23 | 华为技术有限公司 | 一种对媒体内容进行自适应的方法和装置 |
US9917872B2 (en) | 2013-01-18 | 2018-03-13 | Futurewei Technologies, Inc. | Method and apparatus for performing adaptive streaming on media contents |
CN105610782A (zh) * | 2015-11-02 | 2016-05-25 | 林晓东 | 一种移动流媒体播放器及其网关 |
Also Published As
Publication number | Publication date |
---|---|
WO2010108031A1 (en) | 2010-09-23 |
CN106878315B (zh) | 2020-05-15 |
US8745262B2 (en) | 2014-06-03 |
CN102439578B (zh) | 2015-04-22 |
WO2010108045A1 (en) | 2010-09-23 |
CN102439578A (zh) | 2012-05-02 |
US20100131671A1 (en) | 2010-05-27 |
EP2409240B1 (en) | 2015-09-02 |
US20130132504A1 (en) | 2013-05-23 |
EP2409240A4 (en) | 2014-07-23 |
US8370520B2 (en) | 2013-02-05 |
US8190674B2 (en) | 2012-05-29 |
CN106878315A (zh) | 2017-06-20 |
EP2409241A1 (en) | 2012-01-25 |
EP2409241A4 (en) | 2014-07-23 |
EP2409240A1 (en) | 2012-01-25 |
US20100235438A1 (en) | 2010-09-16 |
EP2409241B1 (en) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102439578B (zh) | 动态可变速率媒体传送系统 | |
CN102740159B (zh) | 媒体文件存储格式和自适应传送系统 | |
US8392615B2 (en) | Dynamic variable rate media delivery system | |
EP2359536B1 (en) | Adaptive network content delivery system | |
US8612668B2 (en) | Storage optimization system based on object size | |
US10397293B2 (en) | Dynamic chunking for delivery instances | |
US8327013B2 (en) | Dynamic index file creation for media streaming | |
US6859840B2 (en) | Prefix caching for media objects | |
US8645504B2 (en) | Dynamic chunking for delivery instances | |
US20060230170A1 (en) | Streaming media content delivery system and method for delivering streaming content | |
US20170140443A1 (en) | Dynamic manifest generation for delivery instances | |
Acharya | Techniques for improving multimedia communication over wide area networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Juniper Networks, Inc. Address before: California, USA Applicant before: Jungle network |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: NETSCREEN TECHNOLOGIES INC. TO: JUNIPER NETWORKS INC. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120502 |