用于http伪流的基于积分控制器的定步的制作方法
【专利摘要】本文描述用于HTTP伪流的基于积分控制器的定步的包括计算机程序产品的方法和装置。一种方法包括从存在于用户设备中的媒体播放器接收存在于内容服务器中的多媒体剪辑的请求部分,并输送多媒体剪辑的已请求部分到媒体播放器,同时在网络中存在控制噪声的情况下维持目标比特率。输送多媒体剪辑的已请求部分可包括估算目标传输率、确定目标弹性缓冲并估算在当前传输时期中要发送的字节的数目。
【专利说明】用于HTTP伪流的基于积分控制器的定步
【技术领域】
[0001] 本发明一般涉及通信网络,并更具体涉及用于超文本传送协议(HTTP)伪流的基 于积分控制器的定步。
【背景技术】
[0002] 下载上的流传输的最大优点是在时间线上寻找还没有下载到播放器的位置的能 力。因为如果访问者需要则其可寻找2小时影片的最后场景,所以这对于完整影片是最期 望的。HTTP伪流将直接HTTP下载(例如,其经过任何防火墙,在不良连接上的观众可简单 等待下载)的优点与寻找非下载部分的能力组合。
[0003]HTTP伪流使用起初为批量数据传送而设计的传输控制协议(TCP)作为传送协议。 同样,TCP不在有效负荷中明确表明媒体的定时信息。TCP仅用来传送媒体剪辑(诸如,例 如.fIv或.mp4文件)。媒体时间信息在媒体剪辑格式内隐含地发送,并且播放器在剪辑的 部分被下载时简单回放该剪辑。
[0004]HTTP伪流使用HTTP控制经由TCP的流媒体下载。流客户端经常提供期望的媒体 寻找位置信息作为HTTP请求中的URL选项,该HTTP请求通过HTTP递交到伪流服务器。伪 流服务器使用该信息准备从期望的寻找位置播放的媒体剪辑并且经HTTP传输。
[0005] 仅依靠TCP上的流媒体传输的HTTP伪流不能维持期望的目标流比特率,但经常在 可用链接速度输送媒体至客户端,该可用链接速度经常比目标比特率高得多。这可在观众 失去对媒体的兴趣并且停止传输时导致带宽浪费。因此,将媒体传输率控制到期望比特率 的传输定步机制对于HTTP伪流是高度期望的。
[0006] -般来说,速率控制对于经由包交换网络的媒体流是必要的。经由容量有限的共 享链接输送带宽密集的内容如多媒体的挑战是通过调整比特率和媒体译码方案来迅速响 应网络条件的改变,以将用户的观看和收听体验最优化。特别地,当经由不能提供必需吞吐 量的连接来传送媒体流时,若干不期望的效果出现。例如,网络缓冲器可上溢出,导致引起 混乱的视频或音频回放的包丢失,或媒体播放器缓冲器可下溢出,导致回放停顿。
【发明内容】
[0007] 以下提出本创新的简要概要以提供本发明的一些方面的基本理解。该概要不是本 发明的广泛概括。它不旨在认定本发明的关键或决定性要素并且不描写本发明的范围。它 唯一目是以简化形式提出本发明的一些概念作为后面提出的更详细描述的序言。
[0008] 本发明为用于HTTP伪流的基于积分控制器的定步提供包括计算机程序产品的方 法和装置。
[0009] -般来说,在一个方面中,本发明提出一种方法,该方法包括,在包括用户设备链 接到用于超文本传送协议(HTTP)流的基于积分控制器的定步的管理器和内容服务器的网 络中,从存在于用户设备中的媒体播放器接收存在于内容服务器中的多媒体剪辑的请求部 分,并输送多媒体剪辑的已请求部分到媒体播放器,同时在网络中存在控制噪声的情况下 维持目标比特率。输送多媒体剪辑的已请求部分可包括估算目标传输率、确定目标弹性缓 冲并估算在当前传输时期中要发送的字节的数目。
[0010] 本发明的其他特征和优点从以下描述并从权利要求明显。
【专利附图】
【附图说明】
[0011] 参考详细描述连同附图将更完整理解本发明,在附图中:
[0012] 图1是框图。
[0013] 图2是框图。
[0014] 图3是流程图。
【具体实施方式】
[0015] 现在参考附图描述主题创新,其中类似参考数字用来自始至终指代类似要素。在 以下描述中,为了解释,阐述众多具体详情以便提供本发明的透彻理解。然而,显然本发明 可以在没有这些具体详情的情况下实践。在其他实例中,众所周知的结构和设备以框图形 式示出以便于描述本发明。
[0016] 如在本申请中使用,术语"部件"、"系统"、"平台"等可指代涉及计算机相关的实体 或涉及具有一个或多个具体功能性的操作机器的实体。在本文中公开的实体可以是硬件、 硬件和软件的组合、软件或在执行中的软件。例如,部件可以是但不限于在处理器上运行的 过程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。作为说明,在服务器上运 行的应用和服务器都可以是部件。一个或多个部件可存在于执行的过程和/或线程内,并 且部件可位于一台计算机上和/或分布在两台或更多台计算机之间。同样,这些部件可从 具有上面存储有的各种数据结构的各种计算机可读介质执行。部件可经本地和/或远程过 程诸如根据具有一个或多个数据包的信号来通信(例如,来自与本地系统、分布式系统中 的另一部件交互的一个部件的数据,和/或经信号跨网络诸如互联网与其他系统交互的一 个部件的数据)。
[0017] 另外,术语"或"旨在表示包括性的"或"而不是排他性的"或"。即,除以其他方式 具体指定或从上下文明显之外,"X采用A或B"旨在表示自然的包括性的排列中的任何排 列。S卩,如果X采用A;X采用B;或X采用A和B,那么在前述实例的任何实例之下满足"X 采用A或B"。此外,如在本说明书和附图中使用的冠词"一(a)"和"一(an)"应一般解释 为表示"一个或多个",除以其他方式具体指定或从上下文明显指向单数形式之外。
[0018] 此外,术语如"用户设备"、"移动站"、"移动装置"、"订户站"、"通信设备"、"接入终 端"、"终端"、"手机"和相似术语指代由无线通信服务的订户或用户用来接收或传送数据、 控制、话音、视频、声音、游戏或基本上任何数据流或信令流的无线设备(例如,蜂窝电话、 智能电话、计算机、个人数字助理(PDA)、机顶盒、互联网协议电视(IPTV)、电子游戏设备、 打印机等)。前述术语在本说明书和相关附图中可互换地利用。同样,术语"接入点"、"基 站"、"节点B"、"演进节点B"、"家用节点(HNB) "等在本申请中可互换地利用,并且指代服务 并接收来自一组订户站的数据、控制、话音、视频、声音、游戏或基本上任何数据流或信令流 的无线网络部件或用具。数据和信令流可以是封包化的或基于帧的流。
[0019] 此外,术语"用户"、"订户"、"客户"等贯穿本说明书可互换地采用,除上下文准许 术语之间的特别区别之外。
[0020] 如图1所示,示例性系统100尤其包括终端102、网关104、一个或多个网络106、 110、基于积分控制器的定步管理器108以及一个或多个内容服务器112-114。
[0021] 终端102是包括软件应用的硬件部件,该软件应用使得终端102能够传送并接收 对应于流媒体的信息包。终端102提供用于向终端102的用户显示流媒体的显示器和一个 或多个软件应用,诸如媒体播放器。进一步地,终端102具有从互联网请求并接收数据包 (诸如流媒体的数据包)的能力。例如,终端102可为网页的特别文件或对象数据通过该网 页的统一资源定位符(URL)发送请求数据至内容服务器112-114,并且该网页的内容服务 器可在数据库中查询对象数据并将对应的响应数据发送至终端102。在一些实施方案中,响 应数据可通过基于积分控制器的定步管理器108来路由。
[0022] 尽管终端102可以是有线终端,但本发明的实施方案可包括使用移动终端,因为 移动终端更可能处于从基于积分控制器的定步管理器108更多地受益的网络中。由于例如 移动终端的变化位置,其中在移动终端和网络之间的数据率传输可以波动,在一些情况下 相当显著地波动,因此如与有线网络连接比较,在移动网络中的网络连接趋向于更不稳定。
[0023] 网关104是将在一种类型的网络中提供的格式化的数据转变成另一类型的网络 所需的特别格式的设备。例如,网关106可以是服务器、路由器、防火墙服务器、主机或代理 服务器。网关104具有将从终端102接收的信号变换成网络106可理解的信号并且反之亦 然的能力。网关104能够单独或在任何组合中处理音频、视频和T. 120传输,并能够执行全 双工媒体转换。
[0024] 网络106和110可包括适合于包类型通信(例如,GSM、CDMA、LTE、WiMAX等)(诸 如互联网通信)的广域网(WAN)、局域网(LAN)或无线网络的任何组合。进一步地,网络106 和110可包括用于在将信息包传输至它们的意图目的地之前存储信息包的缓冲器。
[0025] 基于积分控制器的定步管理器108是在网关104和内容服务器112-114之间提 供通信的服务器。在控制噪声诸如暂时网络堵塞或不一致的包调度时期在内容服务器 112-114处存在的情况下,基于积分控制器的定步管理器108平均地维持目标比特率。在一 个特别实施方案中,基于积分控制器的定步管理器108在由马萨诸塞州阿克顿的Affirmed Networks有限公司制造的AN-3000代理缓存中实施。
[0026] 内容服务器112-114是从终端102接收请求数据、相应地处理请求数据并且在一 些实施方案中通过基于积分控制器的定步管理器108将响应数据返回至终端102的服务 器。例如,内容服务器112-114可以是网络服务器、企业服务器或任何其他类型的服务器。 内容服务器112-114可以是负责从终端102接受请求(例如,HTTP、RTSP或可发起媒体会 话的其他协议)并向终端102供应流媒体的计算机或计算机程序。
[0027] 如图2所示,终端102可尤其包括媒体播放器202和缓冲器204。基于积分控制器 的定步管理器108可尤其包括处理器210和存储器212。存储器212可包括操作系统214, 诸如Linux?、Unix?或Windows?,以及用于HTTP伪流的基于积分控制器的定步的过 程 300。
[0028] 媒体播放器202是用于播放包括视频和/或音频媒体文件的多媒体文件(诸如流 媒体)的计算机软件。媒体播放器202的示例可包括]VliciOSOft?WindowsMediaPlayer、 Apple?Quicktime?Player、RealOne?Player以及Adobe?FlashPluginfor web-embeddedvideo。在一些实施方案中,媒体播放器202使用编解码器解压流视频或音 频,并在终端102的显示器上将其回放。媒体播放器202可用作独立应用,或在网页中嵌入 以创造与HTML内容交互的视频应用。进一步地,媒体播放器202可以以媒体接收器报告的 形式向基于积分控制器的定步管理器108提供关于媒体接收的反馈。媒体接收器报告可包 括用于RTP流会话的RTCP包,或用于伪流会话的TCPACK。
[0029] 缓冲器204 (也称为终端缓冲器204)是在向媒体播放器202提供多媒体包之前临 时存储多媒体包的软件程序和/或硬件设备。在一些实施方案中,缓冲器204经网络106 从基于积分控制器的定步管理器108接收多媒体包。在一些实施方案中,缓冲器204从除 了基于积分控制器的定步管理器108之外的设备接收多媒体包。一旦缓冲器204接收多媒 体包(或在伪流的情况下,接收媒体剪辑的部分),则其可向媒体播放器202提供已存储的 多媒体包。尽管终端缓冲器204和媒体播放器202示为分离的部件,但在其他实施中终端 缓冲器204可以是媒体播放器202的一部分。进一步地,尽管仅示出单个缓冲器,但实施可 包括多个缓冲器,例如,用于音频媒体包的一个或多个缓冲器和用于视频媒体包的一个或 多个缓冲器。
[0030]HTTP伪流指代其中可在全部内容作为单个HTTP对象被传输之前播放的音频/视 频内容的技术。由于空中链路资源是昂贵的,并且很可能媒体展示可能在展示结束前用户 对内容失去兴趣时由他/她撤销,因此尤其对于无线网络,期望在初始的媒体缓冲期之后 将媒体传输定步在与媒体的译码比特率接近的某个比特率。
[0031] 用于HTTP伪流的基于积分控制器的定步的过程300是包传输定步技术,其可由媒 体服务器或代理用来在控制噪声诸如暂时网络堵塞或不一致的包调度时期在服务器处存 在的情况下平均地维持目标比特率。
[0032] 如图3所示,过程300包括估算(310)目标传输率。目标传输率估算需要可通过 解析媒体容器而获得的关于媒体内容的大小和持续时间的信息。在大小和持续时间不可得 的情况下(关于直播内容),在容器报头中传达的媒体编码比特率可用作目标传输率。目标 传输率可通过应用大于1的因数来校准以使得媒体传输稍快于展示速度,以避免由不稳定 的网络状况引起的媒体展示中的暂停。
[0033] 过程300确定(312)目标弹性缓冲。在客户端已确认的显示时间减去输送内容所 需的挂钟时间中测量的内容的量可以认为是显示弹性缓冲。在此情况下,总是存在两个目 标,即传输率目标和接收器弹性目标。在初始缓冲填充期间,一旦初始满足弹性目标,则传 输率目标通常更高。
[0034]目标弹性缓冲可基于各种参数来设定,诸如接收设备类型和订户类型。进一步地, 可表征传输信道为输送稳定性。如果信道较不稳定,那么用于特别接收器的目标弹性缓冲 可增大。比较传输吞吐量趋势的常规样本可被发展并用来调整目标弹性缓冲。例如,如果 明显的接收器弹性降低,那么传输率可稍微提高。如果提高传输率不改善弹性(或至少减 缓下降),那么可能没有进一步的传输率提高的理由。
[0035] -旦目标传输比特率(target_bitrate)确定,贝U过程300如下使用积分控制器估 算(314)在当前传输时期中要发送的字节的数目。
[0036] 过程300将在当前时期中要发送的字节的数目(bytes_to_send_epoch)初始化 (316)为通过目标比特率乘以估算的时期长度和起始传输而获得的值。在每个时期中,
[0037] (a)平均传输比特率(average_bitrate)被计算为已传输字节的总数除以在第一 字节传输后过去的时间。
[0038] (b)为积分控制更新在当前时期中要发送的字节的数目,如下:
[0039] epoeh+=INTEGRAL-CONST《targetJArale- avcrage^biimfei ifCbytes_lo_send_ej3〇ch>BYTES_EPOCfl_MAX) bvtestosendepoch=BTFHSEIWHMAX if(bytes^io^senCepoch<BYTES^EP(X'H^MIN> bytesjojencLejioch=BWES-EPOCHJfflN
[0040] BYTES_EP0CH_MAX可设定成初始bytes_to_send_印och乘以大于I的因数,并且 BYTES_EP0CH_MIN可设定成初始bytes_to_send_印och乘以小于1的因数。
[0041] (c)传输内容的已更新的bytes_to_send_epoch量。
[0042] 过程300包括以下优点中的一个或多个。过程300在没有网络级节流如TCP时是 有用的。过程300的一个强项是其对于源自服务器或网络的任何微小控制噪声是有回弹性 的以实现平均目标比特率。
[0043] 过程300对于面向无线网络的媒体服务器/代理是有用的,在该无线网络中暂时 的空中链路堵塞是普遍的。
[0044] 在这里描述的系统和技术的各种实施可在数字电子电路、集成电路、专门设计的 ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施可包括 在一个或多个计算机程序中的实施,该一个或多个计算机程序在包括至少一个可编程处理 器的可编程系统上可执行/可解释,该至少一个可编程处理器可以是专用的或通用的、经 耦合从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并向存储系统、 至少一个输入设备和至少一个输出设备传输数据和指令。
[0045] 这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的 机器指令,并可以以高级程序编程语言和/或面向对象的编程语言实施,和/或以汇编/机 器语言实施。如本文中所用,术语"机器可读介质"、"计算机可读介质"指代用来向可编程 处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光 盘、存储器、可编程逻辑器件(PLD)),包括接收作为机器可读信号的机器指令的机器可读介 质。术语"机器可读信号"指代用来向可编程处理器提供机器指令和/或数据的任何信号。 [0046] 为提供与用户的交互,在这里描述的系统和技术可在具有用于向用户显示信息的 显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)与键盘和定点设备(例 如,鼠标或轨迹球)的计算机上实施,用户可通过该键盘和定点设备向计算机提供输入。其 他种类的设备也可用来提供与用户的交互;例如,向用户提供的反馈可以是感觉反馈的任 何形式(例如,视觉反馈、听觉反馈或触觉反馈),并且源自用户的输入可以以包括声音输 入、语音输入或触觉输入的任何形式接收。
[0047] 在这里描述的系统和技术可在计算系统中实施,该计算系统包括后端部件(例 如,数据服务器),或包括中间件部件(例如,应用服务器),或包括前端部件(例如,具有 用户可与在这里描述的系统和技术的实施进行交互所用的图形用户接口或网络浏览器的 客户端计算机),或此类后端部件、中间件部件或前端部件的任何组合。系统的部件可通 过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网 ("LAN")、广域网("WAN")和互联网。
[0048] 计算系统可包括客户端和服务器。客户端和服务器一般彼此远离并通常通过通信 网络交互。客户端和服务器的关系依靠在相应的计算机上运行并具有彼此的客户端-服务 器关系的计算机程序产生。
[0049] 前面描述不呈现与本公开一致的所有可能实施或所描述的实施的所有可能变化 的详尽列表。已描述数个实施。然而,应理解可做出各种修改而不违背在这里描述的系统、 设备、方法和技术的精神和范围。例如,在上面示出的流程的各种形式可在步骤重排序、添 加或移除的情况下使用。因此,其他实施在随附权利要求的范围内。
【权利要求】
1. 一种方法,其包括: 在包括用户设备链接到用于超文本传送协议(HTTP)流的基于积分控制器的定步的管 理器和内容服务器的网络中,从存在于所述用户设备中的媒体播放器接收存在于所述内容 服务器中的多媒体剪辑的请求部分;以及 输送所述多媒体剪辑的所述已请求部分到所述媒体播放器,同时在所述网络中存在控 制噪声的情况下维持目标比特率。
2. 根据权利要求1所述的方法,其中所述媒体播放器经设计播放所述多媒体剪辑的所 述已输送部分。
3. 根据权利要求1所述的方法,其中所述网络选自由广域网(WAN)、局域网(LAN)、全球 移动通信系统(GSM)网络、码分多址接入(CDMA)网络、长期演进(LTE)网络和全球微波接 入互操作性(WiMAX)网络组成的组。
4. 根据权利要求1所述的方法,其中所述用户设备选自由智能电话、蜂窝电话、计算 机、个人数字助理(PDA)、机顶盒、互联网协议电视(IPTV)、电子游戏设备、平板计算机和 Wi-Fi热点组成的组。
5. 根据权利要求1所述的方法,其中输送所述多媒体剪辑的所述已请求部分包括: 估算目标传输率; 确定目标弹性缓冲;以及 估算在当前传输时期中要发送的字节的数目。
6. 根据权利要求5所述的方法,其中估算所述目标传输率包括解析媒体容器以获得与 多媒体剪辑的所述部分的大小和持续时间有关的信息。
7. 根据权利要求5所述的方法,其中估算所述目标传输率包括在容器报头中传达的媒 体编码比特率。
8. 根据权利要求5所述的方法,其中确定所述目标弹性缓冲包括在所述用户设备已确 认的显示时间减去输送所述媒体剪辑内容所需的挂钟时间中测量的所述媒体剪辑内容的 量。
9. 根据权利要求5所述的方法,其中估算在所述当前传输时期中要发送的字节的数目 包括将在所述当前时期中要发送的字节的数目初始化为通过所述目标比特率乘以所述估 算的时期长度和起始传输而获得的值。
10. 根据权利要求9所述的方法,其还包括: 在每个时期中,将平均传输比特率计算为已传输字节的总数除以在第一字节传输后过 去的时间; 为积分控制更新在所述当前时期中要发送的字节的数目;以及 传输多媒体内容的已更新的时期要发送的字节的量。
11. 一种基于积分控制器的定步服务器,其包括: 处理器; 存储器,所述存储器包括操作系统和用于超文本传送协议(HTTP)流的基于积分控制 器的定步的过程,所述过程包括: 输送多媒体剪辑的已请求部分到媒体播放器,同时在网络中存在控制噪声的情况下维 持目标比特率。
12. 根据权利要求11所述的服务器,其中输送所述多媒体剪辑的所述已请求部分包 括: 估算目标传输率; 确定目标弹性缓冲;以及 估算在当前传输时期中要发送的字节的数目。
13. 根据权利要求12所述的服务器,其中估算所述目标传输率包括解析媒体容器以获 得与多媒体剪辑的所述部分的大小和持续时间有关的信息。
14. 根据权利要求12所述的服务器,其中估算所述目标传输率包括在容器报头中传达 的媒体编码比特率。
15. 根据权利要求12所述的服务器,其中确定所述目标弹性缓冲包括在所述用户设备 已确认的显示时间减去输送媒体剪辑内容所需的挂钟时间中测量的所述媒体剪辑内容的 量。
16. 根据权利要求12所述的服务器,其中估算在所述当前传输时期中要发送的字节的 数目包括将在所述当前时期中要发送的字节的数目初始化为通过所述目标比特率乘以所 述估算的时期长度和起始传输而获得的值。
17. 根据权利要求16所述的服务器,其中所述过程还包括: 在每个时期中,将平均传输比特率计算为已传输字节的总数除以在第一字节传输后过 去的时间; 为积分控制更新在所述当前时期中要发送的字节的数目;以及 传输多媒体内容的已更新的时期要发送的字节的量。
【文档编号】G06F15/16GK104380275SQ201280074204
【公开日】2015年2月25日 申请日期:2012年4月23日 优先权日:2012年4月23日
【发明者】郑载, 斯里尼瓦桑·芬卡特拉曼, 保罗·谢勒 申请人:阿弗梅德网络公司