预测性自适应媒体流式传输的制作方法

文档序号:6533263阅读:109来源:国知局
预测性自适应媒体流式传输的制作方法
【专利摘要】本发明提供了一种用于控制媒体内容从服务器到客户端的流式传输的方法和对应的设备。计算装置针对所述媒体内容的多个可变比特率版本中的每一者来预测所述媒体内容的即将到来的部分的比特率,且使用所述预测比特率以及网络带宽的测量值作为依据来选择所述可变比特率版本中的一个版本流式传输给客户端。通过在所述媒体内容的整个过程内以滑窗为基础来重复此预测和选择功能,对可变比特率版本的选择可以动态地改变,以帮助适应整个媒体内容中比特率的变化以及网络带宽的变化。
【专利说明】预测性自适应媒体流式传输

【背景技术】
[0001]除非本文另有指示,否则本部分中描述的内容不是权利要求书的现有技术且不因为包含在本部分中就被承认是现有技术。
[0002]随着网络和计算技术的进步,装置接收并播放实时地从网络服务器流式传输的媒体现在是很平常的事情。实际上,例如,装置可经编程或以其它方式进行布置而具有提供用户接口的媒体播放器,在所述接口处所述装置可接收对特定媒体进行流式播放的用户请求。媒体播放器可接着使装置与服务器根据经协商的协议(诸如超文本传输协议(HTTP)、实时流协议(RTSP)、实时传输协议(RTP)、实时控制协议(RTCP)和实时消息传送协议(RTMP))进行交互,以请求服务器流式传输(stream)特定媒体。在装置接收作为响应而从服务器流式传输的媒体时,装置可接着在用户接口处播放所述媒体以便用户享受。


【发明内容】

[0003]本文中公开了与控制媒体从服务器的流式传输有关的方法和装置。
[0004]在一个方面,例如,公开了一种用于控制媒体内容从服务器到客户端的流式传输的方法。实际上,所述服务器将能够访问所述媒体内容的多个可变比特率(VBR)版本。所述方法可接着涉及在所述媒体内容正从所述服务器流式传输给所述客户端的同时针对所述媒体内容的多个顺序出现的部分中的每一者执行以下功能:(i)在所述客户端接收所述媒体内容的所述部分之前识别所述媒体内容的所述VBR版本中的一个或多个版本,其中所述识别是至少部分基于确定在所述一个或多个VBR版本的每一者中所述媒体内容部分具有低于带宽阈值的比特率;(ii)从所述媒体内容的所述经确定的一个或多个VBR版本中选择所述媒体内容的最高比特率的VBR版本;以及(iii)致使所述媒体内容的所述所选的VBR版本从所述服务器流式传输给所述客户端。
[0005]在另一方面,公开了一种上面存储有指令的非暂时性计算机可读媒体,所述指令可执行以致使装置在媒体内容从服务器流式传输给所述装置期间针对所述媒体内容的多个顺序出现的部分中的每一者执行以下功能:(i)确定用于从所述服务器到所述装置的通信的网络带宽;(ii)在所述装置接收所述媒体内容的所述部分之前识别所述媒体内容的多个VBR版本中的一个或多个版本,其中所述识别是至少部分基于在所述一个或多个VBR版本的每一者中所述媒体内容的所述部分具有小于或等于所述经确定的网络带宽的比特率;(iii)从所述媒体内容的所述经识别的一个或多个VBR版本中选择所述媒体内容的最高比特率的VBR版本;以及(iv)向所述服务器传输控制信号,请求所述服务器将所述媒体内容的所述所选的VBR版本流式传输给所述装置。
[0006]另外,在又一方面,公开了一种计算装置,所述计算装置包括网络通信接口、用户接口、处理器、数据存储装置以及程序指令,所述程序指令存储在所述数据存储装置中且是所述处理器可执行的以执行各种功能。所述功能可包括(a)通过所述网络通信接口接收从服务器流式传输给所述计算装置的媒体内容;(b)在所述用户接口处播放正接收到的所述媒体内容;以及(C)在接收从所述服务器流式传输给所述计算装置的所述媒体内容的同时,周期性地(i)确定用于从所述服务器到所述计算装置的通信的网络带宽的测量值、
(ii)评估所述媒体内容的多个VBR版本且从所述多个VBR版本中选择在所述媒体内容的下一个滑窗内的比特率将小于或等于所述经确定的网络带宽的最高比特率的VBR版本以及
(iii)通过所述网络通信接口向所述服务器传输请求以使所述服务器将所述所选的VBR版本流式传输给所述计算装置。
[0007]本领域的普通技术人员通过阅读以下【具体实施方式】、在适当时参看附图将能更明显看出这些以及其它方面、优点和替代方案。
[0008]另外,应理解,在此
【发明内容】
部分中以及本文件中别处提供的描述仅意欲用作实例。因此,可改为使用其它布置和其它元件(例如,机械、接口、功能、功能次序等),且可将一些元件完全省去。另外,本文中描述的许多元件是可实施为离散或分布式组件或者与其它组件相结合且以各种合适组合和在各种合适位置中实施的功能实体。

【专利附图】

【附图说明】
[0009]图1是媒体内容的示例恒定比特率(CBR)版本的图。
[0010]图2是媒体内容的示例VBR版本的图,描绘了每版本的平均目标比特率。
[0011]图3是图2的示例VBR版本的图,描绘了每版本的最大目标比特率。
[0012]图4是图2的示例VBR版本的图,描绘了每一版本的预测性比特率。
[0013]图5是可在其中实施本发明方法的网络布置的简化框图。
[0014]图6是在所述方法内可操作的客户端装置的简化框图。
[0015]图7是在所述方法内可操作的服务器的简化框图。
[0016]图8是描绘了可根据所述方法来执行的功能的流程图。
[0017]图9是描绘了可根据所述方法来执行的功能的另一流程图。
[0018]图10是对可根据所述方法来执行的功能的进一步描绘。

【具体实施方式】
[0019]在以下详细描述中,参看附图,附图构成了本文一部分。详细描述、附图和权利要求书中描述的说明性实施例不打算为限制性的。可利用其它实施例,且可作出其它改变,而不会脱离本文中提出的主题的精神或范围。将容易理解到,本公开的方面(如大体上在本文中描述且在图式中图示)可被布置、替换、组合、分离且设计成各种不同配置,其皆明确地涵盖于本文中。
[0020]一般来说,对诸如音频或视频等实时媒体进行编码可能会涉及到将媒体的原始数字化版本转换成适合于传输或存储的压缩形式。编码器-解码器(编解码器)可因此操作以接收表示所述媒体的原始比特流且应用将所述比特流的每一顺序时间间隔进行压缩的算法,以便用比原始比特流中少的比特来表示每一时间间隔。此压缩过程可通过允许经由支持有限传输速度或“带宽”的网络足够快地传输和接收媒体而帮助促进实时媒体流式传输和播放。明确地说,通过用较少比特来表示媒体的顺序时间间隔,将需要较少带宽来支持将媒体实时传输给发出请求的装置。
[0021]实际上,用以对实时媒体进行编码的编解码器可应用恒定比特率(CBR)编码或可变比特率(VBR)编码。CBR编码将媒体的每一顺序时间间隔转换成给定量的数据,其中所述量在媒体的持续时间内保持大致相同。因此,对流式传输经CBR编码的媒体的网络带宽要求在一段时间内将保持大致相同。
[0022]另一方面,VBR编码涉及相较于对媒体的其它时间间隔进行编码使用较高比特率来对媒体的一些时间间隔进行编码。与CBR编码相比,VBR编码可导致较好的质量,因为使用更多数据来表示媒体的可从中受益的某些部分(诸如较高细节视频或快速运动视频)。另外,VBR编码可实现对网络带宽的更好使用,因为可使用较多带宽来流式传输媒体的较高比特率部分,而可使用较少带宽来流式传输媒体的较低比特率部分。
[0023]实际上可用于将媒体从服务器传输到客户端装置的网络带宽可能会因为许多因素而随着时间变化,包括但不限于服务器处负荷的改变、客户端处负荷的改变以及服务器与客户端之间的通信路径中负荷的改变。
[0024]为了适应网络带宽的此类变化,流媒体服务器可具有(或在运行中产生)媒体内容的各种不同比特率版本(即,不同编码)且可将当前网络带宽可支持的最高比特率版本流式传输给发出请求的客户端装置。实际上,例如,客户端装置可具有指定可供流式传输的各种版本的比特率的索引,且客户端可确定网络带宽并选择所确定的网络带宽将支持的最高比特率版本(例如,具有小于或等于所确定的网络带宽的比特率的版本)。客户端可接着向服务器发送请求以使服务器流式传输所述所请求的版本,且服务器可作出响应而将所述所请求的版本流式传输给客户端。或者,客户端可确定网络带宽且向服务器发送所确定的网络带宽的指示,且服务器可选择所确定的网络带宽将支持的最高比特率版本且将所述最高比特率版本流式传输给客户端。
[0025]基于网络带宽来选择比特率版本的这个过程可以在流媒体会话开头一次完成(作为静态自适应流式传输过程)或动态地进行以适应流式传输期间变动的网络条件(作为动态自适应流式传输过程)。另外,可针对经CBR编码的媒体以及针对经VBR编码的媒体来执行此过程。
[0026]为了就经CBR编码的媒体来了解此过程,考虑图1中的图,它示出了在五分钟的间隔内按三个不同比特率来编码的一条视频媒体的比特率:2000kbps (Tl)、3500kbps(T2)和5000kbps (T3)。给定媒体内容的这些经相当恒定比特率编码的版本,假如可用网络带宽在开始是4000kbps,那么客户端可请求服务器流式传输版本T2,因为它是可以用可用的4000kbps带宽进行流式传输的最高比特率版本且因此足够快速地到达客户端以实现无缝播放。如果网络带宽在某时接着降至3000kbps,那么客户端可请求服务器转变到流式传输版本Tl,因为它之后将是可以用可用的3000kbps带宽进行流式传输的最高比特率版本且可以足够快速地到达客户端以实现无缝播放。因此,在网络带宽减小时,流式传输可以继续,尽管是传输媒体内容的较低比特率版本。同样地,如果网络带宽增加,那么流式传输可以转变回到媒体内容的较高比特率版本。
[0027]可以相对于经VBR编码的媒体执行此相同过程。图2(例如)描绘了按三个不同比特率等级编码的一条媒体内容的变动比特率,示出了五分钟的间隔。如此实例中所示,每一版本的实际比特率随着时间而大幅变化。贯穿每一版本描绘的虚线因此表示可被视为每一版本的“目标”比特率(例如,平均比特率)的事物,再次是:2000kbps (Tl),3500kbps (T2)和5000kbps(T3)。使用这些目标比特率作为与变动的网络带宽的比较点,假如可用网络带宽在开始是4000kbps,那么客户端可请求服务器流式传输版本T2,因为它是可以用可用的4000kbps带宽至少按其目标比特率(3500kbps)进行流式传输的最高比特率版本。并且同样地,如果网络带宽在某时接着降至3000kbps,那么客户端可请求服务器转变到流式传输版本Tl,因为它之后是可以用可用的3000kbps带宽至少按其目标比特率(2000kbps)进行流式传输的最高比特率版本
[0028]然而,将此过程应用于经VBR编码的媒体的流式传输实际上会更复杂,因为变动的媒体比特率和网络带宽可能会使客户端的播放缓冲区(自适应流式传输缓冲区)耗尽因而停止播放的风险增加。明确地说,如果客户端使用平均比特率作为比较点,那么媒体内容的具有比网络带宽高的实际比特率的任何部分都不可能以它们所需的比特率足够快地到达客户端,从而无法播放。因此,播放将会中断,因为客户端要等待额外数据到来。例如,就图2中所示的VBR版本来说,如果当前网络带宽是4000kbps且客户端因此选择了版本T2(具有为3500kbps的目标比特率),那么从约100秒至170秒可能会出现问题,在此期间媒体比特率将会升高到高于4000kbps的网络带宽,使得可能会严重耗尽客户端的播放缓冲区。
[0029]解决此问题的一个方法是应用“守恒因数”,诸如平均比特率或最大比特率的乘数,作为媒体内容的每一 VBR版本的比较点。参看图3,例如,每一 VBR版本处的虚线表示所述版本的最大比特率。通过使用所述最大比特率作为与网络带宽的比较点,客户端可以帮助避免使其播放缓冲区耗尽,因为所选的VBR版本将始终小于或等于最近确定的网络带宽。另一方面,此守恒方法的缺点是所述过程将无法实现对可用带宽的最佳使用。
[0030]本方法提供了可帮助实现对网络带宽的更佳使用同时又减少缓冲区不足的风险的先进方法。此方法(它可被称作预测性自适应媒体流式传输)可涉及针对媒体的一连串即将到来的部分(例如,时间间隔(“时间边界”)或数据量间隔(“数据边界”))中的每一者来预测在所述部分中每一 VBR版本的比特率,以及使用那些预测比特率作为与网络带宽的比较点以便选择一 VBR版本来流式传输给客户端。可有利地以滑窗为基础(或者,以非重叠(即,互不相容)窗)来重复此过程,以便在媒体的整个过程中提供持续的比特率预测且不断地使用即将到来的比特率的最新预测值作为依据来选择待流式传输的VBR版本。
[0031]图4有助于说明此过程的实例,其中在30秒或5兆字节的滑窗内以滑窗为基础每隔一秒来预测每一 VBR版本的即将到来的比特率,作为平均的即将到来的比特率。在图4中的图中,将预测性比特率绘成贯穿每一 VBR版本的虚线,有效地对每版本的比特率曲线进行平滑化。在任一时间时,每VBR版本的此预测性比特率表示在所述VBR版本中在媒体的即将到来的窗内的平均比特率,且因此,在即将到来的平均比特率在媒体内容的整个过程中发生变化时,预测性比特率在媒体内容的整个过程中也发生变化。
[0032]就图4中所示的预测性比特率来说,假如我们为简单起见而假设网络带宽始终都是4000kbps,那么在约20秒处将选择VBR版本T2,因为在这三个VBR版本中,版本T2的预测比特率将具有将小于或等于网络带宽的最高预测比特率。然而,从约90秒处开始,版本T2的预测比特率将高于网络带宽,且将改为选择版本Tl,因为版本Tl接着将具有将小于或等于网络带宽的最高预测比特率。依次地,在约140秒处,由于版本T2的预测比特率回落到网络带宽以下,因此将再次选择版本T2,因为它将具有将小于或等于网络带宽的最高预测比特率。并且从约180秒处开始,版本T3接着将落到网络带宽以下且因此将选择版本T3,因为它将具有将小于或等于网络带宽的最高预测比特率。
[0033]显而易见地,在此实例中,从约180秒处开始选择版本T3可帮助在那时最大化播放质量(通过流式传输媒体的较高比特率版本)。但是,其它所论述的方法并不会发生此种情况,从而无法进行自适应流式传输。这举例示出了可如何使用本方法来改善媒体流式传输。
[0034]还请注意,上述实例的许多变化也是可能的。例如,对媒体内容的每一即将到来的窗内的比特率的预测可以是平均值以外的测量值。例如,对于每一即将到来的窗,所述预测可以是媒体内容的最大比特率或者可以是基于平均值、最大值或其它特征的更复杂的统计预测。
[0035]作为另一实例,预测间隔和窗尺寸参数的变化也是可能的。例如,在其中进行每一预测的间隔可以是恒定的或可变的,可以不同于一秒,且可以是时间间隔或数据间隔。最佳地,所述间隔可以小至处理能力和其它资源将允许的程度,以便提供最相关的即将到来的比特率预测。另外,在其中进行即将到来的比特率的预测的窗尺寸也可以是恒定或可变的尺寸且可以不同于30秒或5兆字节。例如,窗尺寸可以小到足以切实地估测即将到来的比特率以便帮助避免缓冲区不足。
[0036]实际上,每VBR版本的预测性比特率的产生可以由客户端、服务器或任何其它计算实体基于界定每一 VBR版本的可变比特率的索引来执行。
[0037]客户端(例如)可以在服务器将媒体内容流式传输给客户端的同时执行此过程,其中每一预测窗是(例如)从迄今接收到的媒体内容中的最近的点(或所述点的某一偏移)处开始。使用上述示例参数,例如,每隔一秒,客户端可以针对每一 VBR版本来预测在即将到来的部分内媒体的代表性比特率,所述部分是从客户端接收到的最近媒体文件位置处开始且在媒体文件中向前延伸30秒或5兆字节。(因此,预测窗可以涵盖已经离开服务器但还没到达客户端的一条媒体内容。)并且,客户端可以选择具有小于或等于网络带宽的最新测量值的最高预测比特率的VBR版本,且可以请求服务器将所述所选的VBR版本流式传输给客户端。
[0038]或者,客户端可以在某一稍早时间时(诸如在流媒体会话开始之前)针对媒体内容的一连串窗中的每一者执行此预测(每VBR版本),因此确立每一 VBR版本的数据,诸如图4中的虚线所表示的数据。随着流式传输继续进行,客户端接着可以不断地(例如,在同一或另一预测间隔处)使用先前确立的预测值作为依据来选择具有小于或等于网络带宽的最新量测值的最高预测比特率的VBR,且可以请求服务器将所述所选的VBR版本流式传输给客户端。
[0039]又或者,服务器可以在服务器将媒体内容流式传输给客户端的同时执行此过程,其中每一预测窗是(例如)从迄今从服务器流式传输的媒体内容中的最近的点(或所述点的某一偏移)处开始。在每一预测间隔处,服务器可因此预测每一 VBR版本的即将到来的比特率且可选择具有小于或等于网络带宽的最新测量值的最高预测比特率的VBR版本,且服务器可接着将所述所选的VBR版本流式传输给客户端。
[0040]再或者,服务器或另一实体可以在某一稍早时间时(诸如在流媒体会话开始之前)针对媒体内容的一连串窗中的每一者执行此预测(每VBR版本),因此确立每一 VBR版本的数据,诸如图4中的虚线所表示的数据。可将所述预测性比特率数据提供给客户端(例如,作为媒体文件索引的一部分或者以某其它方式)以供客户端用作依据来在流式传输继续进行时选择和请求VBR版本,或者可提供给服务器以供服务器用作依据来在流式传输继续进行时选择将流式传输给客户端的VBR版本。其它布置也是可能的。
[0041]实际上,对于媒体内容的给定VBR版本的即将到来的比特率的预测将考虑指示(例如,指定或以其它方式界定或确立)在一段时间内所述VBR版本的即将到来的比特率的数据。如上所述,例如,所论述的媒体内容可具有相关联的索引,且所述索引可提供可用以确立预测性比特率的数据。
[0042]例如,每一 VBR版本的媒体内容可分割成被称作片段或块的多个顺序部分,且所述索引可为每一部分指定所述部分的数据大小和所述部分的持续时间。通过参考所述索弓丨,计算装置可因此按所指示的数据大小除以持续时间来计算VBR版本的每部分的比特率。另外,计算装置可跨越界定适用时间或数据窗的许多此类部分来计算比特率的平均值或其它统计测量值。因此,比特率预测可包括横跨VBR版本的多个即将到来的块的窗。
[0043]作为另一实例,对于每一 VBR版本,媒体文件索弓I可将媒体内容的时间位置映射到媒体内容文件中的文件位置,诸如指示媒体内容的相应时间位置位于文件中多远的文件偏移量。通过参考这样一个索引,计算装置可因此通过以下方式来计算媒体文件的任一部分的比特率:按所述部分的所指示的开始和结束文件位置之间的差来计算所述部分的数据大小以及将所述数据大小除以所述部分的对应持续时间。更明确地说,假如一部分的开始时间是X,开始文件位置是fp (X),持续时间是Π,且结束文件位置是fp (χ+η),那么所述部分的比特率是(fp(x+n)-fp(x))/n。此外,如果文件位置是按字节而非比特来测量,那么这个值可以通过乘以8而转换成比特。(然而,如本文中使用的术语“比特率”不一定限于比特且最好可广泛地表征为“数据率”,不管是按比特、字节还是其它数据量,且不管是按秒或按其它单位时间。)
[0044]接下来,图5是可在其中实施本发明方法的实例的网络布置的简化框图。如图5中所示,所述网络布置包括客户端装置12、网络(例如,因特网或其它网络)14和服务器16,其中服务器能够访问特定媒体内容的多个VBR版本18,且客户端能够访问界定了每一 VBR版本的变动比特率的媒体索引20。
[0045]就此布置来说,客户端12可发起流媒体会话,通过所述流媒体会话,服务器16将经由网络14将媒体内容流式传输给客户端。例如,客户端可向服务器发送RTSP DESCRIBE请求且作为响应可从服务器接收RTSP DESCRIBE答复,所述答复指明了服务器可以流式传输给客户端的一个或多个流(诸如音频和视频),其中一个这样的流(例如)界定所论述的媒体内容。另外,客户端可发出请求且从服务器或从另一实体接收用于媒体内容的索引20。
[0046]通过参考所述索引,客户端可接着针对媒体内容的每一 VBR版本来预测媒体内容的第一部分(例如,第一窗)的比特率。另外,客户端可确定网络带宽的当前测量值。客户端可接着将每一 VBR版本的即将到来的部分的预测比特率与网络带宽相比较以确定所述即将到来的部分的预测比特率小于或等于所确定的网络带宽的一个或多个VBR版本。另夕卜,在所确定的一个或多个VBR版本中,客户端可接着选择在即将到来的部分中具有最高预测比特率的那个VBR版本。客户端可接着向服务器发送RTSP PLAY请求以使服务器流式传输所选的VBR版本,诸如通过在所述请求中的参数中指明所述VBR版本。服务器可接着开始将媒体内容的所请求VBR版本流式传输给客户端,且客户端可开始接收、缓冲并播放所流式传输的媒体内容。
[0047]继续参考所述索引,客户端可接着针对媒体内容的下一个即将到来的部分类似地预测VBR版本的比特率,客户端可再次确定网络带宽的当前测量值,且客户端可再次选择所述下一个即将到来的部分的最高预测比特率小于或等于所确定的网络带宽的VBR版本。
[0048]如果所选的VBR版本是服务器目前正流式传输给客户端的版本,那么客户端无需采取任何行动。然而,如果所选的VBR版本不同于服务器目前正流式传输给客户端的版本,那么客户端可将控制信号发送给服务器,使服务器转变到流式传输所选的VBR版本。例如,客户端可向服务器发送含有切换流标头的RTSP PLAY,它指明了当前VBR版本且请求服务器转变到新的所选VBR版本。或者,客户端可向服务器发送另一 RTSP请求、RTMP请求、RTCP请求、HTTP请求或任一其它命令,服务器将经布置以将所述请求或命令解释为转变到流式传输新VBR版本的请求。服务器可接着作出响应而转变到流式传输新VBR版本,最佳是在一段时间内无缝地这样做(将新选的VBR版本有效地拼接到旧的VBR版本)。
[0049]客户端装置12可以是经布置以请求并接收流媒体且在接收到媒体时播放所述媒体的任何计算装置。例如,客户端装置可以是个人计算机、平板计算机、手持式移动电话或其它通信装置、集成的音频或视频播放器、游戏装置或现在已知或之后开发的任何其它装置。图6是示出了可包括在这样一种装置中以便于将所述方法的各方面付诸实践的组件的简化框图。
[0050]如图6中所示,示例客户端装置包括网络通信接口 22、用户接口 24、处理器26和数据存储装置28,其皆可通过系统总线或其它连接机构30而耦合到一起。
[0051]网络通信接口 22可包含经布置以允许客户端12在网络14上且经由网络14与多个实体(例如,与服务器16)通信的有线或无线接口。例如,网络通信接口 22可包含用于在局域网上且又经由路由器和/或一个或多个其它网络元件与网络14上的实体通信的有线或无线以太网接口。作为另一实例,所述网络通信接口可包含蜂窝式无线接口,所述蜂窝式无线接口经布置以参与到根据诸如LTE、WiMAX、CDMA、GSM或其类似者等协议与无线接入网且经由无线接入网与网络14上的实体的空中接口通信中。其它实例也是可能的。
[0052]用户接口 24可使得客户端12能够与客户端的用户交互且因此可以包含诸如显示屏、音频扬声器和其类似者等输出组件以及诸如键盘、相机、触模板或触摸屏和其类似者等输入组件。另外,用户接口 24可包括用于将媒体从数字形式转换成模拟形式以便于向用户播放数字化媒体的电路。
[0053]处理器26可包含一个或多个通用处理器(例如,INTEL微处理器)和/或一个或多个专用处理器(例如,专用集成电路、数字信号处理器等)。如果处理器26包括多个处理器,那么所述处理器可经布置以结合起来(例如,并行地)或分开来工作。另外,处理器26可全部或部分地与网络通信接口 22或一个或多个其它组件集成。
[0054]数据存储装置28可接着包含一个或多个易失性和/或非易失性存储组件,诸如磁性、光学、有机、快闪或其它类型的现在已知或之后开发的存储装置,且可全部或部分地与处理器26集成和/或可以是从客户端12可卸除的或在外部与客户端12连接(经由有线或无线装置)。如所示,数据存储装置28含有程序指令32和程序数据34。一般来说,程序指令32可以是处理器26可执行的以实施本文中描述的各种客户端功能。或者,一些或全部的此类功能可以由各种其它机械实施方案来执行。程序数据34可接着包括诸如所接收到的经缓冲以播放的媒体内容等数据、媒体文件索引以及界定图形用户接口的数据,客户端可在用户接口 24上呈现所述图形用户接口以方便用户请求流媒体和其类似者。
[0055]服务器16可以是经布置以接收对流媒体的请求以及流式传输所请求的媒体以便播放的任何计算装置。因而,服务器很可能是服务器类计算机。然而,服务器可以更简单,诸如布置有作为服务器来操作的逻辑的上述装置中的一者。图7是示出了可包括在这样一种服务器中以便于将所述方法的各方面付诸实践的组件的简化框图。
[0056]如图7中所示,示例服务器包括网络通信接口 40、处理器42和数据存储装置44,其皆可通过系统总线或其它连接机构46而耦合到一起。
[0057]网络通信接口 40可包含经布置以允许服务器16在网络14上且经由网络14与多个实体(例如,与客户端12)通信的有线或无线接口。因而,网络通信接口 40可包含有线或无线以太网接口、蜂窝式无线接口或任何其它类型的网络接口。
[0058]处理器42可包含一个或多个通用处理器和/或一个或多个专用处理器且可全部或部分地与网络通信接口集成。并且,数据存储装置44可包含一个或多个易失性和/或非易失性存储组件且可全部或部分地与处理器42集成。如所示,数据存储装置44含有可执行以执行本文中描述的各种服务器功能的程序指令48,以及程序数据50 (诸如流式传输给客户端12以便播放的媒体内容的各种VBR版本)。
[0059]接下来,图8是描绘了可以根据本发明方法的示例实施方案来执行以控制媒体内容从服务器到客户端的流式传输的功能的流程图,其中服务器能够访问媒体内容的多个VBR版本。
[0060]如图8中所示,在框60处,示例方法涉及确定带宽阈值。带宽阈值可以是(例如)网络带宽的实时(即,当前或基本上当前)测量值或这样一个测量值的某一导出值。因而,带宽阈值可以不时地改变或可以是恒定的且甚至可能是预定的。
[0061]如果由客户端执行,那么确定带宽阈值的这个功能可涉及客户端耗尽其播放缓冲区且接着允许缓冲区填满来自服务器的传入数据,且测量缓冲区填充的速率或者测量数据从服务器到达客户端的速率。客户端可接着将测得的速率或测得的速率的某一倍数或偏移版本视为带宽阈值。或者,客户端可以用某一其它方式来确定带宽阈值和/或由另一实体来告知带宽阈值。另一方面,如果所述功能由服务器执行,那么服务器可以从客户端或从服务器与客户端之间的通信路径中的一个或多个其它实体接收网络带宽或带宽阈值的报告,或者服务器可用任何其它方式来确定带宽。
[0062]在框62 (它可以改为发生在框60之前)处,示例方法进一步涉及针对媒体内容的每一 VBR版本来预测媒体内容的即将到来的部分的比特率。如上所述,例如,这可以涉及参考媒体文件索引来预测每VBR版本的所述即将到来的部分的比特率。另外,如果已经确立了每一 VBR版本的一连串部分(例如,滑窗)中的每一者的预测比特率,那么此功能可以涉及参考所述已经确立的预测比特率数据来确定每VBR版本的所述即将到来的部分的预测比特率。
[0063]在框64处,示例方法接着涉及识别媒体内容的一个或多个VBR版本,这是基于在每一个这样的VBR版本中媒体内容的即将到来的部分具有低于带宽阈值的预测比特率来进行。(注意,本文中的“低于”测试最好可以包括“小于或等于”,因为带宽阈值可以设为刚好高于或处于所要水平处。)明确地说,所述方法可以涉及将每一VBR版本的预测比特率分别与带宽阈值相比较以识别即将到来的部分具有低于带宽阈值的预测比特率的一个或多个所述VBR版本。
[0064]识别所述一个或多个VBR版本的功能还可以考虑除了所述VBR版本的即将到来的部分是否满足带宽阈值以外的一个或多个其它因素。例如,所述识别还可以至少部分基于对客户端的播放缓冲区目前有多满的确定。就此来说,如果客户端的播放缓冲区快要空了(例如,濒于耗尽),那么选择与原本会选择的版本相比比特率较低的版本可能是有利的,因为较低比特率版本将更缓慢地播放且因此可以帮助填充缓冲区。因此,如果所述识别功能是由客户端执行,那么客户端可以确定其播放缓冲区是否快要空了且如果是则可按照某一因数将带宽阈值调低以便迫使选择可能的较低比特率VBR版本。同样地,如果所述识别功能是由服务器执行,那么客户端可以向服务器报告其缓冲区充满程度且服务器可应用类似调整以将缓冲区充满程度考虑在内。还可以考虑其它因素。
[0065]在框66处,示例方法接着涉及选择所述一个或多个经识别的VBR版本中的最高比特率VBR版本。如果只识别了一个VBR版本,那么此功能将相当于选择所述VBR版本。但是,如果识别了一个以上VBR版本,那么此功能将涉及选择所述一个或多个经识别的VBR版本中具有最高比特率的VBR版本。
[0066]请注意,框66的此功能可以以不同方式与框64的功能相结合。例如,所述功能可以涉及首先对VBR版本进行排位,且接着,按从最高比特率的VBR版本到最低比特率的VBR版本的排位次序,进行检查以查看所述VBR版本的即将到来的部分是否具有比带宽阈值低的预测比特率。按排位次序继续下去,一旦发现有VBR版本满足针对其即将到来的部分的此带宽阈值测试,所述功能将接着涉及将所述VBR版本选为所述版本。就此过程来说,框64的功能可以涉及识别VBR版本中具有比带宽阈值低的预测比特率的排位最高的VBR版本,且框66的功能可以涉及选择所述经识别的VBR版本。
[0067]在框68处,示例方法可接着涉及使服务器将所选的VBR版本流式传输给客户端。如果此功能由(例如)客户端执行,那么此功能可以涉及向服务器发送控制命令,指示服务器将所选的VBR版本流式传输给客户端(或者不采取任何行动,如果所述VBR版本与目前流式传输给客户端的VBR版本相同的话)。另一方面,如果此功能由服务器执行,那么此功能可以涉及转变到将所选的VBR版本流式传输给客户端(或者继续流式传输所述VBR版本,如果所述版本是目前流式传输给客户端的VBR版本的话)。
[0068]在框70处,示例方法可接着涉及前进到媒体内容的下一个即将到来的部分,直到到达媒体内容文件的结尾为止。依次地,所述方法可接着涉及从框60处开始来重复所述过程。如上所述,可跨越时间或数据量来界定媒体内容的每一部分,且所述部分可以是离散的或重叠的(作为滑窗)。
[0069]接下来,图9是描绘了可以根据本发明方法的示例实施方案来执行以控制媒体内容从服务器到装置的流式传输的功能的另一流程图。此方法可以由编码在非暂时性计算机可读媒体(诸如客户端12的数据存储装置)上的指令界定,所述指令可以是处理器(诸如客户端12的处理器26)可执行的以实施各种功能。
[0070]如图9中所示,在框72处,示例方法涉及确定用于从服务器到所述装置的通信的网络带宽。在框74处,示例方法接着涉及在装置接收媒体内容的一部分之前识别媒体内容的多个VBR版本中的一个或多个版本,其中所述识别是至少部分基于在所述一个或多个VBR版本的每一者中所述媒体内容的所述部分具有小于或等于所确定的网络带宽的比特率。在框76处,示例方法接着涉及从媒体内容的所述经识别的一个或多个VBR版本中选择媒体内容的最高比特率的VBR版本。并且在框78处,示例方法涉及向服务器传输控制信号,请求服务器将媒体内容的所选VBR版本流式传输给所述装置。在框80处,示例方法接着涉及前进到媒体内容的下一个顺序出现的部分(例如,以滑窗为基础或作为下一个离散、互斥的部分)直到到达媒体文件的结尾为止,且从框72处重复所述方法。
[0071]上文结合图8的流程图而提供的对类似功能的定义和论述也适用于图9的功能,且反之亦然。例如,如上所述,识别一个或多个VBR版本的行为可基于播放缓冲区的充满程度。并且作为另一实例,确定网络带宽的行为可以涉及确定数据从服务器到达客户端装置的速率且将网络带宽视为基于所述测得的到达速率的值。
[0072]另外,此示例方法以及上述方法可以包括又一些其它功能或者所论述功能的变型。例如,如上所述,所述方法可以涉及接收并存储媒体内容的索引,其中所述索引包括表示在一段时间内每一 VBR版本的比特率的数据。在那种情况中,识别媒体内容的一个或多个VBR版本的功能可以涉及使用索引作为识别依据(诸如参考所述索引以预测每VBR版本中媒体内容的即将到来的部分的比特率)以及使用那些预测比特率作为依据来识别所述一个或多个VBR版本。
[0073]如上所述,例如,索引中的数据可为每一 VBR版本指定所述VBR版本的顺序块的大小和持续时间,且使用索引作为依据来识别所述一个或多个VBR版本的功能可以涉及(i)根据索引来确定媒体内容的所述部分的按时间计的块大小的测量值(诸如平均值或最大值)、(?)使用所确定的测量值作为媒体内容的所述部分的比特率的表示以及(iii)如果媒体内容的所述部分的比特率的表示小于或等于所确定的网络带宽,那么确定所述VBR版本是媒体内容的所述部分将具有小于或等于所确定的网络带宽的比特率的VBR版本。
[0074]另外或其它,索引中的数据可为每一 VBR版本指定媒体内容时间位置与媒体内容数据位置之间的映射,且使用索引作为依据来识别一个或多个VBR版本的功能可以涉及
(i)根据索引来确定媒体内容的所述部分的按时间段计的媒体内容数据大小的测量值(诸如平均值或最大值)、(?)使用所述测量值作为媒体内容的所述部分的比特率的表示以及
(iii)如果媒体内容的所述部分的比特率的表示小于或等于所确定的网络带宽,那么确定所述VBR版本是媒体内容的所述部分将具有小于或等于所确定的网络带宽的比特率的VBR版本。
[0075]最后,图10是可以根据本发明方法的示例实施方案来执行的功能的又一描绘。这些功能也可以由计算装置(诸如客户端12)执行。明确地说,这样一个装置的数据存储装置可以存储可由所述装置的处理器执行以实施所述方法的功能的程序指令。
[0076]如图10中所示,在框82处,示例方法涉及通过网络通信接口接收正从服务器流式传输给计算装置的媒体内容。在框84处,示例方法进一步涉及在用户接口处播放正接收到的媒体内容,其中对于迄今接收到的媒体内容,框84可以与框82并行地进行。并且在框85处,示例方法涉及在接收从服务器流式传输给计算装置的媒体内容的同时周期性地(i)确定用于从服务器到计算装置的通信的网络带宽的测量值、(?)评估媒体内容的多个VBR版本且从所述多个VBR版本中选择在媒体内容的下一个滑窗内的比特率将小于或等于所确定的网络带宽的最高比特率的VBR版本以及(iii)通过网络通信接口向服务器传输请求以使服务器将所选的VBR版本流式传输给计算装置。
[0077]像上文的论述一样,上文结合图8和图9而提供的对类似功能的定义和论述也适用于图9的功能,且反之亦然。例如,如上所述,在媒体内容的播放期间,计算装置的数据存储装置可以界定用于媒体内容的播放缓冲区,且示例方法的功能可进一步包括基于播放缓冲区的充满水平来选择最高比特率的VBR版本。作为另一实例,计算装置的数据存储装置可以保存媒体内容的索引,且计算装置可以使用所述索引作为依据来确定在媒体内容的下一个滑窗内媒体内容的每一 VBR版本的比特率,以便于选择在媒体内容的下一个滑窗内的比特率将小于或等于所确定的网络带宽的最高比特率的VBR版本。
[0078]虽然本文中已公开了各种方面和实施例,但是其它方面和实施例将是本领域的技术人员所显而易见的。本文中公开的各种方面和实施例只是为了进行说明而非意欲为限制性的,真正的范围和精神则由权利要求书指定。
【权利要求】
1.一种用于控制媒体内容从服务器到客户端的流式传输的方法,其中所述服务器能够访问所述媒体内容的多个可变比特率(VBR)版本,所述方法包含在所述媒体内容正从所述服务器流式传输给所述客户端的同时针对所述媒体内容的多个顺序出现的部分中的每一者执行以下功能: 在所述客户端接收所述媒体内容的所述部分之前识别所述媒体内容的所述VBR版本中的一个或多个版本,所述识别是至少部分基于确定在所述一个或多个VBR版本的每一者中所述媒体内容部分具有低于带宽阈值的比特率; 从所述媒体内容的所述经确定的一个或多个VBR版本中选择所述媒体内容的最高比特率的VBR版本;以及 致使所述媒体内容的所述所选的VBR版本从所述服务器流式传输给所述客户端。
2.根据权利要求1所述的方法,其中所述识别进一步至少部分基于所述客户端处的播放缓冲区的充满水平。
3.根据权利要求1所述的方法,其中在所述客户端接收所述媒体内容的所述部分之前识别所述媒体内容的所述VBR版本中的一个或多个版本包含: 针对所述多个VBR版本中的每一 VBR版本,预测所述媒体内容的所述部分的比特率的测量值; 针对所述多个VBR版本中的每一 VBR版本,确定所述媒体内容的所述部分的比特率的所述预测测量值是否低于所述带宽阈值。
4.根据权利要求3所述的方法,其中所述测量值包含平均值或最大值。
5.根据权利要求3所述的方法,进一步包含,针对所述媒体内容的所述多个顺序出现的部分中的每一者,在所述媒体内容正从所述服务器流式传输给所述客户端的同时: 基于对所述服务器与所述客户端之间的网络带宽的评估来确定所述带宽阈值。
6.根据权利要求5所述的方法,其中确定所述带宽阈值包含测量数据从所述服务器到达所述客户端的速率,且至少部分基于所述测得的到达速率来确立所述带宽阈值。
7.根据权利要求5所述的方法,其中所述媒体内容的所述顺序出现的部分彼此重叠以协同地在所述媒体内容上界定滑窗。
8.根据权利要求7所述的方法,其中所述滑窗是有大小边界或时间边界的。
9.根据权利要求5所述的方法,其中所述媒体内容的所述顺序出现的部分是所述媒体内容的互斥部分。
10.根据权利要求1所述的方法,其中致使所述媒体内容的所述所选的VBR版本从所述服务器流式传输给所述客户端包含致使所述服务器从流式传输所述媒体内容的所述VBR版本中的另一者转变为流式传输所述媒体内容的所述所选的VBR版本。
11.根据权利要求1所述的方法,所述方法由所述客户端执行, 其中致使所述媒体内容的所述所选的VBR版本从所述服务器流式传输给所述客户端包含从所述客户端向所述服务器传输控制信号,所述控制信号请求所述服务器将所述媒体内容的所述所选的VBR版本流式传输给所述客户端。
12.根据权利要求11所述的方法,进一步包含,针对所述媒体内容的所述多个顺序出现的部分中的每一者: 通过所述客户端将所述带宽阈值确定为用于从所述服务器到所述客户端的通信的网络带宽的实时测量值。
13.根据权利要求1所述的方法,所述方法由所述服务器执行, 其中所述方法进一步包含从所述客户端接收网络带宽的测量值,所述带宽阈值基于所述接收到的测量值。
14.一种上面存储有指令的非暂时性计算机可读媒体,所述指令可执行以致使装置在媒体内容从服务器流式传输给装置期间针对所述媒体内容的多个顺序出现的部分中的每一者执行以下功能: 确定用于从所述服务器到所述装置的通信的网络带宽; 在所述装置接收所述媒体内容的所述部分之前识别所述媒体内容的多个可变比特率(VBR)版本中的一个或多个版本,所述识别是至少部分基于在所述一个或多个VBR版本的每一者中所述媒体内容的所述部分具有小于或等于所述经确定的网络带宽的比特率; 从所述媒体内容的所述经识别的一个或多个VBR版本中选择所述媒体内容的最高比特率的VBR版本;以及 向所述服务器传输控制信号,请求所述服务器将所述媒体内容的所述所选的VBR版本流式传输给所述装置。
15.根据权利要求14所述的非暂时性计算机可读媒体,其中所述识别进一步至少部分基于所述装置处的播放缓冲区的充满水平。
16.根据权利要求14所述的非暂时性计算机可读媒体,其中所述装置是手持式无线通信装置,且其中所述非暂时性计算机可读媒体包含所述装置的数据存储装置。
17.根据权利要求14所述的非暂时性计算机可读媒体,其中所述功能进一步包含: 接收并存储所述媒体内容的索引,所述索引包括表示在一段时间内所述多个VBR版本的比特率的数据,其中识别所述媒体内容的所述VBR版本中的一个或多个版本包含使用所述索引作为所述识别的依据。
18.根据权利要求17所述的非暂时性计算机可读媒体,其中所述索引中的所述数据为所述多个VBR版本中的每一 VBR版本指定所述VBR版本的顺序块的大小和持续时间,且其中使用所述索引作为所述识别的依据包含: 根据所述索弓I来确定所述媒体内容的所述部分的按时间计的块大小的测量值; 使用所述经确定的测量值作为所述媒体内容的所述部分的比特率的表示;以及 如果所述媒体内容的所述部分的比特率的所述表示小于或等于所述经确定的网络带宽,那么确定所述VBR版本是所述媒体内容的所述部分将具有小于或等于所述经确定的网络带宽的比特率的VBR版本。
19.根据权利要求18所述的非暂时性计算机可读媒体,其中所述媒体内容的所述部分的按时间计的块大小的所述测量值包含平均值或最大值。
20.根据权利要求17所述的非暂时性计算机可读媒体,其中所述索引中的所述数据为每一 VBR版本指定媒体内容时间位置与媒体内容数据位置之间的映射,且其中使用所述索引作为所述识别的依据包含: 根据所述索引来确定所述媒体内容的所述部分的按时间段来计的媒体内容数据大小的测量值; 使用所述测量值作为所述媒体内容的所述部分的比特率的表示;以及 如果所述媒体内容的所述部分的比特率的所述表示小于或等于所述经确定的网络带宽,那么确定所述VBR版本是所述媒体内容的所述部分将具有小于或等于所述经确定的网络带宽的比特率的VBR版本。
21.根据权利要求20所述的非暂时性计算机可读媒体,其中所述测量值包含平均值或最大值。
22.根据权利要求14所述的非暂时性计算机可读媒体,其中确定用于从所述服务器到所述装置的通信的网络带宽包含测量数据从所述服务器到达所述装置的速率,所述网络带宽是至少部分基于所述测得的到达速率。
23.根据权利要求14所述的非暂时性计算机可读媒体,其中所述媒体内容的所述顺序出现的部分彼此重叠以协同地在所述媒体内容上界定滑窗。
24.根据权利要求23所述的非暂时性计算机可读媒体,其中所述滑窗是有大小边界或时间边界的。
25.根据权利要求14所述的非暂时性计算机可读媒体,其中所述媒体内容的所述顺序出现的部分是互不相容的。
26.根据权利要求14所述的非暂时性计算机可读媒体,其中所述控制信号请求所述服务器从将所述媒体内容的所述VBR版本中的另一者流式传输给所述装置转变成将所述媒体内容的所述所选的VBR版本流式传输给所述装置。
27.一种计算装置,包含: 网络通信接口; 用户接口 ; 处理器; 数据存储装置;以及 程序指令,所述程序指令存储在所述数据存储装置中且是所述处理器可执行的以至少执行以下功能: (a)通过所述网络通信接口接收从服务器流式传输给所述计算装置的媒体内容, (b)在所述用户接口处播放正接收到的所述媒体内容;以及 (c)在接收从所述服务器流式传输给所述计算装置的所述媒体内容的同时,周期性地(i)确定用于从所述服务器到所述计算装置的通信的网络带宽的测量值、(ii)评估所述媒体内容的多个可变比特率(VBR)版本且从所述多个VBR版本中选择在所述媒体内容的下一个滑窗内的比特率将小于或等于所述经确定的网络带宽的最高比特率的VBR版本以及(iii)通过所述网络通信接口向所述服务器传输请求以使所述服务器将所述所选的VBR版本流式传输给所述计算装置。
28.根据权利要求27所述的计算装置,其中: 在所述媒体内容的所述播放期间,所述数据存储装置界定用于所述媒体内容的播放缓冲区,且 所述功能进一步包含基于所述播放缓冲区的充满水平来选择所述最高比特率的VBR版本。
29.根据权利要求27所述的计算装置,其中所述请求是使所述服务器从流式传输所述VBR版本中的另一者转变成流式传输所述所选的VBR版本。
30.根据权利要求27所述的计算装置,其中所述数据存储装置保存所述媒体内容的索弓丨,所述索弓I含有表示在一段时间内所述VBR版本的比特率的数据,其中评估所述媒体内容的所述多个VBR版本且从所述多个VBR版本中选择在所述媒体内容的下一个滑窗内的比特率将小于或等于所述经确定的网络带宽的最高比特率的VBR版本包含使用所述索引作为依据来确定在所述媒体内容的所述下一个滑窗内所述媒体内容的每一 VBR版本的比特率。
【文档编号】G06F15/16GK104272289SQ201380013463
【公开日】2015年1月7日 申请日期:2013年3月11日 优先权日:2012年3月13日
【发明者】T·英斯基普, D·麦克莱恩 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1