动态可变速率媒体传送系统的制作方法

文档序号:6349211阅读:207来源:国知局
专利名称:动态可变速率媒体传送系统的制作方法
技术领域
本发明总体涉及媒体内容传送。
背景技术
可以推行在本部分中描述的方法,但这些方法并非一定是先前已经设计或推行的方法。因此,除非本文另外指出,在本部分中描述的方法不是本申请中的权利要求的现有技术,并且不允许通过包含在本部分中而成为现有技术。这些年来,视频内容在因特网上的传送已得到发展。从内容服务器到客户端计算机的视频传送的最初应用受到技术和带宽容量的限制。必须明显减小视频文件的大小,以适应电话线的低带宽。必须在可以向用户播放视频文件之前将低分辨率视频内容作为整体下载至客户端计算机。这是由于文件系统限制(在文件系统利用文件之前,其需要下载整个文件)和仅具有重放整个文件的能力的视频播放器软件的原因。这迫使用户忍受等待完全下载视频文件的长时延迟。当下载内容时,创建私人文件格式和视频播放器软件以允许用户观看视频内容。 在下载完成且用户观看到视频内容之后,保存或删除该文件。该方法由于带宽限制、服务器负载或网络延迟而非常容易出现下载延迟。由于视频播放器软件缺乏重放的视频内容,所以必须周期性地停止视频内容的重放。开发了一种更复杂的方法,该方法将视频内容倾注至视频播放器软件。传送系统通常针对每个视频内容标题具有单比特率视频文件。单比特率视频文件被分配给所有用户,而不管它们的带宽是否可用。通过迫使用户观看具有比合理带宽低的质量的视频内容, 来惩罚具有比正常带宽高的带宽的用户。在用户能够重放视频内容之前,缓冲一定量的视频内容。缓冲器足够大,以支持一定量的视频内容来掩盖由带宽限制、服务器负载或网络延迟所导致的视频内容传送中的小延迟。较长的传送延迟(典型地,为几秒或更长)由不稳定的最后一英里带宽导致。传送延迟会使视频播放器软件无内容可播,并导致视频播放器软件停止视频内容的重放,直到传送重新开始且充分填充缓冲器为止。


在附图的图中,通过实施例但不限于实施例示出了本发明,其中,相同的参考标号指的是相同的元件,其中图1示出了根据本发明的可行实施方式的在网络间与客户端系统、原始服务器、 同位体MFD以及中心管理站相通信的媒体流导向器(MFD);图2示出了根据本发明的可行实施方式的MFD部件和数据流架构的实施例;图3示出了根据本发明的可行实施方式的动态地确定内容部分的流行度 (popularity)的实施例;图4示出了根据本发明的可行实施方式的代替传统的视频服务器网站的MFD配置;图5示出了根据本发明的可行实施方式的向客户端系统传送内容的MFD网络;图6示出了可以在其上执行一可行实施方式的计算机系统;图7示出了根据本发明的可行实施方式的HPE和服务器侧播放器之间的工作流程的流程图;图8a示出了根据本发明的可行实施方式的磁盘管理器与策略模块和分析模块之间的相互作用;图8b示出了根据本发明的可行实施方式的磁盘管理器与用于存储装置的词典之间的相互作用;图8c示出了根据本发明的可行实施方式的磁盘管理器与反向块映射(reverse block map)之间的相互作用;图9示出了根据本发明的可行实施方式的缓冲池与缓冲管理器之间的相互作用;图IOa示出了根据本发明的可行实施方式的媒体管理器、缓冲管理器和媒体提供商之间的相互作用;图IOb示出了根据本发明的可行实施方式的媒体管理器与用于确定热门视频片段的分析模块之间的相互作用;图11示出了根据本发明的可行实施方式的MFD中的网络管理器的流程图;图12示出了根据本发明的可行实施方式的容器文件中的渐近式下载提示轨道位置;图13示出了根据本发明的可行实施方式的参数说明画面的图形用户界面屏幕截图;图14示出了根据本发明的可行实施方式的实时字节传送监控图的图形用户界面屏幕截图;图15示出了根据本发明的可行实施方式的网络连接性能监控图的图形用户界面屏幕截图;图16示出了根据本发明的可行实施方式的在网络间与客户端系统相通信的媒体流导向器(MFD);图17示出了根据本发明的可行实施方式的MFD在网络中的应用。图18示出了根据本发明的可行实施方式的向MFD传送视频文件的发布系统 (publishing system);图19示出了根据本发明的可行实施方式的制备视频文件以由MFD传送的预处理引擎;图20示出了根据本发明的可行实施方式的可由MFD使用的文件格式的实施例;图21示出了根据本发明的实施方式的内部文件结构;图22示出了根据本发明的实施方式的用于高速缓存多比特率文件的MFD ;图23示出了根据本发明的实施方式的响应于片段请求从单比特率文件动态地创建比特率特定文件的MFD ;图M示出了根据本发明实施方式的将多比特率文件高速缓存并从所高速缓存的多比特率文件中的一个中动态地创建比特率特定文件的MFD ;
图25示出了根据本发明实施方式的将两个比特率文件发送至边缘服务器的原始服务器。
具体实施例方式描述了一种动态可变速率媒体传送系统。在以下描述中,为了解释的目的,阐述了许多具体细节以提供对本发明的充分理解。然而,对于本领域的技术人员来说将显而易见的是,在没有这些具体细节的情况下也可以实践本发明。在其他情况中,以框图的形式示出了众所周知的结构和装置,以避免不必要地使本发明模糊。本文中,按照以下提纲描述实施方式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扩展和变形1.0总体概述本概述给出了本发明的可行实施方式的一些方面的基本描述。应当注意,该概述不是可行实施方式的方面的广泛或彻底的总结。此外,应当注意,该概述并非旨在被理解为确定可行实施方式的任何具体的重要方面或元件,也并非旨在被理解为具体地描述可行实施方式的任何范围(具体地,并非旨在大体上为本发明)。该概述仅提出了一些与压缩且简化的形式的实施例的可行实施方式相关的概念,并且其应被理解为,仅是以下实施例的可行实施方式的更详细描述的概念上的序言。描述了一种可变速率媒体传送系统。在其他实施方式中,本发明包含计算机设备和被配置为执行所述步骤的计算机可读介质。在以下文本中,视频内容和视频数据被用作媒体内容和媒体数据的实例,但是,这些实例不限于视频内容,还可以包括其他类型的媒体内容和媒体数据,例如,音频、多媒体表现、放映幻灯片等。该系统通过传送适于变化的比特率的媒体数据来适应服务器和客户端之间的比特率变化。在实施方式中,视频数据被发送以匹配服务器和客户端之间的带宽。客户端和服务器之间的带宽是不断改变的。在某一时间点,存在这样的比特率,在该比特率时,必须针对视频来传送视频数据,使得该视频由客户端的视频播放器连续重放而没有暂停或中断。该系统确保客户端视频播放器不会没有数据。可自动地检测服务器和客户端之间的带宽,并且通过服务器将带宽映射至适当的视频比特率。客户端视频播放器被提供有稳
7定的视频数据流。不使时标折衷,但传递至客户端的数据的量可以改变以与可用的带宽相匹配。如此,重放的视频的质量也可以改变。客户端播放器始终播放相同量的数据;只有视频的质量改变。服务器在用户和客户端视频播放器看不到任何中断的情况下而在视频比特率之间进行无缝地切换。在可行实施方式中,为了阻止对峰值或谷值过快地产生影响,服务器可以在具有明显的下降或增加时切换比特率。唯一可注意到的变化是所播放的视频的质量。 标准的视频播放器可以用来与服务器对接。可行的实施方式经由渐进式下载方法而向用户提供视频流体验。在另一可行实施方式中,视频播放器可以通过使用控制信号或命令与服务器通信来使能服务器的其他特征(例如,特殊再现特征/比特率自适应)、或通过提供关于客户端侧资源(例如,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内容。另外, MFD 103可以经由网络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自己决定其是否可以处理更多或更少的连接。一个可行的实施方式执行截止时间调度,其中,每个任务状态可以具有多个截止时间队列。每个截止时间队列可以与固定的时间周期(例如,Ι/lOms组块)相对应。调度器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相互作用,以帮助其决定如何将视频分配到
1片段中,并且还确定何时判断视频的一部分是热门的(如下所述)。媒体管理器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随后消耗额外的数据,而不进行任何附加的10。在实施方式中,磁盘管理器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、8(Mc高速缓存在RAM中。词典804a、804b、8(Mc由存储在该装置803a、803b、 803c中的对象的树与关于对象的少量元数据一起组成。这允许磁盘管理器206非常有效地回答STAT查询,而不会导致任何磁盘10。磁盘管理器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秒的时间内不需要其下一次10。 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
15确定已经存储在高速缓存中的热门部分哪些不再被确定为是热门的。缓冲管理器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。可用于数据的存储器被静态地分成固定大小页面的阵列。每个页面具有相应的缓冲器结构,以压缩与缓冲器相关联的元数据。还从阵列中静态地分配缓冲器结构。每个缓冲器可以经由缓冲器高速缓存和自由列表而链接。元数据的部分元素是身份。缓冲器的身份。数据缓冲器具有由U0L(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具有η个不同的源,一个或多个SSD 205、一个或多个硬盘206、原始服务器207、或同位体208。媒体管理器接收缓冲器,并用所请求的内容的一部分对其填充。媒体管理器204将所填充的缓冲器发送至缓冲管理器203。如果内容不在本地存储中, 则媒体管理器204从原始服务器、同位体或客户端中检索内容。以下为速度的层级,在一个可行实施方式中,其与每个源相关联
1.存储器(RAM) IOGbps2.闪存4Gbps3.固态器件(SSD) 1. 6Gbps4.磁盘(SAS) :550Mbps5.磁盘(SATA) :400Mbps6.其他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内容。原始管理器208a.原始服务器可以将内容推送至原始管理器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 在服务数据的中间过程时不关闭对话。其仅降低视频简档。例如,如果对于每个网络界面端口,将总设备网络带宽被限制在IG比特/秒,则Σ 所有对话的AFR应小于该带宽。当所有接受的对话的AFR之和等于IG比特/秒时,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.每个连接仅可以分完所计算的对话带宽。在该实施例中=Kibps/该网络端口上的总连接。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侧上的负载。在一个可行实施方式中,可以在被组成为以预定义帧速率(例如,以Bllcbps, 3(^ 8编码的!1.264流)服务的服务器中使用单个媒体数据流。在传送的过程中,根据网络条件,MFD可以选择丢掉较高的临时增强层(通过MP4中的分层方框可以轻松地获得其信息)。同样地,用于这些较低的帧速率部分(例如,15fps、7.5fps)的PDH块的速率将小于Bllcbps,从而提供这样一种机制,该机制在不会很大程度上影响用户的重放质量体验的同时快速地适应带宽波动。在一个可行实施方式中,可以使用附加的提示轨道(或较高等级的方框)对可用于支持特殊再现的各种选项进行描述。这种提示轨道(或方框)可以对MFD提供关于快进或倒带的速度0^ /- /- 等)的信息,同时提供关于相对帧偏移量的精确信息和在重放过程中将帮助客户端播放器的重放速率。在一个可行实施方式中,还可以扩展提示轨道使用,以支持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使用统计信息,使得其可以相对于磁盘使用和内容存取来收集信息,以显示在视觉上表现以下任何内容的图表表现每个磁盘的最近数据检索次数的柱状图数据。磁盘存取计数器。每个磁盘的视频的数量。自由空间的量。所请求的视频的数量。每个磁盘的所请求视频的数量。每个磁盘的最近吞吐量。缓冲器高速缓存中的命中/缺失。各种缓冲器操作。误差(来自媒体管理器统计数据、媒体请求等中)所存储的视频的数量。每个高速缓存的视频的数量。所产生的视频的数量。所删除的视频的数量。媒体提供商的数量。关于媒体提供商的元信息。每个高速缓存级别(存储器、SSDJfa )以及原始源(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具有实现超过10(ibpS的吞吐量的能力,从而产生代替十个以上视频服务器的单个MFD。两个MFD 401可以代替一组20个视频服务器。MFD 401与原始服务器402通信,以当MFD接收URL内容(MFD在存储器中没有)的请求时,或者当MFD从原始服务器接收新的视频内容时,来获得视频内容。MFD直接代替视频服务器,并且入口服务器405、边缘路由器407和分配开关406的基础结构保持相同。图5示出了 MFD在边缘和/或原始位置的布局。在该实施例中,虚线是用于传统实现方式的数据通路。MFD可以被安装在内容所有者的位置501、⑶N 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) 1601的数据流。视频内容文件被存储在可以由MFD 1601接入的至少一个本地存储装置1608上。对于某一视频内容,内容提供商可以提供包含视频内容的几个内容文件,其中,每个文件均以不同的比特率(例如100Kb、200Kb、500Kb、1Mb、2Mb等)被编码。 在一个可行实施方式中,使用MFD 1601,或者可选地,使用中央处理服务器预处理来自原始服务器的输入内容,以产生成块的文件图像,使得根据可配置的参数(例如,一秒,两秒等) 按大小排列文件图像的每个组块。如下所述,组块的大小允许MFD 1601中的服务器侧播放器(SSP) 1607在不同的比特率文件之间提供无缝过渡(平滑流)。在另一可行实施方式中, 组块为逻辑块,它们具有由索引表或任何其他类型的数据结构所跟踪的边界。SSP 1607以与处理物理组块几乎相同的方式来处理逻辑块。在一个可行实施方式中,客户端视频播放器没有限制。客户端视频播放器可以是处理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.一种动态地译码可变比特率媒体内容并在网络上将所述可变比特率媒体内容传送至多个客户端系统的方法,包括通过服务器接收被编码为第一比特率的内容文件;通过所述服务器接收客户端对被编码为与所述第一比特率不同的第二比特率的所述内容文件的请求;响应于接收到所述请求,通过所述服务器来确定所述内容文件的将被译码为所述第二比特率的片段;通过所述服务器将所述片段译码为所述第二比特率; 将所译码的片段传送至所述客户端。
2.根据权利要求1所述的方法,还包括通过所述服务器确定由所述客户端请求的文件格式; 通过所述服务器将所译码的片段格式化为所述客户端要求的文件格式。
3.根据权利要求1所述的方法,还包括在已将所译码的片段传送至所述客户端之后,由所述服务器删除所译码的片段。
4.一种动态地译码可变比特率媒体内容并在网络上将所述可变比特率媒体文件传送至多个客户端系统的方法,包括通过服务器接收被编码为第一比特率的内容文件;通过所述服务器将所述内容文件译码为比特率不同的多个内容文件;将比特率不同的所述多个内容文件存储在与所述服务器通信的至少一个存储装置中;通过所述服务器接收所述客户端对被编码为与所述第一比特率不同的第二比特率的所述内容文件的请求和对比特率不同的所述多个内容文件的比特率的请求;响应于接收到所述请求,通过所述服务器确定比特率不同的所述多个内容文件的一个中的将被译码为所述第二比特率的片段;通过所述服务器将所述片段译码为所述第二比特率; 将所译码的片段传送至所述客户端。
5.根据权利要求4所述的方法,还包括通过所述服务器确定由所述客户端请求的文件格式; 通过所述服务器将所译码的片段格式化为所述客户端要求的文件格式。
6.根据权利要求4所述的方法,还包括在已将所译码的片段传送至所述客户端之后,由所述服务器删除所译码的片段。
7.一种动态地译码可变比特率媒体内容并在网络上将所述可变比特率媒体内容传送至多个客户端系统的设备,包括内容文件接收器,在服务器上接收被编码为第一比特率的内容文件; 内容文件请求接收器,在所述服务器上接收客户端对被编码为与所述第一比特率不同的第二比特率的所述内容文件的请求;片段确定子系统,在所述服务器上响应于接收到所述请求,确定所述内容文件的将被译码为所述第二比特率的片段;译码子系统,在所述服务器上将所述片段译码为所述第二比特率;片段传送子系统,将所译码的片段传送至所述客户端。
8.根据权利要求7所述的设备,还包括文件格式确定子系统,在所述服务器上确定所述客户端要求的文件格式; 文件格式化子系统,在所述服务器上将所译码的片段格式化为所述客户端要求的文件格式。
9.根据权利要求7所述的设备,还包括译码片段删除子系统,在已将所译码的片段传送至所述客户端之后,由所述服务器删除所译码的片段。
10.一种动态地译码可变比特率媒体内容并在网络上将所述可变比特率媒体内容传送至多个客户端系统的设备,包括内容文件接收器,在服务器上接收被编码为第一比特率的内容文件; 译码子系统,在所述服务器上将所述内容文件译码为比特率不同的多个内容文件; 存储子系统,将比特率不同的所述多个内容文件存储在与所述服务器通信的至少一个存储装置中;内容文件请求接收器,在所述服务器上接收所述客户端对被编码为与所述第一比特率不同的第二比特率的内容文件的请求和对比特率不同的所述多个内容文件的比特率的请求;片段确定子系统,在所述服务器上响应于接收到所述请求,确定不同比特率的所述多个内容文件的一个中的将被译码为所述第二比特率的片段;片段译码子系统,在所述服务器上将所述片段译码为所述第二比特率; 片段传送子系统,将所译码的片段传送至所述客户端。
11.根据权利要求10所述的设备,还包括文件格式确定子系统,在所述服务器上确定所述客户端要求的文件格式; 文件格式化子系统,在所述服务器上将所译码的片段格式化为所述客户端要求的文件格式。
12.根据权利要求10所述的设备,还包括译码片段删除子系统,在已将所译码的片段传送至所述客户端之后,由所述服务器删除所译码的片段。
13.一种非瞬时计算机可读介质,携带一个或多个指令序列以动态地译码可变比特率媒体内容并在网络上将所述可变比特率媒体内容传送至多个客户端系统,其中,利用一个或多个处理器执行所述一个或多个指令序列使得所述一个或多个处理器执行以下步骤通过服务器接收被编码为第一比特率的内容文件;通过所述服务器接收客户端对被编码为与所述第一比特率不同的第二比特率的所述内容文件的请求;响应于接收到所述请求,通过所述服务器确定所述内容文件将被译码为所述第二比特率的片段;通过所述服务器将所述片段译码为所述第二比特率; 将所译码的片段传送至所述客户端。
14.根据权利要求13所述的非瞬时计算机可读介质,还包括通过所述服务器确定由所述客户端请求的文件格式; 通过所述服务器将所译码的片段格式化为所述客户端要求的文件格式。
15.根据权利要求13所述的非瞬时计算机可读介质,还包括在已将所译码的片段传送至所述客户端之后,由所述服务器删除所译码的片段。
16.一种非瞬时计算机可读介质,携带一个或多个指令序列以动态地译码可变比特率媒体内容并在网络上将所述可变比特率媒体内容传送至多个客户端系统,其中,利用一个或多个处理器执行所述一个或多个指令序列使得所述一个或多个处理器执行以下步骤通过服务器接收被编码为第一比特率的内容文件;通过所述服务器将所述内容文件译码为比特率不同的多个内容文件;将比特率不同的所述多个内容文件存储在与所述服务器通信的至少一个存储装置中;通过所述服务器接收客户端对被编码为与所述第一比特率不同的第二比特率的所述内容文件的请求和对比特率不同的所述多个内容文件的比特率的请求;响应于接收到所述请求,通过所述服务器确定比特率不同的所述多个内容文件的一个中的将被译码为所述第二比特率的片段;通过所述服务器将所述片段译码为第二比特率; 将所译码的片段传送至所述客户端。
17.根据权利要求16所述的非瞬时计算机可读介质,还包括 通过所述服务器确定由所述客户端请求的文件格式;通过所述服务器将所译码的片段格式化为所述客户端要求的文件格式。
18.根据权利要求16所述的非瞬时计算机可读介质,还包括在已将所译码的片段传送至所述客户端之后,由所述服务器删除所译码的片段。
全文摘要
动态地译码并传送可变比特率媒体文件的方法和设备将媒体文件传送至客户端系统。媒体服务器通过使用原始内容文件或其他译码的内容文件而将内容文件动态地译码为由客户端请求的比特率。媒体服务器可以动态地选择内容文件的一个片段进行译码。确定客户端所要求的文件格式,并将所译码的片段格式化为文件格式。将格式化的片段传送至客户端。
文档编号G06F15/16GK102439578SQ201080020836
公开日2012年5月2日 申请日期2010年3月18日 优先权日2009年3月18日
发明者库马尔·纳拉亚南, 普拉巴卡尔·桑德拉詹, 祖贝尔·维沙拉姆, 苏尼尔·穆昆丹, 雅斯帕·科利 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1