实时视频检测器转让专利
申请号 : CN201280025814.X
文献号 : CN103583040A
文献日 : 2014-02-12
发明人 : E·R·斯文森 , N·布汉达里 , J·海尔伯恩 , R·奥伯霍费尔 , J·汉森
申请人 : 天火实验室公司
摘要 :
权利要求 :
1.一种用于检测视频请求的方法,所述方法包括:
截获对从服务器取回内容的请求,所述请求源于客户端设备并且从网络被截获;
基于与所述请求关联的信息确定所述对取回内容的请求是否是针对取回视频;
基于所述客户端设备的属性确定码转换所述视频;以及
响应于所述视频被标识用于码转换,将所述视频请求向用于码转换所述视频的优化器重定向。
2.根据权利要求1所述的方法,其中基于在对于视频的请求中的文件名扩展检测所述请求,所述文件名扩展在所述请求的净荷中被标识。
3.根据权利要求1所述的方法,其中基于用户代理和对于视频的请求的引用者头部检测所述请求。
4.根据权利要求1所述的方法,还包括针对被标识用于码转换的视频生成编码简档,所述编码简档生成基于可用于所述客户端设备的网络连接的属性、所述客户端设备的属性、请求的所述视频的属性和请求的视频文件的类型中的至少一项。
5.根据权利要求4所述的方法,还包括基于针对所述视频请求生成的所述编码简档确定码转换所述视频。
6.根据权利要求1所述的方法,还包括基于请求的所述视频的音频和视频属性确定请求的所述视频的码转换视频大小。
7.根据权利要求6所述的方法,其中请求的所述视频的所述音频和视频属性包括请求的所述视频的比特率。
8.根据权利要求1所述的方法,其中将所述视频请求向优化器重定向包括生成具有向所述优化器的重定向请求的统一资源定位符(URL)。
9.一种用于检测视频请求的方法,所述方法包括:
截获对从服务器取回内容的请求,所述请求在实时消息接发协议(RTMP)中被提出,所述请求源于客户端设备并且从网络被截获;
基于截获的所述对取回内容的请求生成超文本传送协议(HTTP)POST/PUT请求;
向视频优化器发送所述HTTP POST/PUT请求;
基于发送的所述HTTP POST/PUT请求从所述视频优化器接收优化的视频;以及向所述客户端发送所述优化的视频。
10.根据权利要求9所述的方法,还包括自适应地限制可用于所述客户端设备的比特范围。
11.一种存储用于检测视频请求的可执行计算机程序指令的计算机可读存储介质,所述计算机程序指令包括用于以下操作的指令:截获对从服务器取回内容的请求,所述请求源于客户端设备并且从网络被截获;
基于与所述请求关联的信息确定所述对取回内容的请求是否是针对取回视频;
基于所述客户端设备的属性确定码转换所述视频;以及
响应于所述视频被标识用于码转换,将所述视频请求向用于码转换所述视频的优化器重定向。
12.根据权利要求11所述的计算机可读存储介质,其中基于在对于视频的请求中的文件名扩展检测所述请求,所述文件名扩展在所述请求的净荷中被标识。
13.根据权利要求11所述的计算机可读存储介质,其中基于用户代理和对于视频的请求的引用者头部检测所述请求。
14.根据权利要求11所述的计算机可读存储介质,还包括用于以下操作的指令:针对被标识用于码转换的视频生成编码简档,所述编码简档生成基于可用于所述客户端设备的网络连接的属性、所述客户端设备的属性、请求的所述视频的属性和请求的视频文件的类型中的至少一项。
15.根据权利要求14所述的计算机可读存储介质,还包括用于以下操作的指令:基于针对所述视频请求生成的所述编码简档确定码转换所述视频。
16.根据权利要求11所述的计算机可读存储介质,还包括用于以下操作的指令:基于请求的所述视频的音频和视频属性确定请求的所述视频的码转换视频大小。
17.根据权利要求16所述的计算机可读存储介质,其中请求的所述视频的所述音频和视频属性包括请求的所述视频的比特率。
18.根据权利要求11所述的计算机可读存储介质,其中将所述视频请求向优化器重定向包括生成具有向所述优化器的重定向请求的统一资源定位符(URL)。
19.一种存储用于检测视频请求的可执行计算机程序指令的计算机可读存储介质,所述计算机程序指令包括用于以下操作的指令:截获对从服务器取回内容的请求,所述请求是在实时消息接发协议(RTMP)中被提出,所述请求源于客户端设备并且从网络被截获;
基于截获的所述对取回内容的请求生成超文本传送协议(HTTP)POST/PUT请求;
向视频优化器发送所述HTTP POST/PUT请求;
基于发送的所述HTTP POST/PUT请求从所述视频优化器接收优化的视频;以及向所述客户端发送所述优化的视频。
20.根据权利要求19所述的计算机可读存储介质,还包括用于以下操作的指令:自适应地限制可用于所述客户端设备的比特范围。
说明书 :
实时视频检测器
技术领域
背景技术
们要求用户在用户可以查看文件之前等待文件下载。另外,预计用户下载每个文件、在计算设备上对它进行定位并且执行它可能并不合理。
这对于具有欠佳网络连接的移动计算设备尤为如此。这样,移动计算设备的用户通常必须
等待在他们的设备上用流传输视频。用流传输的视频通常定期地冻结或者缓冲,从而妨碍
用户享用视频流的无间断回放。
留视频控制功能,比如暂停、查找和视频分辨率改变。这样,希望在他们的移动计算设备上用流传输视频文件的用户通常必须为了加载和缓冲视频而等待不合理时间量或者他们必
须忍受不提供无间断回放的视频。
附图说明
具体实施方式
用的可行备选。
性为视频选择简档。此外,分析请求以确定是否码转换视频以用于在客户端设备上回放,其中基于在视频简档中提供的值进行确定。如果视频被标记用于码转换,则将视频与码转换
参数一起向优化器重定向。基于选择的视频简档和网络连接属性选择码转换参数。向请求
视频的客户端设备发送优化的视频以在客户端设备中实现回放。
一个实施例中,视频优化器经由网络被连接到视频检测器104和始发服务器108。
不是针对视频,则视频检测器104向适当托管服务器转发请求。在另一方面,如果请求是针对视频,则视频检测器104标记视频以用于码转换并且将标记的请求重定向回到客户端计
算设备102。客户端计算设备102通过网络110发送标记的请求,其中向视频优化器106路
由请求。视频优化器106请求来自始发服务器108的视频并且优化从始发服务器计算设备
108接收的视频。向视频检测器104发送优化的视频,其中通过网络110向客户端计算设备
102转发回它。在客户端计算设备102上执行的解码器114可以对接收的视频流进行解码
以针对查看客户端计算设备102的用户回放流。
器104和始发服务器108。网络110也可以利用未必是因特网的部分的专用或者专有通信
链路。在一个实施例中,网络110使用标准通信技术和/或协议。因此,网络110可以包
括使用诸如以太网、Wi-Fi(802.11)、综合业务数字网络(ISDN)、数字用户线(DSL)、异步传输模式(ATM)等技术的链路。类似地,在网络110上使用的联网协议可以包括多协议标签
切换(MPLS)、传输控制协议/网际协议(TCP/IP)、超文本传送协议(HTTP)、简单邮件传送协议(SMTP)、文件传送协议(FTP)等。在一个实施例中,链路中的至少一些链路使用包括通用分组无线电服务(GPRS)、增强数据GSM环境(EDGE)、码分多址2000(CDMA2000)和/或宽带CDMA(WCDMA)的移动联网技术。可以使用包括超文本标记语言(HTML)、可扩展标记语言(XML)、无线接入协议(WAP)、短消息服务(SMS)等的技术和/或格式来表示通过网络110交换的数据。此外,可以使用常规加密技术(比如安全套接字层(SSL)、安全HTTP和/或虚拟专有网络(VPN))来加密链路中的所有或者一些链路。在另一实施例中,实体可以使用定制和/或专用数据通信技术取代或者附加于以上描述的数据通信技术。
计算机系统。在其他实施例中,客户端计算设备102包括除了计算机系统之外的有网络能
力的设备,比如个人数字助理(PDA)、蜂窝电话、智能电话、寻呼机、电视“机顶盒”等。虽然图
1仅图示了一个客户端计算设备102,但是本发明的实施例可以具有连接到网络110的数千
个或者数百万个客户端设备。客户端应用112可以在客户端计算设备102上执行。客户端
应用可以包括能够在客户端设备上执行并且与网络112对接的任何应用。客户端应用的示
例包括但不限于web浏览器,比如SKYFIRE、FIREFOX、INTERNET EXPLORER、CHROME等。客户端应用112可以与用户对接并且接收对回放视频流的用户请求。响应于用户请求,客户端
应用112发送对通过网络110用流传输视频的请求。可以如在本说明书中描述的那样在向
客户端计算设备102用流传输之前在视频优化器上对视频进行编码。在一个实施例中,解
码器114对传入的编码的视频流进行解码并且向客户端应用112提供它。客户端应用112
可以在与客户端计算设备102关联的显示器上回放解码的视频流。在另一实例中,可以在
客户端102存储从视频优化器106接收的编码的视频以用于以后查看。在其中客户端是高
速缓存或者如本领域中已知的相似设备的实施例中也可以在客户端102存储编码的视频。
频检测器104可以在客户端计算设备102上执行。作为内联网络装置,视频检测器104接
收由客户端计算设备102发送和接收的所有流量中的全部或者子集,该流量包括超文本传
送协议(HTTP)、实时消息接发协议(RTMP)流量。在这样的实施例中,视频检测器作为网络代理而服务。在一个实施例中,视频检测器104高度地可用(HA)和可伸缩以便每秒处置许多吉比特的流量。在这样的实施例中,视频检测器104由网络代理过程(比如SQUID)构成
而视频检测器104通过本地网络接口(比如因特网内容适配协议(ICAP))由SQUID调用。在一个实施例中,视频检测器104通过使用向视频检测器104中集成的另一过程来处置RTMP
流量。在一个实施例中,另一装置可以是经由应用编程接口(API)调用视频检测器104的
网络代理。这样的实施例允许视频检测器104与现有网络基础设置集成。这样,视频检测
器104可以与负荷平衡器、路由器和内容导引装置(content steering appliance)集成。
上运行的代理执行以通过视频检测过程截获待馈送的HTTP(和其他)协议。在这样的实施
例中,可以从客户端计算设备102直接将请求和/或响应向视频码转换器106或者文件高
速缓存重定向。在一个实施例中,客户端软件可以调用用于确定是否启用优化的服务从而
使优化成为可用于用户的服务。
设备102并且由视频检测器104路由的对优化视频的请求。视频优化器106可以调用始发
服务器计算设备108以取回请求的视频并且码转换它。可以经由视频检测器104向客户端
计算设备102用流传输码转换的视频。在一个实施例中,视频优化器106通过网络110与
客户端计算设备102对接。始发服务器计算设备108是向客户端计算设备102提供网页、
音频/视频文件和/或其他电子文档的实体。web始发服务器计算设备108可以例如是由
国家媒体出口运营的大型因特网网站、在由独立个体运营的web服务器上的个人博客和/
或网页的另一发布者。尽管在图1中仅示出一个web托管服务器108,但是系统的实施例可
以具有数千个或者数百万个不同托管服务器。为了清楚的目的仅示出一个始发服务器计算
设备108。这一描述使用术语“视频”以指代由始发服务器计算设备108供应的任何电子文
件,例如,文档、音频或者视频文件等,而无论文档是否在技术上是视频文件。
操作的一个或者多个机器。图1的环境中所示的计算实体(例如,102、104、106和108)与计算机器200构造相似并且可以被进一步定制以用于如这里进一步描述的特定功能配置(例
如,操作)。
图解表示,在该计算机系统200内可以执行用于使机器(例如,具有一个或者多个处理器和/或控制器)执行这里讨论的方法中的任何一种或者多种方法的指令224(例如,软件代码)。
在备选实施例中,机器作为独立设备操作或者可以被连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器-客户端网络环境中的服务器机器或者客户端机器的能力内或
者作为对等(或者分布式)网络环境中的对等机器操作。
种方法。
(PDP)、液晶显示器(LCD)、投影仪或者阴极射线管(CRT))。计算机系统200也可以包括也被配置用于经由总线208通信的字母数字输入设备212(例如,键盘)、光标控制设备214(例如,鼠标、跟踪球、操纵杆、运动传感器或者其他指点仪器)、存储单元216、信号生成设备218(例如,扬声器)和网络接口设备220。
(例如软件)也可以完全或者至少部分驻留于主存储器204内或者在计算机系统200执行这
些指令期间驻留于处理器202内(例如,处理器的高速缓冲存储器),主存储器204和处理器
202也构成机器可读介质。可以经由网络接口设备220通过网络110传输或者接收指令224
(例如,软件)。
于形式为固态存储器、光介质和磁介质的数据贮存库。
视频检测器104被图示为模块的高级框图,这些模块被配置用于检测对用流传输视频文件
的请求并且如果适合则向视频优化器106路由视频请求。在一个实施例中,视频检测器104
包括标识引擎302、选择引擎304、码转换确定引擎306、URL生成器308、自适应比特率引擎
310、动态比特率调整器312和健康检查引擎314。模块被配置用于如这里描述的那样工作
和互操作。
URL方案(例如,YOUTUBE视频取读)以确定是否请求视频馈送。在响应路径中,标识引擎302查看mime类型或者其他头部信息和/或实际净荷数据以确定请求是否针对视频馈送。例
如,FLASH视频(FLV)和MPEG-4(MP4)视频通过分别查看净荷的4或者8字节而可标识。
FLV文件始于‘F’、‘L’、‘V’,并且MP4视频在字节5到8中具有‘f’、‘t’、‘y’、‘p’。在一个实施例中,选择引擎304标识用户代理和引用者头部以确定视频请求的类型。如果引用
者头部例如是http://
些浏览器并不插入用于插件的引用者头部,因此标识引擎可以寻找这一头部的不存在以标
识视频请求。这样,标识引擎302确定取读请求是否针对视频流。在一个实施例中,标识引擎302向对于视频的客户端请求添加视频重定向到优化器标志。
发送回相同视频。
本、包括用户的数据计划等的用户/预订信息、网络类型(WiFi、第三代移动电信协议(3G)、第四代移动电信协议(4G)等)、当前网络状态和网络拥塞。选择的简档包括以下各项中的至少一项:启用或者禁用码转换或者视频压缩的标志、视频宽度/高度、视频比特率、视频帧速率除数、音频采样率和声道数目、音频比特率和其他编码信息如CODEC和CODEC简档、
比如H.264主要等以及视频容器目的地如FLV、MP4等。在一个实施例中,向确定是否码转
换视频文件的码转换确定引擎306提供选择的简档信息。
多种编码的视频,因此可以将MP4转换成FLV而未引起错误。由于FLV文件未预先指定所
有帧大小,所以它有益地允许自适应码转换。此外,由于视频优化器106可以码转换成有益于客户端情形的格式,所以选择引擎304可以选择编码简档以利用硬件加速的解码和其他
客户端属性。
编码简档进行这样的确定。例如,可以基于如在编码简档中提供的速率计划等为特定用户
启用或者禁用视频压缩。在一个实施例中,码转换确定引擎306将这一信息与当前网络条
件信息一起用来确定是否码转换视频。通过与网络中的拥塞检测单元通信,可以基于拥塞
将个别流适配到变化的程度。
视频被标记为被视频优化器106忽略并且向客户端传递视频。在一个实施例中,简档选择
引擎304被配置用于最小压缩增益。
度更大,所以码转换确定引擎306相应地减少比特率。在一个实施例中,使用面积的平方根之比来计算减少量。
项中的至少一项:视频宽度/高度、视频比特率、视频帧速率除数、音频采样率和声道数目、音频比特率、源URL、客户端的用户代理、源域cookie和视频优化器106的任何其他认证数
据。在一个实施例中,URL生成器利用HTTP重定向重写原始响应并且将位置头部设置为新
URL。这使客户端向视频优化器106发出新请求。视频检测器104也具有用于寻找传入URL
的逻辑,其中URL由视频检测器生成从而使得它们未被再次截获。
适应比特率(ABR)播放器310测量网络吞吐量以便判决使用哪个比特率简档。自适应比特
率引擎310可以运用速率限制以迫使播放器认为网络被拥塞或者速度比现实更慢。在一个
实施例中,比特率引擎130将对于请求的视频段的速率限制应用于由简档选择所指定的限
制。相似地,自适应比特率引擎310在渐进下载中使用用于文件的用户简档。自适应比特
率引擎也可以与执行速率限制的另一网元结合工作。在这样的实例中,ABR引擎向网元通
知用于在速率限制器中使用的目标比特率。
建清单文件简档。对于ABR协议,清单文件向客户端计算设备102通报服务器具有的可用
比特率。通过截获和重写清单文件,自适应比特率引擎310可以消除某些带宽简档,并且因此让客户端‘无视’这些简档的存在。这样,客户端计算设备102向新的通报的简档切换,从而使自适应比特率引擎310能够调节视频比特率。如果ABR会话未包含对于给定的网络/
用户状态可接受的比特率,则自适应比特率引擎截获清单文件并且基于选择的用户简档插
入附加比特率简档和/或删除更高比特率简档。在一个实施例中,视频检测器向视频优化
器106发送信息,或者它可以等待直至请求未存在的速率段。视频优化器106可以从始发
服务器取读更高比特率段并且开始码转换成新比特率。视频优化器106然后向视频检测器
104转发段,视频检测器104然后向客户端计算设备102上继续转发它。
随着条件在网络110中改变,动态比特率调整器312将视频优化器106更新成新条件。为
了有助于这一操作,动态比特率调整器312向每个视频流指派会话ID。在一个实施例中,负荷平衡器可以控制码转换器。在这样的系统中,可以向适当码转换器发送更新请求,因为负荷平衡器可以基于这一会话ID向特定码转换器导引流量。
如果不是,则比特率调整跨越所有流为全局。比特率调整消息可以采用两个形式。第一形
式是直接编码器调整。在这一形式中,动态比特率调整器312向码转换器发送新比特率(以及可能发送宽度、高度等)。在视频优化器106上的码转换器遵循这些指令,其中有一些可能的例外处置。第二形式是间接调整。在这一形式中,动态比特率调整器312传达拥塞水
平或者编码激进性。码转换器截获这一信息并且响应于由动态比特率调整器312发送的水
平标识压缩设置。
段,则健康检查模块314定期地查询视频优化器106以保证资源在需要时可用。在客户端
计算设备102上执行的视频检测器104可以在对会话重定向时监视码转换器响应并且在故
障时重定向回到原有URL,或者健康检查模块314可以在进行重定向之前执行健康检查。
被图示为模块的高级框图,这些模块被配置用于对从始发服务器计算设备108并且响应于
客户端计算设备102请求而接收的视频进行编码。在一个实施例中,视频优化器106包括会
话跟踪器402、性能估计器404、HTTP服务器406、FLASH HTTP处置器408、查找处置器410、元数据处置器412和码转换引擎414。模块被配置用于如这里描述地工作和互操作。
和用于查找操作。在一个实施例中,如果系统想要解决流专属带宽,则会话跟踪器402可以提供码转换器的适当实例。在另一实施例中,会话跟踪器402跟踪会话以保持与查找请求
关联的请求的跟踪。例如,在查找操作(比如快进)出现时,在客户端计算设备102上的客户端应用112放弃文件下载请求并且用新起点开始新下载。
(比如src/dest IP以及src/dest端口和协议的IP4/5元组)可以用来跟踪每个会话。
存储于表中。如果连接掉线(在它们的播放器进行查找时或者出于某个其他原因),则将会话置于待命状态,其中将它保持一段时间以查看对于相同会话的新请求是否进来。在定时
器到期之后,从会话表去除会话。
可以处理的多个请求类型,所以每个唯一类型被存储于分离的状态表中或者被组合成一个
大表。运行会话可以调回到会话跟踪器402中以在周期性基础上更新它的统计。会话跟踪
器402使这一数据通过web接口和/或简单网络管理协议(SNMP)等可用。会话跟踪器402
也基于来自每个实例的统计更新累计长期统计。这些统计采用实时会话(活跃会话)和使
用已完成会话的长期会话的形式。这些统计也跟踪用于每个统计的最小、最大和平均统计。
在进程完成时,它向会话跟踪器402取消注册其本身,会话跟踪器402然后可以回收与该会
话关联的资源。
不能将全部连接视为“忙碌”的指标。查看中央处理单元(CPU)利用也是不够的,因为即使码转换器仍然具有用于处置更多会话的余地,CPU利用仍然可能在码转换过程期间由于各
种原因而峰化至100%。使服务器限于少于百分之一百的值因而在表上留下容量。
以获得它的状态。服务器可以返回以下结果之一:拖延模式,该模式指示服务器已经达到容量并且应当向服务器发送新会话。继续向服务器发送并且处理现有会话。关停模式指示服
务器在关停过程中并且现在不应向它发送新会话。这可以归因于内部服务器错误或者被迫
(舒缓)关停。在舒缓关停期间,继续向服务器发送并且处理现有会话直至它们在实际关停可以继续时都被完成。无拖延模式或者关停模式可以指示系统正在恰当运行并且可以接受
新连接。如果服务器未响应或者响应错误,则负荷平衡器认为它停机并且从池去除它。将
不向服务器发送新的或者现有会话。
计器404查看待解码的文件和输出配置。通过查看视频尺度和帧速率,性能估计器可以获
得需要每秒解码和编码多少宏块的估计。用于计算利用的(一阶)等式如下继续:
响利用率的其他非线性效果,比如资源匮乏。服务器可以具有存储器带宽或者其他硬件限
制,这些限制可以防止它达到全容量。这些可以简单地被作为因子向以上提供的等式添加。
编号的核来解码。这意味着1080P会话的总数为处理器核数目的一半。
意,在一个实施例中,如果服务器可以在高于100%容量运行,则码转换操作可以不实时跟
上。
RTMP会话作为FLV渐进下载来处置。如果需要则可以使用其他网络接口。在一个实施例
中,HTTP服务器解析传入请求以提取从视频检测器104传递的包括比特率、分辨率等的设
置。传入请求也可以包含原有的请求的URL和cookie或者RTMP连接消息净荷。
求的形式的二进制数据,该形式例如包括FLASH FLV。HTTP服务器406向恰当HTTP响应中
封装这一数据。
而通常未知的内容长度。这一点的结果是FLASH播放器通常不允许查找操作。备选地,可
以提供猜测。这个值可以大于实际值,并且如果在完成传送时关闭连接,则大多数浏览器恰当处置这一点。
使用这二者之比作为用于输出内容长度的起点。HTTP服务器可以填充帧从而保证未超过
目标。如果源文件为MP4格式,则HTTP服务器406通过使用以下描述的MP4算法来获得估
计。
如,FLASH媒体处理器408从视频检测器104接收URL、用户-代理和cookie信息并且向码
转换引擎414传递信息。在一个实施例中,在码转换引擎414码转换源文件时,FLASH媒体
处置器408读取码转换的输出数据并且向FLV或者MP4容器中封装输出数据。在其他实施
例中,码转换引擎414封装码转换的输出数据。此外,FLASH媒体处置器408也能够恢复由
于用户在客户端计算设备102上执行查找操作而停止的码转换会话。
包括元数据头部,这些元数据头部包括CODEC头部、持续时间等。在这样的实例中,向码转换引擎414发送新文件以被码转换而并不知道先前会话。
作取回元数据并且向码转换引擎414提供元数据和时间戳数据以在与时间戳关联的时间
发起码转换过程。在第三实施例中,新文件下载是范围-偏移。范围-偏移是可以是向源
文件中的原始偏移。在这样的实例中,元数据头部不可用,然而,如果可用则可以包括帧头部。在这样的实施例中,重用并且向码转换引擎414提供中止的会话的元数据以码转换新
文件。在其中使用先前或者中止的会话的元数据的实施例中,查找处置器410通过制作中
止的会话的元数据的副本并且向新会话的处置器传递它来执行会话转移。在一个实施例
中,在由媒体封装器(比如FLASH媒体处置器408)形成文件输出时创建元数据。在这样的
实例中,在在文件码转换过程期间需要的文件和帧头部的开头创建FLV或者MP4头部和。
来跟踪视频文件的源的sourcedata元标签;通知FLASH播放器可以执行准时查找操作的
canseekontime元标签;用来指示视频的开始时间的aktimeoffset参数;向FLASH播放器
提供视频的查找点的keyframe元标签,在一个实施例中,向码转换引擎传递源帧的关键帧
而未传递码转换的文件的关键帧,因为FLASH播放器使用这一数据以基于原有文件的属性
向原有服务器发送查找请求;也向播放器提供查找点的cuepoints元标签;haskeyframe和
canseektoend元标签。此外,如果元文件不具有元数据字段,则元数据处置器412生成它
们。例如,元数据处置器412可以针对待码转换的视频创建starttime和duration字段。
例中,元数据处置器412在输出文件中保存MP4元数据字段。以下是元数据字段的列表。在
NamePairs中的第一条目是MP4名称,第二条目是FLV名称,并且第三个是缩放因子:
码转换会话期间以视频的标称帧速率码转换。例如,如果输出文件是15帧每秒(fps),则码转换器不可以比15fps更快运行。在一个实例中,码转换引擎414可以在更块速率码转换
以防止在客户端的媒体播放器中延误。
接收缓冲器。在一个实施例中,码转换引擎414对于视频的前150帧以高速率码转换。
定。因此,如果码转换操作引起崩溃或者存储器破坏,则损坏限于该会话而其他用户和服务器本身未受影响。为了实现这一点,视频优化器106创建用于在视频优化器106与码转换引
擎414之间传递数据的共享存储器对象。通过共享存储器向码转换引擎414写入源文件。
这可以是原始数据,或者视频优化器106可以向盘写入并且然后通过共享存储器向码转换
引擎414告知当前状态。码转换引擎414向共享存储器写入由码转换引擎创建的数据。视
频优化器106然后读取这一数据并且通过网络向客户端计算设备102发送它。
以基于网络条件更改音频和/或视频码速率。在网络中可以存在可以向码转换器用信号发
送拥塞或者目标比特率的设备,或者码转换引擎414可以自行进行判决。在任一情况下,码转换引擎414可以基于这一反馈改变它的编码设置。例如,码转换引擎414每数秒挑选新
目标比特率并且可以用新值对将来帧进行编码。
看网络写入请求是否倒退。如果视频优化器106使用TCP,则TCP发送缓冲器将填满,并且
将必须推迟附加网络发送直至在缓冲器中有空间。在一个实施例中,码转换引擎414使用
这一属性以增加向客户端计算设备102递送的比特率。例如,如果网络未表现被拥塞,则可以在检查倒退之时逐渐增加比特率。在一个实施例中,码转换引擎414在比特率增加之前
或者与比特率增加结合使用以上描述的turbo模式以快速生成若干帧。如果那些帧无问题
通过网络,则可以增加比特率。
更改的视频流。在这样的实例中,码转换引擎414可以监视网络吞吐量而未码转换以标识
任何网络拥塞。在一个实施例中,码转换引擎414对网络吞吐量进行采样以确定网络拥塞
或者容量。在一个实施例中,视频检测器104可以对未更改的视频吞吐量进行采样以确定
网络条件。
从始发服务器计算设备108取回内容的HTTP获得(GET)请求502。视频检测器104截获客
户端计算设备102生成的所有请求。在一个实施例中,视频检测器104标识HTTP获得请求
是否为视频。在另一实施例中,视频检测器向既定始发服务器计算设备108转发HTTP获得
请求502并且从始发服务器接收响应(RESPONSE)504。视频检测器104解析响应504以确
定响应504是否为视频。如果响应504是视频,则视频检测器104将响应504重写为HTTP
重定向(REDIRECT)响应506,从而使客户端102请求来自视频优化器106的文件。在一个
实施例中,视频检测器向客户端计算设备102发送HTTP重定向请求506。如果响应不是视
频或者视频检测器104确定不应码转换请求,则视频检测器104向客户端计算设备102转
发响应。
106路由HTTP重定向请求506时监视来自客户端设备的流量和/或请求。在这样的配置
中,视频优化器106仅看见对于需要被码转换并且与HTTP重定向请求506关联的视频文件
的请求。这样,视频优化器106没有由客户端计算设备102生成的所有请求的负担。
设备可使用的并且以用于向客户端发送优化的视频512的网络条件为基础的格式。在一个
实施例中,视频检测器104截获优化的视频512并且向客户端转发512。这样,客户端接收
优化的视频512以用于在客户端计算设备102上执行的应用上基本上实时回放。
频优化器106向从客户端计算设备102接收的HTTP重定向请求追加未码转换标志。向客
户端计算设备102发送具有未码转换标志的HTTP重定向请求,其中客户端通过网络重新发
送出具有未码转换标志的请求。由于未码转换标志,在这样的实例中,视频检测器104和视频优化器106未截获请求,并且向始发服务器计算设备108传播它,其中始发服务器计算设
备108对请求适当响应。在另一实施例中,视频检测器104从视频优化器106的响应中的
HTTP响应头部检测存在未码转换标志。它然后将这存储于状态高速缓存中,该状态高速缓
存用来记住视频优化器106不能优化视频。在客户端计算设备102重新请求原有文件时,
视频检测器104查阅它的状态高速缓存并且检测未优化状态(基于URL)。这样,防止视频检测器104向视频优化器106发送回请求。在状态高速缓存中的条目在视频的持续时间或者
与恒定倍率(例如2.0)相乘的该持续时间之后超时。
2字节(GET2BYTES)602请求。视频检测器104截获客户端生成的所有请求并且向始发服
务器转发获得2字节请求602。作为响应,视频检测器104接收2字节(2BYTES)604、重写
它为HTTP重定向(REDIRECT)请求606并且向客户端计算设备102转发它606。
定向请求606的网络流量。视频优化器106生成全请求(FULL REQUEST)并且向始发服务
器计算设备108转发它608。响应于全请求,视频优化器106从始发服务器计算设备108接
收响应(RESPONSE)610。视频优化器106对接收的响应610执行简档检查612以确定响应
610是否为视频。如果响应不是视频,则视频优化器106向响应610追加始发服务器标志并
且向客户端计算设备102转发它。
随着码转换过程在视频优化器106上开始而存储码转换的文件的导出高速缓存613。如果
来自客户端102的新请求针对文件的已经被码转换的一部分而到来,则可以从导出高速缓
存613直接满足请求而无需再次重新码转换视频。在其中查找请求由客户端提供的一个实
施例中,简档检查612确定在查找请求中请求的字节范围是否存在于导出高速缓存613中。
如果字节范围未存在于导出高速缓存613中,则可以如在说明书中描述的那样在查找点之
前或者在查找点码转换视频。在一个实施例中,从查找点或者之前码转换视频直至它达到
在另一码转换会话的导出高速缓存613中提供的字节范围。这样,简档检查612防止两个
码转换会话码转换文件的相同部分。在一个实施例中,即使客户端断开仍然填充导出高速
缓存613,从而使对于相同文件的新请求能够被导出高速缓存613满足。例如,如果在用户
断开时的字节范围停止码转换,则码转换的文件可能对可以在以后的点查看码转换的文件
的另一用户无用。在一个实施例中,导入高速缓存611维护从始发服务器计算设备108下
载的文件。因此,如果从客户端计算设备接收对于相同文件的另一请求,则从导入高速缓存
611而不是从始发服务器计算设备108取回文件。
的新位置。视频检测器向视频优化器106转发具有时间或者字节偏移的查找请求,其中视
频优化器106向始发服务器计算设备108转发它。响应于请求,始发服务器106向视频优
化器106提供偏移数据。视频优化器接收偏移数据并且将它视为新请求702并且从由始发
服务器计算设备108提供的时间或者字节偏移开始下载新文件。
述的那样码转换706新请求。如果新请求与现有会话704关联,则该过程传送708来自现
有会话的元数据信息。如果新请求702针对FLV文件,该文件包括指示文件为FLV文件的
头部、但是不含任何其他元数据,则该过程向与查找操作关联的码转换的文件追加元数据。
接请求时,它未如同它将在说明书中讨论的HTTP实施例中那样向始发服务器代送请求。作
为替代,RTMP服务器向视频优化器106重新路由请求。请求是HTTP POST/PUT,这包含与
如在说明书中讨论的HTTP重定向请求相同的数据而且也在POST数据中携带RTMP连接消
息净荷。响应于HTTP POST,视频优化器经由RTMP Dump打开与始发服务器的RTMP会话并
且以FLV文件的形式返回码转换的视频。在一个实施例中,RTMP服务器将这一数据变换成
RTMP流并且向客户端返回它。如果RTMP服务器判决不码转换请求,则它转发原有RTMP数
据流或者拒绝来自客户端的原有请求。RTMP服务器以代理方式向RTMP Dump转发控制消
息。这些控制消息包括暂停、查找、停止、恢复、播放和对从始发服务器发出的数据的控制有影响的任何其他控制消息。
106发送它。视频优化器使用HTTP POST/PUT请求以在始发服务器计算设备108上生成
RTMP请求。在这样的实例中,视频优化器模仿客户端计算设备102。响应于RTMP请求,视
频优化器106从始发服务器接收响应808。在接收响应时,视频优化器基于响应创建文件并
且码转换响应数据808。向RTMP服务器101发送812优化的视频,其中RTMP服务器认为它
正在从基于文件的接口而不是基于流的接口接收优化的数据。RTMP服务器101向客户端转
发优化的视频812以用于在客户端上用流传输RTMP视频。
部件而呈现的结构和功能实施为组合的结构或者部件。类似地,可以将作为单个部件而呈
现的结果和功能实施为单独部件。这些和其他变化、修改、添加以及改进落入这里的主题内容的范围内。
或者布置。在示例实施例中,一个或者多个计算机系统(例如,独立、客户端或者服务器计算机系统)或者计算机系统的一个或者多个硬件模块(例如,处理器或者处理器组)可以由软件(例如,应用或者应用部分)配置为操作用于执行如这里描述的某些操作的硬件模块。
处理器内)。将领会到,用于机械地、在专用和持久配置的电路装置中或者在暂时配置的电路装置(例如,由软件配置)中实施硬件模块的判决可以由成本和时间考虑驱动。
硬件模块并且在不同时间实例构成不同硬件模块。
硬件模块的信号传输(例如,通过适当电路和总线)实现通信。在其中在不同时间配置或者实例化多个硬件模块的实施例中,可以例如通过在多个硬件模块有权访问的存储器结构中
存储和取回信息来实现在这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作
并且在它通信地耦合到的存储器设备中存储该操作的输出。又一硬件模块然后可以在以后
时间访问存储器设备以取回和处理存储的输出。硬件模块也可以发起与输入或者输出设备
的通信,并且可以对资源(例如,信息的汇集)操作。
称模块可以在一些示例实施例中包括处理器实施的模块。
机器来部署。在一些示例实施例中,一个或者多个处理器可以位于单个位置(例如,家用环境、办公室环境内或者作为服务器群)中,而在其他实施例中,可以跨越多个位置分布处理器。
技术人员传达他们的工作实质的技术的示例。如这里所用,“算法”是促成所需结果的操作自一致序列或者相似处理。在本文中,算法和操作涉及到对物理数量的物理操控。通常但
是并非必需,这样的数量可以采用能够由机器存储、访问、传送、组合、比较或者以别的方式操控的电、磁或者光学信号的形式。主要出于普遍用法的原因而使用诸如“数据”、“内容”、“位”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数值”等单词来指代此类信号有时是便利的。然而,这些单词仅为便利标记并且将与适当物理数量关联。
流传输优化的视频并且由此向用户提供无间断视频回放会话。例如,服务器对文字和图像
数据进行编码,从而使得文字数据未损失任何分辨率并且可以在客户端设备上在任何缩放
水平被完美地渲染。然而,图像数据在作为低分辨率图像数据来递送时被视为对浏览体验
而言更不重要,该低分辨率图像数据可能在放大之后并且在取回并且向客户端设备递送高
分辨率图像之前的中间阶段期间表现块状和伸展。因此,尽管已经图示和描述了特定实施
例和应用,但是将理解公开的实施例不限于这里公开的精确构造和部件。可以在这里公开
的方法和装置的布置、操作和细节上做出本领域技术人员将清楚的各种修改、改变和变化
而未脱离在所附权利要求中定义的精神实质和范围。