[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN102740159A - 媒体文件存储格式和自适应传送系统 - Google Patents

媒体文件存储格式和自适应传送系统 Download PDF

Info

Publication number
CN102740159A
CN102740159A CN2012100506847A CN201210050684A CN102740159A CN 102740159 A CN102740159 A CN 102740159A CN 2012100506847 A CN2012100506847 A CN 2012100506847A CN 201210050684 A CN201210050684 A CN 201210050684A CN 102740159 A CN102740159 A CN 102740159A
Authority
CN
China
Prior art keywords
data
content
mfd
file
bit rate
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.)
Granted
Application number
CN2012100506847A
Other languages
English (en)
Other versions
CN102740159B (zh
Inventor
祖贝尔·维沙拉姆
苏尼尔·穆昆丹
卡尔蒂克·纳拉亚南
雅斯帕·科利
库马·纳拉亚南
普拉巴卡尔·桑德拉詹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jungle Network
Juniper Networks Inc
Original Assignee
Jungle Network
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jungle Network filed Critical Jungle Network
Publication of CN102740159A publication Critical patent/CN102740159A/zh
Application granted granted Critical
Publication of CN102740159B publication Critical patent/CN102740159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Television Systems (AREA)

Abstract

本发明公开了媒体文件存储格式和自适应传送系统,其中,一种方法和设备用于通过使用一般容器格式来创建通用自适应比特率流,以存储允许从一个自适应流动格式到另一个自适应流动格式的无缝过渡容器化的音频、视频和补充数据。

Description

媒体文件存储格式和自适应传送系统
技术领域
本发明总体涉及媒体内容传送。
背景技术
可以推行在本部分中描述的方法,但这些方法并非一定是先前已经设计或推行的方法。因此,除非本文另外指出,在本部分中描述的方法不是本申请中的权利要求的现有技术,并且不允许通过包含在本部分中而成为现有技术。
这些年来,视频内容在因特网上的传送已得到发展。从内容服务器到客户端计算机的视频传送的最初应用受到技术和带宽容量的限制。必须明显减小视频文件的大小,以适应电话线的低带宽。必须在可以向用户播放视频文件之前将低分辨率视频内容作为整体下载至客户端计算机。这是由于文件系统限制(在文件系统利用文件之前,其需要下载整个文件)和仅具有重放整个文件的能力的视频播放器软件的原因。这迫使用户忍受等待完全下载视频文件的长时延迟。
当下载内容时,创建私人文件格式和视频播放器软件以允许用户观看视频内容。在下载完成且用户观看到视频内容之后,保存或删除该文件。该方法由于带宽限制、服务器负载或网络延迟而非常容易出现下载延迟。由于视频播放器软件缺乏重放的视频内容,所以必须周期性地停止视频内容的重放。
开发了一种更复杂的方法,该方法将视频内容流注至视频播放器软件。传送系统通常针对每个视频内容报头而具有单比特率视频文件。单比特率视频文件被分配给所有用户,而不管他们的带宽是否可用。通过被迫使观看具有比合理带宽低的质量的视频内容,具有比正常带宽高的带宽的用户处于不利地位。
在用户能够重放视频内容之前,缓冲一定量的视频内容。缓冲器足够大,以支持一定量的视频内容来掩盖由带宽限制、服务器负载或网络延迟所导致的视频内容传送中的小延迟。较长的传送延迟(典型地,为几秒或更长)由不稳定的最后一英里带宽导致。传送延迟会使视频播放器软件无内容可播,并导致视频播放器软件停止视频内容的重放,直到传送重新开始且充分填充缓冲器为止。
发明内容
根据本发明的实施方式,提供了一种由一个或多个设备所执行的方法,其中,一种方法或一种携带一个或多个指令序列的计算机可读存储介质包括,其中,通过一个或多个处理器执行所述一个或多个指令序列使得所述一个或多个处理器执行下面的步骤:接收处于第一格式并且被编码为特定比特率的内容的媒体流;从媒体流中提取原始编码内容数据,其中,去除原始编码内容数据中的来自所述第一格式的任何格式化;创建用于原始编码内容数据的流信息,该流信息表示原始编码内容数据内的数据帧;将原始编码内容数据插入结构化文件(structured file)的数据部分中;将流信息插入结构化文件的报头部分中。
根据本发明的另一实施方式,还提供了一种设备,其包括:存储器;和处理器,该处理器被配置为:接收处于第一格式并且被编码为特定比特率的内容的媒体流;从媒体流中提取原始编码内容数据,其中,在原始编码内容数据中,来自所述第一格式的任何格式化被去除;创建用于原始编码内容数据的流信息,流信息表示原始编码内容数据内的数据帧;将原始编码内容数据插入结构化文件的数据部分中;以及将流信息插入结构化文件的报头部分中。
根据本发明的又一实施方式,还提供了一种系统,其包括:至少部分以硬件实现的子系统,接收第一格式且被编码为特定比特率的内容的媒体流;至少部分地以硬件实现的子系统,从媒体流中提取原始编码内容数据,其中,去除原始编码内容数据中的来自第一格式的任何格式化;至少部分地以硬件实现的子系统,创建用于原始编码内容数据的流信息,该流信息表示原始编码内容数据内的数据帧;至少部分地以硬件实现的子系统,将原始编码内容数据插入结构化文件的数据部分中;至少部分地以硬件实现的子系统,将流信息插入结构化文件的报头部分中。
附图说明
在附图的图中,通过实施例但不限于实施例来示出了本发明,其中,相同的参考标号指的是相同的元件,其中:
图1示出了根据本发明的可行实施方式的在网络间与客户端系统、源服务器(origin server,原始服务器)、同等MFD以及中心管理站相通信的媒体流导向器(MFD);
图2示出了根据本发明的可行实施方式的MFD部件和数据流架构的实施例;
图3示出了根据本发明的可行实施方式的动态地确定部分内容的流行度(popularity)的实施例;
图4示出了根据本发明的可行实施方式的代替传统的视频服务器网站的MFD配置;
图5示出了根据本发明的可行实施方式的向客户端系统传送内容的MFD网络;
图6示出了可以在其上执行一可行实施方式的计算机系统;
图7a示出了根据本发明的可行实施方式的HPE和服务器侧播放器之间的工作流程的流程图;
图7b示出了根据本发明的可行实施方式的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示出了根据本发明的实施方式的内部文件结构;
图22示出了根据本发明的实施方式的用于高速缓存多比特率文件的MFD;
图23示出了根据本发明的实施方式的响应于片段请求从单比特率文件动态地创建比特率特定文件的MFD;
图24示出了根据本发明实施方式的将多比特率文件高速缓存并从所高速缓存的多比特率文件中的一个中动态地创建比特率特定文件的MFD;
图25示出了根据本发明实施方式的将两个比特率文件发送至边缘服务器的源服务器;
图26示出了根据本发明实施方式的从来自源服务器的源输入文件中创建平滑流格式化文件的媒体流发布器(MFP);
图27示出了根据本发明实施方式的从不同的格式化源文件输入流/文件中创建媒体基本单元(MFU)的MFP;
图28示出了根据本发明实施方式的从源服务器中创建来自不同源输入流/文件的MFU格式化文件的MFP;
图29示出了根据本发明实施方式的从源服务器中创建来自不同源输入流/文件的MFU格式化文件的MFD;
图30示出了根据本发明实施方式的从现场源输入流和源输入文件中动态地创建MFU格式化文件的MFD。
具体实施方式
描述了一种动态可变速率媒体传送系统。在以下描述中,为了解释的目的,阐述了许多具体细节以提供对本发明的充分理解。然而,对于本领域的技术人员来说将显而易见的是,在没有这些具体细节的情况下也可以实践本发明。在其他情况中,以框图的形式示出了众所周知的结构和装置,以避免不必要地使本发明模糊。
本文中,按照以下要点描述实施方式:
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准备平滑流文件
2.2.5媒体流发布器
2.2.6通用媒体文件格式化
3.0实现机制——硬件概述
4.0实施例
5.0扩展和变形
1.0总体概述
本概述给出了本发明的可行实施方式的一些方面的基本描述。应当注意,该概述不是可行实施方式的方面的广泛或彻底的总结。此外,应当注意,该概述并非旨在被理解为确定可行实施方式的任何具体的重要方面或元件,也并非旨在被理解为具体地描述可行实施方式的任何范围(具体地,并非旨在大体上为本发明)。该概述仅提出了一些与压缩且简化的形式的实施例可行实施方式相关的概念,并且其应被理解为,仅是以下实施例可行实施方式的更详细描述的概念上的序言。
描述了一种可变速率媒体传送系统。在其他实施方式中,本发明包含计算机设备和被配置为执行所述步骤的计算机可读介质。在以下文本中,视频内容和视频数据被用作媒体内容和媒体数据的实例,但是,这些实例不限于视频内容,还可以包括其他类型的媒体内容和媒体数据,例如,音频、多媒体表现、放映幻灯片等。该系统通过传送适于变化的比特率的媒体数据来适应服务器和客户端之间的比特率变化。在实施方式中,视频数据被发送以匹配服务器和客户端之间的带宽。客户端和服务器之间的带宽是不断改变的。在某一时间点,存在这样的比特率,必须以该比特率传送用于视频的视频数据,使得该视频由客户端的视频播放器连续播放而没有暂停或中断。
该系统确保客户端视频播放器不会没有数据。可自动地检测服务器和客户端之间的带宽,并且通过服务器将带宽映射至适当的视频比特率。客户端视频播放器被提供有稳定的视频数据流。时间尺度(time scale)没有受到影响,但传递至客户端的数据的量可以改变以与可用的带宽相匹配。如此,正播放的视频的质量可以改变。客户端播放器始终播放相同量的数据;只有视频的质量改变。
服务器在用户和客户端视频播放器看不到任何中断的情况下而在视频比特率之间进行无缝地切换。在可行实施方式中,为了阻止对峰值或谷值过快地产生影响,服务器可以在比特率具有明显的下降或增加时切换比特率。唯一可注意到的变化是所播放的视频的质量。标准的视频播放器可以用来与服务器对接。可行的实施方式经由渐进式下载方法而向用户提供视频流体验。在另一可行实施方式中,视频播放器可以通过使用控制信号或命令与服务器通信来使能服务器的其他特征(例如,特殊再现特征/比特率自适应)、或通过提供关于客户端侧资源(例如,CPU使用率/内存)的信息而具有与服务器相通信的性能。特殊再现是这样一种特征:允许用户在当前流动的视频上使用流命令(诸如快进、倒带、帧步进、暂停等)来控制其媒体重放体验。
在另一可行实施方式中,可以稍微改进视频播放器,以能够向服务器发送告知服务器视频播放器已暂停的控制信号或命令。暂停通知使服务器暂停对视频播放器的渐进式下载。这释放了服务器的部分带宽,并使服务器处理其他下载。
描述了一种适应性网络内容传送系统。参考图1,可行实施方式提供了媒体流导向器(MFD:media flow director)103。MFD是可以经由HTTP、FTP、流(streaming)或其他协议而将网络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内容时,为了获得URL内容,MFD 103可以经由网络104或经由局域网从源服务器102请求该内容。另外,为了获得URL内容、MFD内容信息、MFD状态等,MFD 103可以经由网络104或经由局域网与另一MFD 105通信。
中心管理站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发送与客户端建立连接的请求(例如,针对特定URL的HTTP获得请求),输出协议引擎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:assured flow rate)值(如下所述)。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返回的数据缓冲发出之前,如果需要,则可以对其进行修改。
图7a和图7b示出了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针对存储在MFD中的所有对象而在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)中。在一个可行实施方式中,分析模块监控视频1301、视频2302、视频3303及视频4404。其发现,存在比该视频的其他部分或利用客户端系统的其他视频更频繁地观看的视频的片段。将视频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、硬盘、对(peer)等)。其查看分析和/或策略,以确定何时升级、降级或逐出高速缓存内容。媒体管理器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将是视频文件容器(在该实施例为moov)1203内的较高等级的元方框,视频文件容器向MFD描述其可用的所有选择以支持PDH。
在一个可行实施方式中,取决于来自客户端的请求而适应变化的带宽条件、可用的客户端CPU资源,或由MFD查询(poll)网络以解决网络等待时间,MFD侧逻辑可以在以下方面进行智能决策:其应如何服务以及服务何种类型的比特率、帧速率或分辨率,以最佳地满足网络的条件和客户端的需求。
在一个可行实施方式中,可以通过MFD使用提示轨道,以决定最佳的速度或分辨率来进行服务,然后,将媒体数据的时间周期的相关部分压缩成MP4的自包含块,以在HTTP上传送。在普通容器中存在的媒体数据本身不需要以任何方式重定格式。
在一个可行实施方式中,可以产生多个预定义的PDH提示轨道,其覆盖大多数普通使用条件,以减小MFD侧上的负载。
在一个可行实施方式中,可以在被组成为以预定义帧速率(例如,以B1 kbps,30fps编码的H.264流)服务的服务器中使用单个媒体数据流。在传送的过程中,根据网络条件,MFD可以选择丢掉较高的临时增强层(通过MP4中的分层方框可以轻松地获得其信息)。同样地,用于这些较低的帧速率部分(例如,15fps、7.5fps)的PDH块的速率将小于B1 kbps,从而提供这样一种机制,该机制在不会很大程度上影响用户的重放质量体验的同时快速地适应带宽波动。
在一个可行实施方式中,可以使用附加的提示轨道(或较高等级的方框)对可用于支持特殊再现的各种选项进行描述。这种提示轨道(或方框)可以对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)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。
  SF查询参数状态   注释
  状态-0   没有平滑流/平滑流禁止
  状态-1   平滑流媒体数据请求
  状态-2   平滑流客户端元数据请求
  状态-3   平滑流控制信号
  状态-4   经由触发器的平滑流预分级请求
  状态-5   用于触发器/高速缓存缺失的平滑流内部读取
表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)
当从一个比特率流切换至另一个比特率流时,可能出现伪像。在一个可行实施方式中,可以以这样的方式编码视频数据,使得在组块之间存在视频数据的重叠。当之前的组块进入重叠区域本身时,没有渲染(rendering),开始下一个组块的初始化和重放。当出现实际的组块过渡时,减少/去除帧抖动。可以通过在预定的组块边界处切换视频的比特率,来实现平滑流。为了将抖动最少化,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获得与来自源服务器1701的内容相关联的文件。在一个可行实施方式中,平滑流系统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在网络连接(例如因特网、内联网等)上服务对来自客户端播放器1710a至1710c的视频数据的请求。边缘服务器1709a至1709c与很多客户端播放器相通信。边缘服务器1709a至1709c在网络连接(例如,因特网、内联网等)上还与MFD 1703通信。当对来自客户端播放器(例如,客户端播放器1710a)的内容的请求在边缘服务器(例如,边缘服务器1709a)上导致高速缓存缺失时,边缘服务器作用于高速缓存缺失触发器,并将对内容的请求发送至MFD 1703中的源服务器1707。源服务器1707将预处理的平滑流内容文件发送至边缘服务器1709a。边缘服务器1709a通过使用预处理的平滑流内容文件而向请求的客户端播放器1710a服务内容。
在一个可行实施方式中,与以上的实施例一样,触发器可以以预处理请求为基础。甚至在边缘服务器从客户端播放器接收对内容的请求之前,用户可以将触发器特定地发送至边缘服务器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帧。
广告插入——其中,可以无缝地组合或混合广告。
通过改变插入的音频包来选择音频语言。
现场流(live stream)——通过将数据实时地转换为构件块,并在PDL上的电线上对它们进行传输。
预处理引擎1808可以产生准备好的视频数据、用于服务器的元数据、用于客户端的元数据,以及给出每个作业的状态的作业状态报告。作业状态报告可以在简单的文本文件中汇报以下内容:
所处理的简档的数量
所处理的总数据
用于处理所花费的时间
处理数据的速率
错误代码(如果有的话)
视频文件结构
参考图20,示出了FLV 2001和MP42002文件结构。在FLV文件格式2001中,报头信息横跨在整个文件上,而对于MP4文件2002,整个报头信息2010适当地集中在开始处。与MP4格式相比,这种形式的报头布局使得FLV格式对渐进式下载非常好。在一个可行实施方式中,由于由FLV结构所提供的固有的优点,将H.264/AAC内容存储在FLV容器中而不是存储在MP4中,可以在平滑流传送框架方面给予帮助。以下是渐进式下载方面的两种格式之间的几个特征,用于进行比较:
Figure BDA0000139645210000521
当将H.264内容存储在FLV中时,没有质量损失。在比特方面,数据是精确地相同的。当将该数据以FLV格式存储时,在文件大小上存在微小的系统开销。
作为平滑流工作流程的一部分,使用与内容提供商/发布商、MFD和客户端播放器相关的三种不同类型的元数据规格。下面的文本描述了以下细节:
用户媒体资产描述规格
内部规格
客户端播放器XML元数据规格
媒体资产需要被输入至MFD系统中,使得经由预分级机制或通过高速缓存缺失机制能够进行基于平滑流的传送。由于在平滑流情况中媒体资产为比特率不同的一组视频序列,所以关于对其命名和分组应存在标准化。资产的所有者发布附加的元数据,以帮助预处理和传送过程。可以以下面的格式将元数据发布为简单的文本文件:
Figure BDA0000139645210000531
元数据文件可以包含以下信息块:
-简档/流的数量
-每个流的总比特率<Br(kbps)>
-用于每个流的URI
-关键帧间隔(n秒)
以上实施例使用FLV作为一个实例,但也支持MP4。
参考图21,在一个可行实施方式中,预处理引擎准备输入视频数据,以支持如同平滑流的各种特征。预处理包括重新格式化内容并增加特征特定的元数据。
每个特征均具有标签报头,其可以具有该特征所需的所有字段和对其可能需要的数据集的偏移量。该数据可以由文件顶部处的类属报头2102来引导。报头具有关于特征的数量的信息,这些特征在具有其特征标识符的特定元数据文件中得到支持。该信息可以直接被用于快速地移动至所需特征标签并从该特征标签移动至该数据集。
类属报头2102
Figure BDA0000139645210000541
特征表(nkn_feature_table)
Figure BDA0000139645210000542
特征TAG 2103,2105
Figure BDA0000139645210000543
特征标签
平滑流
Figure BDA0000139645210000544
Figure BDA0000139645210000551
客户端播放器XML元数据规格
以下示出了用于客户端元数据规格的概要的一个实施例:
Figure BDA0000139645210000552
Figure BDA0000139645210000561
平滑流文件的动态创建
MFD具有实时和按需地动态转码或速率转换(transrate)多比特率的内容文件的能力。在以下讨论中,详细地讨论了转码,然而,可以使用速率转换来代替转码,或将其与转码相组合。参考图22,在一个可行实施方式中,MFD 101在传送过程中实时地转码多比特率流。MFD 101接收高质量单比特率内容文件2201,并将单比特率内容文件存储在至少一个本地存储装置中。可以通过源服务器、内容提供商、同等MFD等将单比特率内容文件发送至MFD 101。在一个可行实施方式中,MFD 101监测对单比特率内容文件的需求。如果MFD 101确定单比特率内容文件是热门的,则MFD 101实时地将内容文件转码成多比特率2202。在一个可行实施方式中,MFD 101从单比特率内容文件将内容文件转码为一组固定的比特率。比特率可以是一组流行的比特率。在另一可行实施方式中,MFD 101可以将内容文件转码成其已经接收对其的请求的比特率。在任一种情况中,将所转码的比特率内容文件被存储在至少一个本地存储装置中或存储在高速缓存中,并被用于服务请求。
当MFD 101接收对内容的请求时,MFD 101针对适于请求并服务适当的比特率内容文件(平滑流文件)2203的所高速缓存的比特率内容文件来搜索其高速缓存(或至少一个存储装置)。例如,可以在原始或边缘服务器中执行MFD 101功能。
参考图23,在一个可行实施方式中,MFD 101动态地转码内容文件的片段(或组块)。MFD 101接收高质量单比特率内容文件2301,并将单比特率内容文件存储在至少一个本地存储装置中。可以通过源服务器、内容提供商、同等MFD等将单比特率内容文件发送至MFD 101。当接收到内容请求时,MFD 101向客户端提供单比特率内容文件2302。在一个可行实施方式中,MFD 101接收对单比特率内容文件2302(其处于与编码内容文件时的单比特率不同的比特率)的片段2306的请求。MFD 101还可以,或者可选地从客户端接收对用于内容的某一比特率的请求,然后,确定单比特率内容文件的以该比特率转码的片段2306。在一个可行实施方式中,MFD 101可以自动地检测客户端的可用比特率的变化(如上所讨论的),并确定片段2306要被转码至的比特率。可以自然地转码片段2306,或将其发送至GPU或专用硬件2303,以转码成所请求的比特率。GPU或专用硬件2303将片段206转码成所请求的比特率。将所转码的片段发送至格式器2304。格式器2304具有将所转码的片段格式化为多种媒体容器格式的能力,例如,具体用于某些手机或客户端软件的格式等(例如,成碎片的mp4文件,片段的mpeg-ts组块等)。MFD 101可以以几种方式自动地检测客户端所需的格式。MFD 101可以经由通常对客户端而言是唯一的客户端的请求来检测客户端的类型。MFD 101还可以经由对于客户端类型而言是唯一的请求的格式(例如URL格式等)来检测客户端。格式器2304创建用于客户端的格式化片段,并将格式化片段传送至客户端2305。
作为一个实施例,如果单比特率内容文件为2Mbps文件。则MFD 101从客户端接收对单比特率内容文件的200kbps片段(在时间t1开始并在时间t2结束)的请求。开始时间t1和结束时间t2可以在组块边界上,或由MFD 101动态地定义。MFD 101将片段发送至格式器2304。MFD 101已检测到客户端为类型X的特定装置。MFD 101在表、数据库、数据结构等中查找类型X,并发现装置特性和装置需要成片段的mp4文件。格式器2034以所请求的比特率将所转码的片段格式化成片段的mp4文件。MFD 101将格式化的片段传送至客户端。
图24示出了图22和图23的组合。在该实施例中,MFD 101接收高质量单比特率内容文件2401,并将单比特率内容文件存储在至少一个本地存储装置中。MFD 101将单比特率内容文件转码成一组数量的比特率(例如,三个或四个)。这些比特率可以是该类型的内容通常所请求的流行比特率。MFD 101将所转码的内容文件存储在至少一个本地存储装置中或存储在高速缓存中。MFD 101向请求的客户端服务所转码的内容文件和/或单比特率内容文件。当客户端请求所存储的转码的内容文件或与单比特率内容文件的比特率不同的比特率时(或MFD 101检测客户端的比特率变化),MFD 101将最接近新比特率的所转码的内容文件或单比特率内容文件的片段发送至GPU或专用硬件2403。这减少了创建被转码成新比特率的内容文件所需的计算资源的数量。GPU或专用硬件2403将该片段转码至新比特率。将所转码的片段发送至格式器2404。
格式器2404将所转码的片段格式化为客户端要求的格式。将格式化的片段传送至客户端。可以将格式化的片段存储在高速缓存中,以用于未来的客户端请求。在一个可行实施方式中,MFD 101还可以具有将所转码的片段格式化成其他流行的格式的格式器2404。MFD 101可以将格式化片段存储在高速缓存中,以用于未来的客户端请求。将格式化的片段存储在高速缓存中的决定可以取决于对客户端相应速度或存储器消耗的要求。如果客户端响应速度是所关心的而存储器消耗不是所关心的,则可以将格式化的片段存储在高速缓存中。如果存储器消耗是所关心的,则不执行附加片段的格式化,不将格式化的片段存储在高速缓存中,并且格式化的片段一旦被传送至客户端,就将其删除。
参考图25,在一个可行实施方式中,可以通过使边缘服务器将内容文件转码为比特率明显不同的两个或多个比特率(边缘服务器可以选择使用哪个所转码的内容文件将该文件进一步转码成更低的比特率),而使边缘服务器进行更有效的转码。源服务器2501从诸如内容提供商的源中接收单比特率文件2502。源服务器2501将单比特率内容文件发送至GPU或专用硬件2503以进行转码。GPU或专用硬件将单比特率内容文件转码成两个或多个比特率内容文件。作为一个实施例,当以两个比特率转码内容文件时,比特率被选择为明显不同,使得如果边缘服务器优先于第二转码的内容文件而选择第一转码的内容文件以作为第三比特率进行转码的基础,则边缘服务器可以节约计算资源。由此产生的以高比特率经转码的内容文件2504和以低比特率经转码的内容文件2506被传送至多个边缘服务器2506、2507、2509。边缘服务器2506、2507、2509使用高比特率内容文件和低比特率内容文件作为其将内容文件转码为其他比特率的基础。例如,在将高比特率内容文件转码成4Mbps并将低比特率内容文件转码成500kbps的情况中,边缘服务器接收对200kbps的内容的请求。边缘服务器确定500kbps文件更接近200kbps请求。边缘服务器使用500kbps文件来转码至200kbps,从而节约边缘服务器上的计算资源。
2.2.5媒体流发布器
图26示出了使用媒体流发布器(MFP)2601来将预处理的文件或现场/线性流发布至MFD边缘服务器的可行实施方式。MFP 2601作为中央自适应比特率内容发布器而对MFD边缘服务器2604a-2604c进行操作。内容提供商2602将内容以多比特率文件和/或现场/线性流的形式传送至MFP 2601。在可行实施方式中,MFP 2601可通过如上文针对MFD 1703所述的相似方式来预处理这些内容流/文件。一旦这些流/文件被预处理/发布成自适应比特率片段,MFP 2601可将这些发布的平滑流片段和它们各自的播放列表文件存储在与MFP 2601通信的至少一个存储装置上。MFP2601在网络连接2603(例如互联网、内部网等)上将平滑流内容片段文件推送至MFD边缘服务器2604a-2604c。
可选地,在可行实施方式中,MFP 2601可将发布的平滑流片段文件推送至网络文件服务器(NFS)(未示出)。MFP 2601可使用例如NFSwrite、FTPpush、HTTPpost将发布的平滑流片段文件推送至NFS。MFD边缘服务器2604a-2604c可从NFS中获得所发布的平滑流片段文件。
如上所述,MFD边缘服务器2604a-2604c服务对来自客户端播放器的视频数据的请求。
2.2.6通用媒体文件格式
针对自适应比特率传送已经介绍了多种不同的方法,这些方法目的在于解决关于缓冲、等待时间和最后一英里带宽的不可预测的属性的问题。例如,San Jose,California的Adobe系统公司已经实现了使用用于Flash播放器的分段MP4的自适应基于HTTP解决方案(被称为HDS(HTTP动态流动))。Seattle,Washington的Mirosoft公司具有相似的解决方案(被称为平滑流动),其使用用于其Silverlight播放器的自身版本的分段MP4。而Cupertino,California的Apple公司使用用于iOS装置和浏览器的分段MPEG2-TS解决方案(被称为HLS(HTTP现场流动)。3GPP具有用于移动装置的相似方法(被称为AHS(自适应HTTP流动),并且ISO/IEC MPEG正开发被称为DASH(HTTP上的动态自适应传送)的另一种版本。而W3C协会也在研究用于HTML5的ABR方案。每种方法都试图向最终观看者提供顺畅和不间断的观看体验。
这些方法中的大多数均使用相同的编码技术,即,用于视频和音频编码的H.264和AAC。此外,上面的所有方法都是主要由客户端驱动的;其中,播放器对资源进行监控并且相应地将自适应请求发送至服务器/高速缓存。然而,每种方法都使用其自身变量用于将编码的媒体片段容器化并定义播放列表文件和分段的结构。例如,Adobe系统基于具有F4M XML形式的清单的ISO moof格式来使用分段MP4传送方案,F4M XML形式的清单包含用于播放器的相关自举信息(bootstrap information)以进行适应。Microsoft使用向Silverlight播放器提供索引信息的基于XML的清单文件(.ISMC)。播放器又基于来自服务器的空闲URL形式的moof格式,产生用于分段MP4(.F-MP4)文件的请求。在针对所需的现场流动如何产生清单文件上存在变化。Apple使用M3U8分级的基于文本的索引/播放列表文件,以向iOS装置和浏览器提供索引信息。随着提供索引文件,iOS装置媒体播放器产生用于分段MPEG2-TS组块的绝对请求。针对需要和现场流而存在这些播放列表的变量。
如果内容拥有者或发布者希望将媒体内容流动至上面所述的播放器中的一些或所有,内容拥有者或发布者需要独立地创建并发布媒体资源,这些媒体资源被特定格式化至负担发布系统并且还显著增加存储要求的客户端中的每一个。内容拥有者或发布者可能面对的共同问题为:
-在用于所有这些客户端技术的很多比特率间创建/编码相同媒体数据的多个拷贝。
-增加源库(origin library)中的存储的使用率。
-增加原始高速缓存和边缘高速缓存之间的带宽的使用率(例如,源供给中心(origin backbone)被用于传输多个拷贝以满足所有的客户端)。
-增加边缘高速缓存中的存储空间的使用率。
本发明的可行实施方式通过在最外边缘高速缓存处传送过程中实时进行实际的自适应而在上述方法间披露了最共同的方面。通过这种方式指出共同性帮助减少发布端处的费用,在发布端处,内容拥有者不需要分别创建/编码用于每个客户端技术的资源。该实施方式还降低源库中的存储需要和在原始高速缓存和边缘高速缓存之间的带宽使用率。边缘高速缓存还通过存储单个版本的资源并且实时重新处理这些资源以传送至上面的实例客户端技术中的任一个,而能够提供存储最佳化。
如上面所指出的,这些方法中的大多数将它们的技术以相同类型的媒体编码译码器为基础。例如,前面段落中所述的方法使用H.264和AAC媒体编码译码器。可行实施方式以一种形式存储用于视频流和音频流的原始编码元素比特流,该形式适用于对利用通用媒体编码译码器的方法实时进行简单的自适应。注意,可以以相同的方式处理使用如上所述的除H.264和AAC之外的相同编码译码器的任一组方法。本文所述的可行实施方式在这些方法之间利用媒体编码译码器的共同性。
如上所述,编码器可将媒体资源的预编码的多比特率文件提供给MFD、MFP或边缘服务器。可选地,发布器可将高质量的单比特率文件/流提供给源服务器、MFP、MFD或边缘服务器。随后,根据需要,可在源服务器、MFP、MFD处或在边缘服务器处产生更低的比特率。这仅产生存储在高速缓存中或在供给中心上传送的所有多比特率文件/流的单个拷贝。
在可行实施方式中,在传送过程中,根据进入请求或用户代理(例如,Flash,Silverlight,iOS等),MFP将原始编码媒体数据重新处理为适于向各个客户端进行传送的格式。例如,如果客户端为Flash播放器或Silverlight播放器,则MFP将编码流重新处理为符合由Adobe和/或Microsoft概括的规定的分段MP4格式。MFP还可以实时产生传送至这些客户端的播放列表/清单文件。如果客户端为iOS装置,MFP将编码流重新处理为符合由Apple概括的规定的分段MPEG-TS组块格式。MFP还可以实时产生M3U8播放列表索引文件。
在可行实施方式中,媒体基本单元(MFU)是用于存储允许从一个自适应流动格式到另一个自适应流动格式的无缝过渡容器化(seamlesstrans-containerization)的音频、视频和补充数据的普通容器格式。在一种形式中,MFU可包含所编码的音频和视频的多个媒体访问单元。MFU可包含至少一个独立的可解码的画面GOP。MFU中的报头/数据布局遵循下面所述的框布局。在可行实施方式中,布局/格式可以为基于IOS/IEC14496-12的可扩展格式。在可行实施方式中,MFU的文件结构可包括以下内容:
Figure BDA0000139645210000621
Figure BDA0000139645210000631
Figure BDA0000139645210000641
Figure BDA0000139645210000651
Figure BDA0000139645210000661
参见图27,在可行实施方式中,MFU格式可以被用于所需视频2701和现场流(和多个摄像头)2702。对于所需视频2701,源文件格式2703可以为.ISMV、.ISMA、.TS、.MP4和F4V等格式。解析器2705可解析输入文件以创建用于每个被支持的比特率的MFU文件2706。在可行实施方式中,MFU文件被存储在至少一个存储装置中以被用于创建对应于特定输出格式的输出文件。解析器2705创建用于每个MFU文件的报头信息并且将报头信息存储在MFU文件中。在可行实施方式中,位于MFD或MFP中的分段器(fragmenter)2708获得用于特定比特率的MFU文件并且通过使用MFU的报头信息和用于请求该片段的播放器的类型来创建符合特定输出格式2709(例如,.F-MP4、.ISMC、.TS)和它们各自的清单.M3U8、.F4F、.ISMC等的输出流。分段器2708使用该报头信息来创建流动至客户端装置的片段。分段器2708具有使用内容的其他MFU文件以适应用于客户端装置的比特率的能力。在任一情形中,这些片段通过使用用于每一MFU文件的报头信息而处于用于客户端装置的正确格式,无论什么样的比特率正被发送至客户端装置。
在实例情形中,H.264输入流在流内可包括指示数据的帧开始和结束的分隔符。不是所有可能的目标输出格式都以相同的方式使用帧分隔符。例如,Microsoft Silverlight格式不要求分隔符,但要求在流中的每个帧之前插入的帧大小。相反,Apple要求指示包括在流内的帧的开始和结束的H.264帧分隔符。解析器2705通过从H.264输入流中除去分隔符并且将原始数据存储在MFU文件的数据部分中,来创建用于输入流的MFU文件。解析器2705将指示数据中的画面组的大小的信息以及描述该数据的其他信息存储在MFU文件的报头中。
在这种实例情形中,分段器2708接收来自客户端的请求以传送用于内容Y的Silverlight格式化流。所述请求可规定内容处于比特率X(例如,200Kb,300Kb等)或MFD可确定如本文所述的适当的比特率。分段器2708检索与确定的比特率相对应的内容Y的MFU文件(例如,来自与MFP或MFD通信的至少一个存储装置,无论MFP或MFD,都实现了分段器)。在可行实施方式中,可以仅存在存储在MFD的一个高质量比特率MFU文件,并且分段器2708可将MFU文件的数据部分转换为合适的比特率。分段器2708使用MFU文件中的报头信息来索引MFU数据部分并且得到合适大小的数据帧以通过合适的格式(在该情形中,为Silverlight)来打包数据。分段器2708在输出流中的每个数据帧之前插入帧大小并且将输出流发送至请求的客户端装置。如果分段器2708位于MFD中,MFD可高速缓存如本文所述的格式化的输出流以用于后面的应用。
在可行实施方式中,如果MFP仅接收单个高质量流,则其可将该流转码/速率转换成更低的速率以通过所述的MFU格式来存储。在这种情形中,解析器2705使用专用硬件或软件资源进行转码/速率转换以实时产生更低的比特率,并且可与提示轨道一起以存储/高速缓存格式来存储所产生的流。在可行实施方式中,在传送至客户端的过程中,可实时产生更低的比特率以将存储足迹进一步最佳化。在这种情形中,可将报头预先固定至实时产生的MFU。MFP传送的实际组块或分段符合每一客户端技术规定。如此,任何CDN或第三方高速缓存可高速缓存该流并且将其传送,而不需要任何进一步的改变。
在可行实施方式中,可与输入文件一起接收包含广告插入线索的数据。该数据可以在输入文件中或可在由输入文件源发送或从另一个源获得的为特定格式的单独数据文件中。MFU可包含支持广告插入线索的字段。所述字段可指示在哪个帧插入了广告。解析器2705可将线索插入在向装置指示读取MFU在哪里插入了广告的MFU报头数据中。
在实施方式中,通过分段器2708将广告插入(广告插接)输出流中可发生在MFP或MFD。当分段器2708读取MFU文件时,随着它遇到广告插入线索,其可将广告插入输出流中。先前已经通过MFP或MFD从广告源中得到广告或当分段器2708创建输出流时从广告源中得到广告。
在可行实施方式中,MFP或MFD可使用接收的广告插入线索将广告插入MFU。当MFP或MFD上的解析器创建MFU时,MFP或MFD将广告插入在由广告插入线索指示的点。该广告可以先前通过MFP或MFD已从广告源得到,或当MFP或MFD创建MFU时从广告源得到。
在可行实施方式中,MFD边缘服务器可从MFP中接收在报头信息中没有广告插入线索的MFU。MFD上的分段器2708使用来自单独文件的插入线索仍可插入广告。当分段器2708创建输出流时,其可以读取广告线索并且将广告实时插入由广告插入线索指示的点。该广告可以先前通过MFD边缘服务器已从广告源得到,或者当分段器2708创建输出流时从广告源得到。
在可行实施方式中,由MFD接收到的MFU可在报头信息中具有广告插入线索。当分段器2708遇到MFU报头中的广告插入线索时,其可将广告标记放置在输出流中。当客户端播放器遇到广告标记时,其可将广告插入显示流。该广告可以先前通过客户端播放器已从广告源得到,或当客户端播放器播放接收的输出流时从广告源得到。
在可行实施方式中,由MFD接收到的MFU可以在报头信息中不具有广告插入线索。MFD上的分段器2708可使用来自单独文件的广告插入线索将广告标记插入在输出流中。分段器2708可将广告标记放置在输出流中的由广告插入线索指示的点处。当客户端播放器遇到广告标记时,其可将广告插入显示流中。该广告可以先前通过客户端播放器从广告源得到,或当客户端播放器播放接收的输出流时从广告源得到。
对于现场流(live stream,直播流)2702,源流格式2704可以为.TS等格式。接收器2710可解析输入流以创建MFU文件2706和用于每个支持的比特率的其相关的报头信息。在可行实施方式中,接收器2710可在短时间间隔中进行MFU格式的实时自适应以使分段器2708向不同的客户端传送延迟现场自适应(delayed live adaptive)或单比特率流。在可行实施方式中,MFU文件可被存储在至少一个存储装置中以被用于创建与特定输出格式对应的输出文件。在可行实施方式中,分段器2708找到用于特定比特率(用于自适应比特率流)的MFU文件,并且通过使用MFU的报头信息来创建根据特定输出格式2709(例如.F-MP4、.ISMC、.TS、.M3U8、.F4F、.FMF等)的输出流。可通过如上所述的相同方式来处理广告插入线索、广告插入和广告标记。
在可行实施方式中,分段器2708可将新流和/或附加比特率添加至已经存在的现场对话。分段器2708可动态地将附加流插入现场流。例如,当接收器2710接收到语言流时,可将语言流添加至现场流。分段器2708可动态地将新比特率流添加至现场流同时被转码成其他比特率。这允许分段器2708立即适应于支持用于现场流的更多(或更少)的比特率。
在可行实施方式中,MFU格式可提供下面的优点:
-仅需要将用于每个比特率的视频/音频比特流的单个拷贝存储在边缘处的高速缓存中。这在边缘服务器处提供了存储最佳化。
-例如,比特流到分段-MP4、片段MP2TS,FLV数据包等的所需格式容器化/转换。
-客户代理的智能检测,例如,Flash,SL,iOS等,并且进行实时格式再容器化。MFD能够基于请求格式来检测客户端类型并且使用提示格式将媒体数据转换为适合正被服务的客户端的数据包类型。
-消费者(例如,内容提供器,源服务器等)在不专门产生用于每个客户端装置的个体资源的情况下迎合更多观众的能力。因为媒体编码译码器格式是通用的,所以消费者只需要创建符合媒体编码标准的多比特率文件或单高质量比特率文件。在传送过程中,MFP实时地将编码的媒体数据打包成相关的数据包格式。
参见图28,在可行实施方式中,MFP 2801可从源服务器中接收很多类型的输入文件格式,诸如raw格式2802、Apple格式(.TS、.M3U8等)2803、Adobe格式(.F4F、.FMF等)、Microsoft格式(.F-MP4、.ISMC等)2805、多比特率可调格式(SVC等)等。在可行实施方式中,MFU文件生成器2806将每个特定的比特率输入文件转化为MFU格式文件。在可行实施方式中,MFU文件生成器2806可包括如本文所述的解析器。MFU格式文件使MFD选择特定比特率的MFU文件并且创建用于该特定比特率的任一输出格式文件。MFU文件生成器2806可从任一格式的单高比特率输入文件2802-2805(从内容提供器或源服务器中接收到)中创建任何数目的不同的MFU比特率文件2807-2809。MFU文件生成器2806可将高比特率输入文件转码/速率转换成每个特定比特率MFU文件并且将报头信息添加至每个MFU文件。
可选地,MFP2801可从内容生成器或源服务器接收用于特定内容的几个比特率文件。MFU文件生成器2806可随着产生用于每个MFU文件的报头信息一起将每个文件转换为MFU格式文件。
在可行实施方式中,MFP 2801可与密钥管理服务器(KMS)通信以获得加密密钥。MFP 2801可取得用于其支持的所有不同类型的加密方案(AES、PlayReady、FAX等)的密钥。MFP 2801将密钥存储在MFU文件中。MFD边缘服务器可使用MFU文件中的密钥并且在将数据传送至客户端之前对无格式数据加密。MFD边缘服务器的优点是不需要存储用于各种客户端类型的加密版本的内容。
一旦已经将文件预处理成MFU文件,MFP 2801可将预处理的平滑流内容片段文件存储在与MFP 2801通信的至少一个存储装置上。MFD2801在诸如互联网、内部网等的网络连接2810上将MFU文件推送至MFD边缘服务器2811a-2811c。
MFD边缘服务器2811a-2811c可根据上面所述的存储/高速缓存格式来存储MFU文件。一从客户端装置接收到对内容的请求并且确定了针对客户端所需要的合适比特率,MFD边缘服务器可检索用于被请求内容的合适比特率MFU文件,并且通过使用MFU文件报头中的报头信息,将MFU文件中的内容格式化以满足客户端装置的要求,例如.F-MP4、.ISMC、.TS、.M3U8、.F4F、.FMF等。MFU文件格式允许MFD边缘服务器在内容片段流到客户端装置时将内容片段格式化。
在可行实施方式中,MFD边缘服务器可将MFU文件中的内容从一个比特率转码/速率转换成另一个比特率。当MFD边缘服务器正将内容格式化以满足客户端装置的要求时,这可根据需要来执行。MFD边缘服务器可通过将MFU文件中的内容从一个比特率转码/速率转换为另一比特率以服务每个客户端,来服务来自客户端装置的多个请求。
在可行实施方式中,MFD边缘服务器或MFP可通过实时结合客户端代理的智能检测来将MFU格式转换成客户端的格式。
参见图29,在可行实施方式中,MFD 101可进行输入文件的转换。源服务器2901将高质量比特率文件传送至MFD 101。MFD 101可通过使用MFU文件生成器2902将高质量比特率文件转码/速率转换为不同比特率的MFU文件2903-2905。在可行实施方式中,MFD 101可根据上面所述的存储/高速缓存格式存储MFU文件。在可行实施方式中,可在MFD处实施如本文所述的分段器以从MFU文件2903-2905(通过MFD 101流动至客户端应用)中创建客户端合适的文件(例如Apple、Microsoft、Adobe、3GPP等)2906a-2906c。可选地,MFD 101通过使用MFU文件生成器2902实时进行转码/速率转换以创建通过MFD 101流动至客户端应用的客户端合适文件(例如,Apple、Microsoft、Adobe、3GPP等)2906a-2906c。
参见图30,在可行实施方式中,媒体编码源输入3001通过MFD 101而被转换成MFU格式文件以用于到不同客户端平台的多屏幕传送3002。MFD 101通过使用编码译码器H.264、AAC等接受来自现场/线性流3003和不同格式(例如MPEG.TS、MP4、.ISMV等)的所需视频源3004的源输入。在可行实施方式中,现场及所需资源可来源于VOD或IPTV。在可行实施方式中,媒体流发布器引擎3005从源输入文件中创建MFU文件。媒体流发布器引擎3005可将从所需视频源中创建的MFU文件存储在至少一个永久存储器装置3007中。当从客户端装置接收到对所需内容的视频的请求时,传送引擎3006可从至少一个永久存储装置3007中检索MFU文件。在将内容流动至请求的客户端之前,传送引擎3007通过使用MFU文件报头将MFU文件转换为适合客户端的格式化流。
在可行实施方式中,在现场/线性流的情形中,媒体流发布器引擎3005实时从源输入文件中创建MFU文件并且将MFU文件传递至传送引擎3006,以立即格式化并且传送至客户端装置。在将内容流动至请求的客户端前,传送引擎3007通过使用MFU文件报头将MFU文件转换为适合客户端的格式化流。
在可行实施方式中,为了帮助MFD提供转换为不同客户端格式的实时转换能力,在针对MFD所迎合的不同客户端技术将媒体资源注入MFD的过程中,可预备媒体资源。MFU格式被扩展/来源于基于ISO的媒体文件格式,其中,所有的多个媒体比特率被存储成MP4文件中的单个媒体轨道。如此,与用于各种比特率的多个媒体数据轨道一起,可以存在描述多个媒体数据轨道的相同数目的元数据轨道。
在可行实施方式中,可添加基于可服务的特定传送技术的定制提示轨道。例如,对于每个媒体轨道,存在定义如下任一内容的提示轨道:
-与母播放列表索引文件和子播放列表索引文件一起的、用于iOS的MPEG2-TS组块报头。
-与客户端清单文件一起的、用于Silverlight的Moof片段报头。
-与客户端说明格式一起的、用于Flash HTTP流动的Moof片段报头。
-与Smoothflow客户端索引文件一起的、用于Smoothflow的打包化FLV报头。
-与SDP文件定义一起的、用于PTSP/RTP上的传送的RTP打包化格式。
MFD可基于正被请求的特定客户端技术,而使用用于配置的可用提示轨道和被请求的比特率的结合来实时选择有关的片段/组块或数据包报头。然后,MFD可附加媒体数据的相关部分并且通过网络将其发出。如上所述,MFD可使用其自身的基于估计的TCP往返过程来检测最后一英里带宽并且自动地切换速率。
3.0实现机制——硬件概述
根据一个实施方式,本文所述的技术通过一个或多个专用计算装置来实施。该专用计算装置可以为用于执行这些技术的硬连线,或可包括数字电子装置,诸如一个或多个专用集成电路(ASIC)或被永久编程以执行这些技术的现场可编程门阵列(FPGA),或者可包括被编程为按照硬件、存储器、其他存储器或组合中的程序指令来执行这些技术的一个或多个通用硬件处理器。该专用计算装置还可通过将定制硬连线、ASIC或FPGA与定制编程相结合来实现这些技术。专用计算装置可以为台式计算机系统、便携式计算机系统、手持装置、网络装置或结合硬连线和/或编程逻辑以实施这些技术的任何其他装置。
例如,图6是示出了可以在其上实现本发明的一个实施方式的计算机系统600的结构图。计算机系统600包括用于传达信息的总线602或其他通信机构以及与总线602相耦接的用于处理信息的处理器604。硬件处理器604可以例如为通用微处理器。
计算机系统600还包括主存储器606,例如,随机存取存储器(RAM)或其他动态存储装置,其与总线602接合,用于存储将由处理器604执行的信息和指令。主存储器606还可以用于在执行将由处理器604执行的指令的过程中存储临时变量或其他中间信息。当将这些指令存储在可接入处理器604的非瞬时存储媒介中时,这些指令将计算机系统600变为被定制为执行在指令中指定的操作的专用机器。
计算机系统600进一步包括只读存储器(ROM)608或与总线602耦接以用于存储静态信息和处理器604的指令的其他静态存储装置。提供存储装置610(诸如磁盘或光盘),并将它们耦接至总线602,以存储信息和指令。
计算机系统600可以经由总线602而耦接至用于向计算机用户显示信息的显示器612(例如,阴极射线管(CRT))。输入装置614(包括字母数字和其他键)耦接至总线602以向处理器604传达信息和命令选择。另一种类型的用户输入装置为光标控制616,诸如鼠标、跟踪球,或者用于向处理器604传达方向信息和命令选择并用于控制显示器612上的光标运动的光标方向键。该输入装置通常在两个轴(第一轴(例如x)和第二轴(例如y))中具有两个自由度,其允许装置指定平面中的位置。
计算机系统600可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA来实现本文中描述的技术,与计算机系统相结合的固件和/或程序逻辑使得或安排计算机系统600为一专用机器。根据本发明的一个实施方式,通过计算机系统600响应于处理器604执行包含在主存储器606中的一个或多个指令的一个或多个序列,来执行这些技术。可以将这些指令从另一存储介质(例如,存储装置610)读入主存储器606。包含在主存储器606中的指令序列的执行使得处理器604执行本文所描述的处理步骤。在可选实施方式中,可以用硬连线电路代替软件指令或与软件指令相结合。
本文中所使用的术语“存储媒介”指的是存储使机器以特定方式操作的数据和/或指令的非瞬时媒介。这种存储媒介可以包括非易失性媒介和/或易失性媒介。非易失性介质例如包括诸如存储装置610的光盘或磁盘。易失性介质包括例如主存储器606的动态存储器。存储媒介的一般形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带、或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何其他具有孔图案的物理介质、RAM、PROM,以及EPROM、FLASH-EPROM、NVRAM以及任何其他存储芯片或盒式磁带。
存储介质不同于传输介质,但可以与传输媒介相结合来使用,传输媒介在存储媒介之间参与传递信息。例如,传输媒介包括包含电线(具有总线602)的同轴电缆、铜线和光纤。传输媒介也可以采用声波或光波的形式,例如那些在无线电波和红外数据通信过程中产生的声波或光波。
各种形式的媒介均可以涉及将一个或多个指令的一个或多个序列运送至处理器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均使用携带数字数据流的电信号、电磁信号或光信号。穿过各种网络的信号以及在网络链路620上并穿过通信接口618的信号(它们均携带来自或去往数据系统600的数字数据)均为传输媒介的实例形式。
计算机系统600可以通过网络、网络链路620和通信接口618发送消息并接收包括程序代码的数据。在因特网实施例中,服务器630可以通过因特网628、ISP 626、本地网622和通信接口618来传输用于应用程序的请求代码。
当接收到代码时,可以通过处理器604来执行所接收的代码,和/或将代码存储在存储装置610或其他非易失性存储器中以在以后执行。
4.0实施例
在实施例中,一种方法或一种携带一个或多个指令序列的计算机可读存储介质包括,其中,通过一个或多个处理器执行所述一个或多个指令序列使得所述一个或多个处理器执行下面的步骤:接收处于第一格式并且被编码为特定比特率的内容的媒体流;从媒体流中提取原始编码内容数据,其中,去除原始编码内容数据中的来自所述第一格式的任何格式化;创建用于原始编码内容数据的流信息,该流信息表示原始编码内容数据内的数据帧;将原始编码内容数据插入结构化文件(structured file)的数据部分中;将流信息插入结构化文件的报头部分中。
在实施方式中,该方法或计算机可读存储介质还包括在从媒体流中提取原始编码内容后之后将原始编码内容转码为与特定比特率不同的比特率。
在实施方式中,该方法或计算机可读存储介质还包括在从媒体流中提取原始编码内容之后将原始编码内容转码为特殊比特率的第二格式。
在实施方式中,该方法或计算机可读存储介质还包括将结构化文件发送至多个边缘服务器。
在实施例中,该方法或计算机可读存储介质还包括在多个边缘服务器中的一个边缘服务器处接收结构化文件;将结构化文件存储在与边缘服务器通信的至少一个存储装置中;通过边缘服务器接收对在特定比特率下的第二格式的内容的请求;从至少一个存储装置中检索所存储的结构化文件;通过边缘服务器使用结构化文件的报头部分中的信息而从结构化文件的数据部分中提取原始编码内容数据;通过边缘服务器将提取的原始编码内容数据格式化为第二格式的输出流;通过边缘服务器将输出流发送至请求器。
在实施方式中,该方法或计算机可读存储介质还包括通过边缘服务器创建被格式化为第二格式的输出流的播放列表或清单;通过边缘服务器将播放列表或清单与输出流一起流动至请求器。
在实施方式中,该方法或计算机可读存储介质还包括在多个边缘服务器中的一个边缘服务器处接收结构化文件;将结构化文件存储在与边缘服务器通信的至少一个存储装置中;通过边缘服务器接收对与特定比特率不同的第一比特率的第二格式的内容的请求;从至少一个存储装置中检索所存储的结构化文件;通过边缘服务器使用结构化文件的报头部分中的信息而从结构化文件中的数据部分中提取原始编码内容数据;通过边缘服务器将提取的原始编码内容数据转码为第一比特率;通过边缘服务器将经转码的提取的原始编码内容数据格式化为第二格式的输出流;通过边缘服务器将输出流流动至请求器。
在实施方式中,该方法或计算机可读存储介质还包括通过边缘服务器创建被格式化为第二格式的输出流的播放列表或清单;通过边缘服务器将播放列表或清单与输出流一起流动至请求器。
在实施方式中,该方法或计算机可读存储介质还包括在多个边缘服务器中的一个边缘服务器处接收结构化文件;将结构化文件存储在与边缘服务器通信的至少一个存储装置中;通过边缘服务器接收对特定比特率的内容的请求;自动检测请求器客户端类型并且规定用于该请求的第二格式;从至少一个存储装置中检索所存储的结构化文件;通过边缘服务器使用结构化文件的报头部分中的信息而从结构化文件的数据部分中提取原始编码内容数据;通过边缘服务器将提取的原始编码内容数据格式化为第二格式的输出流;通过边缘服务器将输出流流动至请求器。
在实施方式中,该方法或计算机可读存储介质还包括将结构化文件存储在至少一个存储装置中;接收对特定比特率的第二格式的内容的请求;从至少一个存储装置中检索所存储的结构化文件;使用结构化文件的报头部分中的信息而从数据部分中提取原始编码内容数据;将提取的原始编码内容数据格式化为第二格式的输出流;将输出流流动至请求器。
在实施方式中,该方法或计算机可读存储介质还包括创建被格式化为第二格式的输出流的播放列表或清单;将播放列表或清单与输出流一起流动至请求器。
在实施方式中,该方法或计算机可读存储介质还包括,其中,媒体流包括可调格式的多比特率流。
在实施方式中,该方法或计算机可读存储介质还包括,其中,媒体流包括一个或多个现场流。
在实施方式中,该方法或计算机可读存储介质还包括,其中,原始编码内容数据插入步骤将新的流动态地插入结构化文件的数据部分中。
在实施方式中,该方法或计算机可读存储介质还包括,其中,原始编码内容数据插入步骤将原始编码数据的附加比特率动态地插入结构化文件的数据部分中。
在实施方式中,该方法或计算机可读存储介质还包括,其中,媒体流包括来自多个摄像头的媒体流。
在实施方式中,该方法或计算机可读存储介质还包括,其中,媒体流包括一个或多个媒体文件。
在实施方式中,该方法或计算机可读存储介质还包括将广告插入线索插入结构化文件的报头部分中。
在实施方式中,该方法或计算机可读存储介质还包括将加密密钥插入结构化文件的报头部分中。
在实施方式中,一种系统,包括:至少部分以硬件实现的子系统,接收第一格式且被编码为特定比特率的内容的媒体流;至少部分地以硬件实现的子系统,从媒体流中提取原始编码内容数据,其中,去除原始编码内容数据中的来自第一格式的任何格式化;至少部分地以硬件实现的子系统,创建用于原始编码内容数据的流信息,该流信息表示原始编码内容数据内的数据帧;至少部分地以硬件实现的子系统,将原始编码内容数据插入结构化文件的数据部分中;至少部分地以硬件实现的子系统,将流信息插入结构化文件的报头部分中。
在实施方式中,该系统还包括至少部分地以硬件实现的子系统,该子系统从媒体流提取原始编码内容之后,将原始编码内容转码为与特定比特率不同的比特率。
在实施方式中,该系统还包括至少部分地以硬件实现的子系统,该子系统在从媒体流中提取原始编码内容之后,将原始编码内容转码为特定比特率的第二格式。
在实施方式中,该系统还包括至少部分地以硬件实现的子系统,该子系统将结构化文件流动至多个边缘服务器。
在实施方式中,该系统还包括:至少部分地以硬件实现的子系统,在多个边缘服务器中的一个边缘服务器处接收结构化文件;至少部分地以硬件实现的子系统,将结构化文件存储在与边缘服务器通信的至少一个存储装置中;边缘服务器处的至少部分地以硬件实现的子系统,接收对特定比特率的第二格式的内容的请求;至少部分地以硬件实现的子系统,从至少一个存储装置中检索存储的结构化文件;边缘服务器处的至少部分地以硬件实现的子系统,使用结构化文件的报头部分中的信息而从结构化文件的数据部分中提取原始编码内容数据;边缘服务器处的至少部分地以硬件实现的子系统,将提取的原始编码内容数据格式化为第二格式的输出流;边缘服务器处的至少部分地以硬件实现的子系统,将输出流流动至请求器。
在实施方式中,该系统还包括:在边缘服务器处的至少部分地以硬件实现的子系统,创建被格式化为第二格式的输出流的播放列表或清单;在边缘服务器处的至少部分地以硬件实现的子系统,将播放列表或清单与输出流一起流动至请求器。
在实施方式中,该系统还包括:在多个边缘服务器中的边缘服务器处的子系统,至少部分以硬件实现,用于接收结构化文件;至少部分地以硬件实现的子系统,将结构化文件存储在与边缘服务器通信的至少一个存储装置中;边缘服务器处的至少部分地以硬件实现的子系统,接收对与特定比特率不同的第一比特率的第二格式的内容的请求;至少部分地以硬件实现的子系统,其从至少一个存储装置中检索存储的结构化文件;边缘服务器处的至少部分地以硬件实现的子系统,使用结构化文件的报头部分中的信息而从结构化文件的数据部分中提取原始编码内容数据;边缘服务器处的至少部分地以硬件实现的子系统,将提取的原始编码内容数据转码为第一比特率;边缘服务器处的至少部分地以硬件实现的子系统,将经转码的提取的原始编码内容数据格式化为第二格式的输出流;服务器处的至少部分地以硬件实现的子系统,将输出流流动至请求器。
在实施方式中,该系统还包括:在边缘服务器处的至少部分地以硬件实现的子系统,创建被格式化为第二格式的输出流的播放列表或清单;在服务器处的至少部分地以硬件实现的子系统,将播放列表或清单与输出流一起流动至请求器。
在实施方式中,该系统还包括:在多个边缘服务器中的边缘服务器处的子系统,至少部分地以硬件来实现,接收结构化文件;至少部分地以硬件实现的子系统,将结构化文件存储在与边缘服务器通信的至少一个存储装置中;边缘服务器处的至少部分地以硬件实现的子系统,接收对特定比特率的内容的请求;服务器处的至少部分地以硬件实现的子系统,自动检测请求器客户端类型并且规定用于该请求的第二格式;至少部分地以硬件实现的子系统,从至少一个存储装置中检索存储的结构化文件;边缘服务器处的至少部分地以硬件实现的子系统,使用结构化文件的报头部分中的信息而从结构化文件的数据部分中提取原始编码内容数据;边缘服务器处的至少部分地以硬件实现的子系统,将提取的原始编码内容数据格式化为第二格式的输出流;边缘服务器处的至少部分地以硬件实现的子系统,将输出流流动至请求器。
在实施方式中,该系统还包括:至少部分地以硬件实现的子系统,将结构化文件存储在至少一个存储装置中;至少部分地以硬件实现的子系统,接收对特定比特率的第二格式的内容的请求;至少部分地以硬件实现的子系统,从至少一个存储装置中检索所存储的结构化文件;至少部分地以硬件实现的子系统,使用结构化文件的报头部分中的信息而从数据部分提取原始编码内容数据;至少部分地以硬件实现的子系统,将提取的原始编码内容数据格式化为第二格式的输出流;至少部分地以硬件实现的子系统,将输出流流动至请求器。
在实施方式中,该系统还包括至少部分地以硬件实现的子系统,创建被格式化为第二格式的输出流的播放列表或清单;该系统还包括至少部分地以硬件实现的子系统,将播放列表或清单与输出流一起流动至请求器。
在实施方式中,该系统还包括,其中,媒体流包括可调格式的多种比特率流。
在实施方式中,该系统还包括,其中,媒体流包括一个或多个现场流。
在实施方式中,该系统还包括,其中,原始编码内容数据插入子系统将新的流动态地插入结构化文件的数据部分中。
在实施方式中,该系统还包括,其中,原始编码内容数据插入子系统将原始编码数据的附加比特率动态地插入结构化文件的数据部分中。
在实施方式中,该系统还包括,其中,媒体流包括来自多个摄像头的媒体流。
在实施方式中,该系统还包括,其中,媒体流包括一个或多个媒体文件。
在实施方式中,该系统还包括至少部分地以硬件实现的子系统,将广告插入线索插入结构化文件的报头部分中。
在实施方式中,该系统还包括至少部分地以硬件实现的子系统,其将加密密钥插入结构化文件的报头部分中。
5.0扩展和变形
在上述说明书中,已经参考每个实现方式可能均不同的许多具体细节描述了本发明的实施方式。因此,本发明是什么并且由申请人预期本发明的唯一且独有的指标为由本申请产生的这组权利要求,在这些权利要求产生的具体形式下,其包括任何后续的校正。本文中针对包含在权利要求中的术语所清晰阐述的定义,应规定如权利要求中所使用的这些术语的意义。因此,没有限制地,在权利要求中并未清楚叙述的元素、特性、特征、优点或属性不应以任何方式限制这种权利要求的范围。相应地,说明书和附图均被看作是说明性的而不是限制性的。

Claims (20)

1.一种由一个或多个设备执行的方法,所述方法包括:
接收处于第一格式且被编码为特定比特率的内容的媒体流;
从所述媒体流中提取原始编码内容数据,其中,在所述原始编码内容数据中,来自所述第一格式的任何格式化被去除;
创建用于所述原始编码内容数据的流信息,所述流信息表示所述原始编码内容数据内的数据帧;
将所述原始编码内容数据插入结构化文件的数据部分中;以及将所述流信息插入所述结构化文件的报头部分中。
2.根据权利要求1所述的方法,还包括以下步骤之一:
在从所述媒体流中提取所述原始编码内容数据之后,将所述原始编码内容数据转码为与所述特定比特率不同的比特率;或者
在从所述媒体流中提取所述原始编码内容数据之后,将所述原始编码内容数据转码为具有给定比特率的第二格式。
3.根据权利要求1所述的方法,还包括:
将所述结构化文件发送至多个边缘服务器。
4.根据权利要求1所述的方法,还包括:
将所述结构化文件存储在至少一个存储装置中;
接收对在所述特定比特率下的第二格式的内容的请求;
从所述至少一个存储装置中检索所存储的结构化文件;
通过使用所述结构化文件的所述报头部分中的信息而从所述结构化文件的所述数据部分中提取所述原始编码内容数据;
将所提取的原始编码内容数据格式化为所述第二格式的输出流;以及
响应于所述请求流动所述输出流。
5.根据权利要求4所述的方法,还包括:
创建被格式化为所述第二格式的所述输出流的播放列表;以及
与流动所述输出流一起流动所述播放列表。
6.根据权利要求1所述的方法,其中,当插入所述原始编码内容数据时,所述方法还包括以下步骤之一:
将新的流动态地插入所述结构化文件的所述数据部分中;或者
将所述原始编码内容数据的附加比特率动态地插入所述结构化文件的所述数据部分中,其中,所述媒体流包括一个或多个现场流。
7.根据权利要求1所述的方法,还包括以下步骤之一:
将广告插入线索插入所述结构化文件的所述报头部分中;或者
将加密密钥插入所述结构化文件的所述报头部分中。
8.一种设备,包括:
存储器;和
处理器,被配置为:
接收处于第一格式并且被编码为特定比特率的内容的媒体流;
从所述媒体流中提取原始编码内容数据,其中,在所述原始编码内容数据中,来自所述第一格式的任何格式化被去除;
创建用于所述原始编码内容数据的流信息,所述流信息表示所述原始编码内容数据内的数据帧;
将所述原始编码内容数据插入结构化文件的数据部分中;以及
将所述流信息插入所述结构化文件的报头部分中。
9.根据权利要求8所述的设备,其中,所述处理器还被配置为:
在从所述媒体流中提取所述原始编码内容数据之后,将所述原始编码内容数据转码为与所述特定比特率不同的比特率;或
在从所述媒体流中提取所述原始编码内容数据之后,将所述原始编码内容数据转码为具有给定比特率的第二格式。
10.根据权利要求8所述的设备,其中,所述处理器还被配置为:
将所述结构化文件发送至多个边缘服务器。
11.根据权利要求8所述的设备,其中,所述处理器还被配置为:
将所述结构化文件存储在至少一个存储装置中;
接收对在所述特定比特率下的第二格式的内容的请求;
从所述至少一个存储装置中检索所存储的结构化文件;
通过使用所述结构化文件的所述报头部分中的信息而从所述结构化文件的所述数据部分中提取所述原始编码内容数据;
将所提取的原始编码内容数据格式化为所述第二格式的输出流;以及
响应于所述请求流动所述输出流。
12.根据权利要求11所述的设备,其中,所述处理器还被配置为:
创建被格式化为所述第二格式的所述输出流的播放列表;以及
与流动所述输出流一起流动所述播放列表。
13.根据权利要求8所述的设备,其中,所述处理器还被配置为:
将新的流动态地插入所述结构化文件的所述数据部分中;或者
将所述原始编码内容数据的附加比特率动态地插入所述结构化文件的所述数据部分中,其中,所述媒体流包括一个或多个现场流。
14.根据权利要求8所述的设备,其中,所述处理器还被配置为:
将广告插入线索插入所述结构化文件的所述报头部分中;或者
将加密密钥插入所述结构化文件的所述报头部分中。
15.一种系统,包括:
一个或多个设备,包括:
用于接收处于第一格式且被编码为特定比特率的内容的媒体流的装置;
用于从所述媒体流中提取原始编码内容数据的装置,其中,在所述原始编码内容数据中,来自所述第一格式的任何格式化被去除;
用于创建用于所述原始编码内容数据的流信息的装置,其中,所述流信息表示所述原始编码内容数据内的数据帧;
用于将所述原始编码内容数据插入结构化文件的数据部分中的装置;以及
用于将所述流信息插入所述结构化文件的报头部分中的装置。
16.根据权利要求15所述的系统,其中,所述一个或多个设备还包括以下装置之一:
用于在从所述媒体流中提取所述原始编码内容数据之后、将所述原始编码内容数据转码为与所述特定比特率不同的比特率的装置;或者
用于在从所述媒体流中提取所述原始编码内容数据之后、将所述原始编码内容数据转码为具有给定比特率的第二格式的装置。
17.根据权利要求15所述的系统,其中,所述一个或多个设备还包括:
用于将所述结构化文件存储在至少一个存储装置中的装置;
用于接收对在所述特定比特率下的第二格式的内容的请求的装置;
用于从所述至少一个存储装置中检索所存储的结构化文件的装置;
用于通过使用所述结构化文件的所述报头部分中的信息而从所述结构化文件的所述数据部分中提取所述原始编码内容数据的装置;
用于将所提取的原始编码内容数据格式化为所述第二格式的输出流的装置;
用于响应于所述请求流动所述输出流的装置。
18.根据权利要求17所述的系统,其中,所述一个或多个设备还包括:
用于创建被格式化为所述第二格式的所述输出流的播放列表的装置;以及
用于与流动所述输出流一起流动所述播放列表的装置。
19.根据权利要求15所述的系统,其中,用于插入所述原始编码内容数据的装置包括以下装置之一:
用于将新的流动态地插入所述结构化文件的所述数据部分中的装置;或者
用于将所述原始编码内容数据的附加比特率动态地插入所述结构化文件的所述数据部分中的装置,其中,所述媒体流包括一个或多个现场流。
20.根据权利要求15所述的系统,其中,所述一个或多个设备还包括以下装置之一:
用于将广告插入线索插入所述结构化文件的所述报头部分中的装置;或者
用于将加密密钥插入所述结构化文件的所述报头部分中的装置。
CN201210050684.7A 2011-03-31 2012-02-29 媒体文件存储格式和自适应传送系统 Active CN102740159B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/077,831 US8489760B2 (en) 2011-03-31 2011-03-31 Media file storage format and adaptive delivery system
US13/077,831 2011-03-31

Publications (2)

Publication Number Publication Date
CN102740159A true CN102740159A (zh) 2012-10-17
CN102740159B CN102740159B (zh) 2016-06-08

Family

ID=45592258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210050684.7A Active CN102740159B (zh) 2011-03-31 2012-02-29 媒体文件存储格式和自适应传送系统

Country Status (3)

Country Link
US (1) US8489760B2 (zh)
EP (1) EP2521369A3 (zh)
CN (1) CN102740159B (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103369405A (zh) * 2012-03-23 2013-10-23 索尼公司 使用低带宽连接的iptv无线电设备
CN103905836A (zh) * 2012-12-27 2014-07-02 辉达公司 通过帧率控制实现网络自适应时延降低
WO2014117408A1 (zh) * 2013-02-04 2014-08-07 华为技术有限公司 流媒体数据传输的方法及装置
WO2015000142A1 (zh) * 2013-07-02 2015-01-08 华为技术有限公司 一种传输业务数据的方法、系统和设备
CN104854894A (zh) * 2013-01-17 2015-08-19 英特尔Ip公司 针对dash的内容url认证
CN104980775A (zh) * 2014-04-01 2015-10-14 汤姆逊许可公司 视频流式传输的方法、相应的设备及系统
CN105049896A (zh) * 2015-07-23 2015-11-11 Tcl集团股份有限公司 一种基于hls协议的流媒体广告插入方法及系统
WO2015176470A1 (zh) * 2014-05-22 2015-11-26 华为技术有限公司 一种http协议的缓存状态更新方法和设备、处理机
CN105245562A (zh) * 2014-07-04 2016-01-13 汤姆逊许可公司 操作高速缓存器的方法以及对应的高速缓存器
CN105659623A (zh) * 2013-10-30 2016-06-08 索尼公司 发送装置、发送方法、接收装置以及接收方法
CN105681283A (zh) * 2015-12-29 2016-06-15 广东欧珀移动通信有限公司 一种传输带宽的自动调节方法及装置
WO2016155522A1 (en) * 2015-03-30 2016-10-06 Huawei Technologies Co., Ltd. Distributed content discovery with in-network caching
CN106028053A (zh) * 2015-03-31 2016-10-12 美国博通公司 视频服务器和服务质量管理器
CN106134145A (zh) * 2014-03-26 2016-11-16 英特尔公司 自适应媒体流传送
CN106416269A (zh) * 2014-04-07 2017-02-15 爱立信股份有限公司 单播自适应比特率流播
CN106775471A (zh) * 2016-12-08 2017-05-31 深圳创维-Rgb电子有限公司 管理本地存储器的方法及装置
WO2017101576A1 (zh) * 2015-12-16 2017-06-22 中兴通讯股份有限公司 一种数据资源存储方法及装置
CN107431704A (zh) * 2015-03-13 2017-12-01 瑞典爱立信有限公司 用于使用多播机制的直播自适应比特率(abr)媒体的优化传递的系统和方法
CN108449645A (zh) * 2017-02-16 2018-08-24 腾讯科技(深圳)有限公司 基于移动终端iOS系统的视频播放方法及装置
CN108900851A (zh) * 2018-06-19 2018-11-27 中兴通讯股份有限公司 描述文件的传输方法、视频的播放方法及装置
CN111083410A (zh) * 2019-12-30 2020-04-28 珠海全志科技股份有限公司 一种用于dvr的音视频流的处理方法及装置
CN112039760A (zh) * 2020-08-31 2020-12-04 杭州叙简科技股份有限公司 一种物联网网关的数据自动恢复系统及数据自动恢复方法
CN114946192A (zh) * 2020-01-15 2022-08-26 杜比国际公司 利用比特率切换自适应流式传输媒体内容
WO2024188248A1 (zh) * 2023-03-14 2024-09-19 抖音视界有限公司 媒体文件生成方法、装置、电子设备以及存储介质

Families Citing this family (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135912B2 (en) 2009-05-18 2012-03-13 Hola Networks, Ltd. System and method of increasing cache size
CA2711311C (en) 2009-08-10 2016-08-23 Seawell Networks Inc. Methods and systems for scalable video chunking
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9001886B2 (en) 2010-11-22 2015-04-07 Cisco Technology, Inc. Dynamic time synchronization
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
GB2489932B (en) 2011-04-07 2020-04-08 Quantel Ltd Improvements relating to file systems
US8683013B2 (en) * 2011-04-18 2014-03-25 Cisco Technology, Inc. System and method for data streaming in a computer network
US9288251B2 (en) * 2011-06-10 2016-03-15 Citrix Systems, Inc. Adaptive bitrate management on progressive download with indexed media files
US9210208B2 (en) * 2011-06-21 2015-12-08 The Nielsen Company (Us), Llc Monitoring streaming media content
US8751807B2 (en) 2011-06-23 2014-06-10 Azuki Systems Inc. Method and system for secure over-the-top live video delivery
US9319453B2 (en) * 2011-07-15 2016-04-19 Shmuel Ur User-controlled download duration time
US9590814B2 (en) * 2011-08-01 2017-03-07 Qualcomm Incorporated Method and apparatus for transport of dynamic adaptive streaming over HTTP (DASH) initialization segment description fragments as user service description fragments
EP2740275A1 (en) * 2011-08-05 2014-06-11 Quantel Limited Methods and systems for providing file data for video files
GB2495268B (en) 2011-08-05 2019-09-04 Quantel Ltd Methods and systems for providing file data for media files
US8806188B2 (en) 2011-08-31 2014-08-12 Sonic Ip, Inc. Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files
US8676952B2 (en) * 2011-09-13 2014-03-18 Ericsson Television Inc. User adaptive HTTP stream manager and method for using same
US20130179588A1 (en) * 2011-09-21 2013-07-11 General Instrument Corporation Adaptive streaming to multicast and constrained-fidelity constant bit rate encoding
WO2013043919A1 (en) * 2011-09-21 2013-03-28 General Instrument Corporation Constrained fidelity adaptive bitrate encoding systems and methods
US8751679B2 (en) * 2011-10-07 2014-06-10 Ericsson Television Inc. HTTP adaptive streaming server with automatic rate shaping
US9848028B2 (en) * 2011-10-10 2017-12-19 Rohan Bopardikar Classification of web client network bandwidth by a web server
CN103348691B (zh) * 2011-11-29 2016-10-05 华为技术有限公司 分发直播内容的方法、设备和系统
EP2793479A4 (en) * 2011-12-12 2015-07-01 Lg Electronics Inc DEVICE AND METHOD FOR RECEIVING MULTIMEDIA CONTENT
US8977704B2 (en) * 2011-12-29 2015-03-10 Nokia Corporation Method and apparatus for flexible caching of delivered media
US8898717B1 (en) 2012-01-11 2014-11-25 Cisco Technology, Inc. System and method for obfuscating start-up delay in a linear media service environment
US9591098B2 (en) 2012-02-01 2017-03-07 Cisco Technology, Inc. System and method to reduce stream start-up delay for adaptive streaming
US9167049B2 (en) * 2012-02-02 2015-10-20 Comcast Cable Communications, Llc Content distribution network supporting popularity-based caching
US20130262693A1 (en) * 2012-04-02 2013-10-03 Chris Phillips Methods and apparatus for segmenting, distributing, and resegmenting adaptive rate content streams
US9712887B2 (en) * 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
US9060184B2 (en) * 2012-04-27 2015-06-16 Sonic Ip, Inc. Systems and methods for adaptive streaming with augmented video stream transitions using a media server
US9510033B1 (en) 2012-05-07 2016-11-29 Amazon Technologies, Inc. Controlling dynamic media transcoding
US9710307B1 (en) 2012-05-07 2017-07-18 Amazon Technologies, Inc. Extensible workflows for processing content
US9058645B1 (en) 2012-05-07 2015-06-16 Amazon Technologies, Inc. Watermarking media assets at the network edge
US11989585B1 (en) 2012-05-07 2024-05-21 Amazon Technologies, Inc. Optimizing media transcoding based on licensing models
US10191954B1 (en) 2012-05-07 2019-01-29 Amazon Technologies, Inc. Prioritized transcoding of media content
US9380326B1 (en) 2012-05-07 2016-06-28 Amazon Technologies, Inc. Systems and methods for media processing
US9483785B1 (en) 2012-05-07 2016-11-01 Amazon Technologies, Inc. Utilizing excess resource capacity for transcoding media
US9088634B1 (en) * 2012-05-07 2015-07-21 Amazon Technologies, Inc. Dynamic media transcoding at network edge
JP5963540B2 (ja) * 2012-05-30 2016-08-03 キヤノン株式会社 情報処理装置、プログラム及び制御方法
EP2701358B1 (en) * 2012-07-04 2020-09-09 Huawei Technologies Co., Ltd. Method, device, and system for implementing multimedia data recording
US20140040496A1 (en) * 2012-08-06 2014-02-06 General Instrument Corporation On-demand http stream generation
US9356821B1 (en) * 2012-08-08 2016-05-31 Tata Communications (America) Inc. Streaming content delivery system and method
KR101937449B1 (ko) * 2012-10-08 2019-01-11 에스케이텔레콤 주식회사 동영상 서비스 장치 및 동영상 서비스 방법
CN103780925A (zh) * 2012-10-26 2014-05-07 深圳市快播科技有限公司 一种基于移动平台的在线视频点播方法和系统
CN103124412A (zh) * 2012-11-16 2013-05-29 佳都新太科技股份有限公司 一种基于rtp协议的网络抖动处理技术
US9930082B2 (en) 2012-11-20 2018-03-27 Nvidia Corporation Method and system for network driven automatic adaptive rendering impedance
US8990188B2 (en) 2012-11-30 2015-03-24 Apple Inc. Managed assessment of submitted digital content
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
US9386062B2 (en) 2012-12-28 2016-07-05 Qualcomm Incorporated Elastic response time to hypertext transfer protocol (HTTP) requests
US10217138B1 (en) * 2013-01-29 2019-02-26 Amazon Technologies, Inc. Server-side advertisement injection
US9832492B2 (en) 2013-01-29 2017-11-28 Espial Group Inc. Distribution of adaptive bit rate video streaming via hyper-text transfer protocol
US9106934B2 (en) 2013-01-29 2015-08-11 Espial Group Inc. Distribution of adaptive bit rate live streaming video via hyper-text transfer protocol
WO2014117775A1 (en) * 2013-01-31 2014-08-07 Codemate A/S Network content delivery method using a delivery helper node
US9009763B2 (en) 2013-02-15 2015-04-14 Cox Communications, Inc. Content management in a cloud-enabled network-based digital video recorder
US9445141B2 (en) * 2013-03-06 2016-09-13 Disney Enterprises, Inc. Efficient re-use of a media asset
US10382512B2 (en) 2013-03-14 2019-08-13 Microsoft Technology Licensing, Llc Distributed fragment timestamp synchronization
CA2903319A1 (en) * 2013-03-14 2014-09-18 Arris Technology, Inc. Devices, systems, and methods for converting or translating dynamic adaptive streaming over http (dash) to http live streaming (hls)
US10778663B2 (en) 2013-03-15 2020-09-15 Cox Communications, Inc. Network token authentication scheme
US8869218B2 (en) * 2013-03-15 2014-10-21 Wowza Media Systems, LLC On the fly transcoding of video on demand content for adaptive streaming
US9681116B2 (en) * 2013-03-15 2017-06-13 Arris Enterprises, Inc. System and method for delivering 3DTV content to variety of receivers
EP2785067A1 (en) * 2013-03-27 2014-10-01 Alcatel Lucent A method and client for requesting, receiving and decoding adaptive streaming video
KR101484843B1 (ko) 2013-04-19 2015-01-20 삼성전자주식회사 멀티미디어 전송 시스템에서 미디어 전송 패킷 전송 방법 및 장치
US9148386B2 (en) 2013-04-30 2015-09-29 Cisco Technology, Inc. Managing bandwidth allocation among flows through assignment of drop priority
US9294365B2 (en) * 2013-05-08 2016-03-22 Vringo, Inc. Cognitive radio system and cognitive radio carrier device
JP2015012305A (ja) * 2013-06-26 2015-01-19 ソニー株式会社 コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
US9832468B2 (en) 2013-07-17 2017-11-28 Samsung Electronics Co., Ltd. Electronic device for storing image and image storage method thereof
JP6498882B2 (ja) * 2013-07-22 2019-04-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 蓄積方法、再生方法、蓄積装置、および再生装置
US9819604B2 (en) 2013-07-31 2017-11-14 Nvidia Corporation Real time network adaptive low latency transport stream muxing of audio/video streams for miracast
US20150052236A1 (en) * 2013-08-14 2015-02-19 Cisco Technology, Inc. Load based target alteration in streaming environments
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US8718445B1 (en) 2013-09-03 2014-05-06 Penthera Partners, Inc. Commercials on mobile devices
US9244916B2 (en) * 2013-10-01 2016-01-26 Penthera Partners, Inc. Downloading media objects
US9923945B2 (en) 2013-10-10 2018-03-20 Cisco Technology, Inc. Virtual assets for on-demand content generation
DE112013007509B4 (de) * 2013-10-16 2022-01-20 Intel Corporation Verfahren, Einrichtung und System zum Auswählen von Audio-Video-Daten zum Streamen
US9332046B2 (en) * 2013-10-17 2016-05-03 Cisco Technology, Inc. Rate-adapted delivery of virtual desktop image elements by an edge server in a computer network environment
GB2542282B (en) * 2013-10-22 2018-08-01 Canon Kk Method, device, and computer program for encapsulating partitioned timed media data in a server
JP6411862B2 (ja) * 2013-11-15 2018-10-24 パナソニック株式会社 ファイル生成方法およびファイル生成装置
CN104754608B (zh) * 2013-12-25 2019-06-28 腾讯科技(深圳)有限公司 实现移动终端性能监控的方法和系统
US10779035B2 (en) * 2014-01-09 2020-09-15 Samsung Electronics Co., Ltd. Method and apparatus of transmitting media data related information in multimedia transmission system
JP6467680B2 (ja) * 2014-01-10 2019-02-13 パナソニックIpマネジメント株式会社 ファイル生成方法およびファイル生成装置
US9338203B2 (en) 2014-02-11 2016-05-10 Wowza Media Systems, LLC Server configuration interface including stream preview
US10169121B2 (en) 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US20150256600A1 (en) * 2014-03-05 2015-09-10 Citrix Systems, Inc. Systems and methods for media format substitution
CN106462542B (zh) * 2014-03-10 2020-03-17 英特尔公司 通过向云计算基础设施的细粒度卸载进行的移动应用加速
US9106887B1 (en) 2014-03-13 2015-08-11 Wowza Media Systems, LLC Adjusting encoding parameters at a mobile device based on a change in available network bandwidth
JP6426901B2 (ja) * 2014-03-14 2018-11-21 富士通クライアントコンピューティング株式会社 配信方法、再生装置、配信装置、転送制御プログラムおよび配信制御プログラム
US20150340067A1 (en) * 2014-05-22 2015-11-26 Idomoo Ltd. System and Method to Generate a Video on the Fly
US10631070B2 (en) 2014-05-22 2020-04-21 Idomoo Ltd System and method to generate a video on-the-fly
EP2953313A1 (en) * 2014-06-05 2015-12-09 Thomson Licensing Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache
US11869038B2 (en) * 2014-06-24 2024-01-09 Arris Enterprises Llc Tracking ad preferences in adaptive bit rate systems
US10924781B2 (en) * 2014-06-27 2021-02-16 Satellite Investors, Llc Method and system for real-time transcoding of MPEG-DASH on-demand media segments while in transit from content host to dash client
WO2016015747A1 (en) * 2014-07-28 2016-02-04 Nokia Solutions And Networks Oy Message-based path selection for transport protocols supporting multiple transport paths
US9398330B2 (en) * 2014-08-22 2016-07-19 Sony Corporation Information processing device, information recording medium, information processing method, and program
US10178203B1 (en) 2014-09-23 2019-01-08 Vecima Networks Inc. Methods and systems for adaptively directing client requests to device specific resource locators
US10477260B2 (en) * 2014-10-17 2019-11-12 Cox Communications, Inc. Network based digital video recorder playback adapter
US9729611B2 (en) * 2014-10-26 2017-08-08 Cisco Technology, Inc. Method and system for ABR recording
US10142386B2 (en) * 2014-10-29 2018-11-27 DLVR, Inc. Determining manifest file data used in adaptive streaming video delivery
US10084838B2 (en) 2014-10-29 2018-09-25 DLVR, Inc. Generating and using manifest files including content delivery network authentication data
US9509742B2 (en) 2014-10-29 2016-11-29 DLVR, Inc. Configuring manifest files referencing infrastructure service providers for adaptive streaming video
US11778014B2 (en) * 2014-12-12 2023-10-03 Arris Enterprises Llc Throttling content download in adaptive HTTP live streaming
US9919212B2 (en) * 2014-12-22 2018-03-20 Gree, Inc. Server apparatus, control method for server apparatus, and program
CN104506882B (zh) * 2014-12-29 2017-11-10 上海昌视网络科技有限公司 互联网流媒体转换成iptv格式的服务器及其转换方法
JP6944371B2 (ja) * 2015-01-06 2021-10-06 ディビックス, エルエルシー コンテンツを符号化し、デバイス間でコンテンツを共有するためのシステムおよび方法
US20160248829A1 (en) * 2015-02-23 2016-08-25 Qualcomm Incorporated Availability Start Time Adjustment By Device For DASH Over Broadcast
US9883221B1 (en) 2015-03-25 2018-01-30 Concurrent Computer Corporation System and method for optimizing real-time video-on-demand recording in a content delivery network
FR3034943B1 (fr) * 2015-04-07 2017-04-14 Streamroot Inc Procede de lecture en continu sur un equipement client d'un contenu diffuse au sein d'un reseau pair a pair
US11023846B2 (en) 2015-04-24 2021-06-01 United Parcel Service Of America, Inc. Location-based pick up and delivery services
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11076198B2 (en) 2015-05-28 2021-07-27 Idomoo Ltd. System and method to generate an interactive video on the fly
CN105096988B (zh) * 2015-06-25 2018-01-19 广东欧珀移动通信有限公司 一种音箱播放列表同步方法及终端
US10638179B2 (en) 2015-08-06 2020-04-28 At&T Intellectual Property I, L.P. Content insertion in streaming media content
US9826261B2 (en) 2015-09-09 2017-11-21 Ericsson Ab Fast channel change in a multicast adaptive bitrate (MABR) streaming network using multicast repeat segment bursts in a dedicated bandwidth pipe
US9826262B2 (en) * 2015-09-09 2017-11-21 Ericsson Ab Fast channel change in a multicast adaptive bitrate (MABR) streaming network using multicast repeat segment bursts in a shared progressive ABR download pipe
CN106559677B (zh) * 2015-09-30 2020-04-03 华为技术有限公司 终端、缓存服务器及获取视频分片的方法及装置
CN105893010A (zh) * 2015-11-17 2016-08-24 乐视云计算有限公司 用于容器部署的主机调度方法及系统
CN105898551A (zh) * 2015-12-18 2016-08-24 乐视云计算有限公司 网络视频播放方法及装置
US10230812B1 (en) * 2016-01-29 2019-03-12 Amazon Technologies, Inc. Dynamic allocation of subtitle packaging
CN105760231B (zh) * 2016-02-19 2019-04-16 珠海迈科智能科技股份有限公司 一种基于嵌入式的网络资源预览管理方法
US20170272498A1 (en) * 2016-03-21 2017-09-21 Le Holdings (Beijing) Co., Ltd. Streaming media file distribution method and system
CN107483970B (zh) * 2016-06-08 2020-09-18 华为技术有限公司 一种确定热门直播视频的方法及设备
US10506272B1 (en) * 2016-06-15 2019-12-10 Amazon Technologies, Inc. Parameterizable encoding profiles
US10277929B1 (en) 2016-06-22 2019-04-30 Amazon Technologies, Inc. Live streaming media content using on-demand manifests
US10313721B1 (en) * 2016-06-22 2019-06-04 Amazon Technologies, Inc. Live streaming media content using on-demand manifests
US11310212B2 (en) * 2016-07-27 2022-04-19 Comcast Cable Communications, Llc Segmented encryption for content delivery
TWI599218B (zh) * 2016-07-29 2017-09-11 元智大學 即時影音傳輸系統
GB2552944B (en) 2016-08-09 2022-07-27 V Nova Int Ltd Adaptive content delivery network
DK3497831T3 (da) 2016-08-11 2021-10-04 Ericsson Telefon Ab L M Forbedret adaptiv bithastighedsstreaming af live indhold
EP3497909B1 (en) * 2016-08-11 2022-06-01 Telefonaktiebolaget LM Ericsson (publ) Improved adaptive bit rate streaming of live content with manifest update push notification or long poll
US11166057B2 (en) * 2016-11-10 2021-11-02 University Of Louisiana At Lafayette System for high performance on-demand video transcoding
KR101819193B1 (ko) * 2016-11-17 2018-01-16 (주)판도라티비 실시간 파일 포맷 변환 스트리밍 서비스 방법
US10838821B2 (en) * 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
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
US10652300B1 (en) 2017-06-16 2020-05-12 Amazon Technologies, Inc. Dynamically-generated encode settings for media content
US10404632B2 (en) 2017-07-12 2019-09-03 T-Mobile Usa, Inc. Determining when to partition real time text content and display the partitioned content within separate conversation bubbles
US10796103B2 (en) * 2017-07-12 2020-10-06 T-Mobile Usa, Inc. Word-by-word transmission of real time text
EP3659040A4 (en) 2017-07-28 2020-12-02 Dolby Laboratories Licensing Corporation PROCESS AND SYSTEM FOR PROVIDING MULTIMEDIA CONTENT TO A CUSTOMER
EP4002163A1 (en) 2017-08-28 2022-05-25 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
US20190158621A1 (en) * 2017-11-21 2019-05-23 Koninklijke Kpn N.V. Auctioning the serving and/or caching of a data object
US11653040B2 (en) * 2018-07-05 2023-05-16 Mux, Inc. Method for audio and video just-in-time transcoding
CN108810145A (zh) * 2018-06-13 2018-11-13 郑州云海信息技术有限公司 一种基于p2p的多节点内容分发网络系统及方法
US20190394512A1 (en) * 2018-06-25 2019-12-26 Verizon Digital Media Services Inc. Low Latency Video Streaming Via a Distributed Key-Value Store
US11695978B2 (en) 2018-07-05 2023-07-04 Mux, Inc. Methods for generating video-and audience-specific encoding ladders with audio and video just-in-time transcoding
US10349059B1 (en) 2018-07-17 2019-07-09 Wowza Media Systems, LLC Adjusting encoding frame size based on available network bandwidth
US11522810B2 (en) * 2018-10-25 2022-12-06 University Of Louisiana At Lafayette System for request aggregation in cloud computing services
US10701363B2 (en) 2018-11-13 2020-06-30 Seagate Technology Llc Determining redundancy in transformed sensor data
WO2020112409A1 (en) * 2018-11-28 2020-06-04 T-Mobile Usa, Inc. Word-by-word transmission of real time text
US10972761B2 (en) 2018-12-26 2021-04-06 Purdue Research Foundation Minimizing stall duration tail probability in over-the-top streaming systems
US10743041B1 (en) 2019-01-31 2020-08-11 DISH Technologies L.L.C. Systems and methods for facilitating adaptive content splicing
EP3750079B1 (en) 2019-02-25 2024-09-04 Bright Data Ltd. System and method for url fetching retry mechanism
US20200296316A1 (en) 2019-03-11 2020-09-17 Quibi Holdings, LLC Media content presentation
US20200296462A1 (en) 2019-03-11 2020-09-17 Wci One, Llc Media content presentation
US10785514B1 (en) 2019-03-14 2020-09-22 Wurl Inc. Campaign router
US11366823B2 (en) * 2019-03-15 2022-06-21 Unity Technologies Sf Method and system for transforming and delivering digital assets over a network
FR3094597B1 (fr) 2019-03-27 2021-06-11 Streamroot Procédé de diffusion de contenus en streaming dans un réseau pair à pair
US10938942B2 (en) * 2019-03-27 2021-03-02 International Business Machines Corporation Dynamically modified delivery of elements in a sports related presentation
EP3935792A4 (en) 2019-04-02 2022-11-30 Bright Data Ltd. System and method for managing non-direct url fetching service
US11509949B2 (en) * 2019-09-13 2022-11-22 Disney Enterprises, Inc. Packager for segmenter fluidity
US11792472B2 (en) * 2019-09-18 2023-10-17 Wayne Fueling Systems Llc Schedule-based uninterrupted buffering and streaming
US11599577B2 (en) 2019-10-10 2023-03-07 Seagate Technology Llc System and method for content-hashed object storage
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
US10880351B1 (en) * 2019-10-16 2020-12-29 Dish Network L.L.C. Systems and methods for adapting content items to endpoint media devices
US11638049B2 (en) 2019-10-16 2023-04-25 Dish Network L.L.C. Systems and methods for content item recognition and adaptive packet transmission
KR102766339B1 (ko) * 2020-01-03 2025-02-12 삼성전자주식회사 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법
US11218525B2 (en) 2020-01-21 2022-01-04 Dish Network L.L.C. Systems and methods for adapting content delivery based on endpoint communications
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
US11316794B1 (en) * 2020-01-26 2022-04-26 Zodiac Systems, Llc Method and system for improving adaptive bit rate content and data delivery
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
CN112184510B (zh) * 2020-10-15 2021-10-29 深圳市逸马科技有限公司 一种基于云端的互动教学平台
US11290508B1 (en) 2020-12-04 2022-03-29 Capital One Services, Llc Automated caching and tabling layer for finding and swapping media content
CN114860168B (zh) * 2022-05-05 2025-01-21 上海交通大学 长短时隙结合优化的缓存放置方法、系统及介质
DE102022124407A1 (de) 2022-07-13 2024-01-18 Hewlett Packard Enterprise Development Lp Benachrichtigung über datenänderungen aus einem einheitlichen datenspeicher
US12267376B2 (en) 2022-09-01 2025-04-01 Mux, Inc. Methods for identifier-based video streaming and sessionization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009824A (zh) * 2006-01-24 2007-08-01 成都索贝数码科技股份有限公司 一种音/视频数据的网络传输方法
CN101010729A (zh) * 2004-08-31 2007-08-01 皇家飞利浦电子股份有限公司 用于转码的方法和设备
CN101077008A (zh) * 2004-10-13 2007-11-21 韩国电子通信研究院 扩展多媒体文件结构以及多媒体文件生成方法和多媒体文件执行方法
US20090067357A1 (en) * 2007-09-10 2009-03-12 Norton Richard Elliott Method and system for multimedia messaging service (mms) to video adaptation
CN101459848A (zh) * 2008-12-26 2009-06-17 西安交通大学 一种分布式多格式数字视频转码结构设计方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751673B2 (en) * 2001-01-03 2004-06-15 Akamai Technologies, Inc. Streaming media subscription mechanism for a content delivery network
US20070276951A1 (en) * 2006-05-25 2007-11-29 Nicholas Dale Riggs Apparatus and method for efficiently and securely transferring files over a communications network
US8180920B2 (en) * 2006-10-13 2012-05-15 Rgb Networks, Inc. System and method for processing content
US8909806B2 (en) * 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations
US9537967B2 (en) * 2009-08-17 2017-01-03 Akamai Technologies, Inc. Method and system for HTTP-based stream delivery
US9774923B2 (en) * 2010-05-28 2017-09-26 Verizon Patent And Licensing Inc. Bandwidth management and advertisement insertion in media content delivery systems and methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101010729A (zh) * 2004-08-31 2007-08-01 皇家飞利浦电子股份有限公司 用于转码的方法和设备
CN101077008A (zh) * 2004-10-13 2007-11-21 韩国电子通信研究院 扩展多媒体文件结构以及多媒体文件生成方法和多媒体文件执行方法
CN101009824A (zh) * 2006-01-24 2007-08-01 成都索贝数码科技股份有限公司 一种音/视频数据的网络传输方法
US20090067357A1 (en) * 2007-09-10 2009-03-12 Norton Richard Elliott Method and system for multimedia messaging service (mms) to video adaptation
CN101459848A (zh) * 2008-12-26 2009-06-17 西安交通大学 一种分布式多格式数字视频转码结构设计方法

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103369405A (zh) * 2012-03-23 2013-10-23 索尼公司 使用低带宽连接的iptv无线电设备
CN103905836A (zh) * 2012-12-27 2014-07-02 辉达公司 通过帧率控制实现网络自适应时延降低
CN104854894A (zh) * 2013-01-17 2015-08-19 英特尔Ip公司 针对dash的内容url认证
CN104854894B (zh) * 2013-01-17 2018-11-02 英特尔Ip公司 针对dash的内容url认证
CN104509060B (zh) * 2013-02-04 2018-01-05 华为技术有限公司 流媒体数据传输的方法及装置
WO2014117408A1 (zh) * 2013-02-04 2014-08-07 华为技术有限公司 流媒体数据传输的方法及装置
CN104509060A (zh) * 2013-02-04 2015-04-08 华为技术有限公司 流媒体数据传输的方法及装置
US10182086B2 (en) 2013-02-04 2019-01-15 Huawei Technologies Co., Ltd. Method and apparatus for transmitting streaming media data
WO2015000142A1 (zh) * 2013-07-02 2015-01-08 华为技术有限公司 一种传输业务数据的方法、系统和设备
CN105659623A (zh) * 2013-10-30 2016-06-08 索尼公司 发送装置、发送方法、接收装置以及接收方法
CN105659623B (zh) * 2013-10-30 2019-04-26 索尼公司 发送装置、发送方法、接收装置以及接收方法
US10499094B2 (en) 2013-10-30 2019-12-03 Saturn Licensing Llc Transmission apparatus, transmitting method, reception apparatus, and receiving method
CN106134145B (zh) * 2014-03-26 2019-08-13 英特尔公司 自适应媒体流传送
CN106134145A (zh) * 2014-03-26 2016-11-16 英特尔公司 自适应媒体流传送
CN104980775A (zh) * 2014-04-01 2015-10-14 汤姆逊许可公司 视频流式传输的方法、相应的设备及系统
CN106416269A (zh) * 2014-04-07 2017-02-15 爱立信股份有限公司 单播自适应比特率流播
CN106416269B (zh) * 2014-04-07 2020-01-03 爱立信股份有限公司 单播自适应比特率流播
WO2015176470A1 (zh) * 2014-05-22 2015-11-26 华为技术有限公司 一种http协议的缓存状态更新方法和设备、处理机
US10003999B2 (en) 2014-05-22 2018-06-19 Huawei Technologies Co., Ltd. HTTP-based buffer status updating method and device, and buffer status processor
CN105245562A (zh) * 2014-07-04 2016-01-13 汤姆逊许可公司 操作高速缓存器的方法以及对应的高速缓存器
US10735823B2 (en) 2015-03-13 2020-08-04 Telefonaktiebolaget Lm Ericsson (Publ) System and method for optimized delivery of live ABR media
CN107431704A (zh) * 2015-03-13 2017-12-01 瑞典爱立信有限公司 用于使用多播机制的直播自适应比特率(abr)媒体的优化传递的系统和方法
WO2016155522A1 (en) * 2015-03-30 2016-10-06 Huawei Technologies Co., Ltd. Distributed content discovery with in-network caching
US10298713B2 (en) 2015-03-30 2019-05-21 Huawei Technologies Co., Ltd. Distributed content discovery for in-network caching
US10567465B2 (en) 2015-03-31 2020-02-18 Avago Technologies International Sales Pte. Limited Streaming video over a network
CN106028053A (zh) * 2015-03-31 2016-10-12 美国博通公司 视频服务器和服务质量管理器
CN106028053B (zh) * 2015-03-31 2019-05-28 安华高科技股份有限公司 视频服务器和服务质量管理器
CN105049896A (zh) * 2015-07-23 2015-11-11 Tcl集团股份有限公司 一种基于hls协议的流媒体广告插入方法及系统
CN105049896B (zh) * 2015-07-23 2019-11-12 Tcl集团股份有限公司 一种基于hls协议的流媒体广告插入方法及系统
CN106888381B (zh) * 2015-12-16 2019-11-08 中兴通讯股份有限公司 一种数据资源存储方法及装置
WO2017101576A1 (zh) * 2015-12-16 2017-06-22 中兴通讯股份有限公司 一种数据资源存储方法及装置
CN106888381A (zh) * 2015-12-16 2017-06-23 中兴通讯股份有限公司 一种数据资源存储方法及装置
CN105681283A (zh) * 2015-12-29 2016-06-15 广东欧珀移动通信有限公司 一种传输带宽的自动调节方法及装置
CN106775471A (zh) * 2016-12-08 2017-05-31 深圳创维-Rgb电子有限公司 管理本地存储器的方法及装置
CN108449645A (zh) * 2017-02-16 2018-08-24 腾讯科技(深圳)有限公司 基于移动终端iOS系统的视频播放方法及装置
CN108449645B (zh) * 2017-02-16 2022-02-01 腾讯科技(深圳)有限公司 基于移动终端iOS系统的视频播放方法及装置
WO2019242142A1 (zh) * 2018-06-19 2019-12-26 南京中兴软件有限责任公司 描述文件的传输方法、视频的播放方法及装置
CN108900851A (zh) * 2018-06-19 2018-11-27 中兴通讯股份有限公司 描述文件的传输方法、视频的播放方法及装置
CN111083410A (zh) * 2019-12-30 2020-04-28 珠海全志科技股份有限公司 一种用于dvr的音视频流的处理方法及装置
CN111083410B (zh) * 2019-12-30 2022-02-25 珠海全志科技股份有限公司 一种用于dvr的音视频流的处理方法及装置
CN114946192A (zh) * 2020-01-15 2022-08-26 杜比国际公司 利用比特率切换自适应流式传输媒体内容
US11997339B2 (en) 2020-01-15 2024-05-28 Dolby International Ab Adaptive streaming of media content with bitrate switching
CN112039760A (zh) * 2020-08-31 2020-12-04 杭州叙简科技股份有限公司 一种物联网网关的数据自动恢复系统及数据自动恢复方法
WO2024188248A1 (zh) * 2023-03-14 2024-09-19 抖音视界有限公司 媒体文件生成方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
EP2521369A2 (en) 2012-11-07
CN102740159B (zh) 2016-06-08
EP2521369A3 (en) 2014-10-01
US8489760B2 (en) 2013-07-16
US20120254456A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
CN102740159B (zh) 媒体文件存储格式和自适应传送系统
CN102439578B (zh) 动态可变速率媒体传送系统
US10397293B2 (en) Dynamic chunking for delivery instances
US8392615B2 (en) Dynamic variable rate media delivery system
US8327013B2 (en) Dynamic index file creation for media streaming
US9621928B2 (en) Streaming playback and dynamic ad insertion
CN102282804B (zh) 自适应网络内容传送系统
US8645504B2 (en) Dynamic chunking for delivery instances
US20120005313A1 (en) Dynamic indexing for ad insertion in media streaming
US8954540B2 (en) Dynamic audio track selection for media streaming
CA2866472A1 (en) Dynamic audio track selection for media streaming
US20170140443A1 (en) Dynamic manifest generation for delivery instances

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.

C14 Grant of patent or utility model
GR01 Patent grant