针对自适应比特率流送的动态转码器速率自适应的系统和方法

文档序号:10541142阅读:338来源:国知局
针对自适应比特率流送的动态转码器速率自适应的系统和方法
【专利摘要】描述了用于针对自适应比特流送功能提供动态转码器速率自适应的系统和方法。在第一实施例中,客户端可以在编码会话期间根据所有可用比特率进行选择,其中比特率经由清单文件被从媒体网关提供给客户端。在第二实施例中,比特率的子集被提供给客户端,客户端从该子集中选择选定的比特率。编码会话继续进行,直到从客户端接收针对新比特率的请求,此时生成新的比特率子集。该新的比特率子集被呈现给客户端,并且该循环继续进行直到编码会话结束。
【专利说明】
针对自适应比特率流送的动态转码器速率自适应的系统和方法
【背景技术】
[0001]多年来,人们己变得越来越依赖他们的移动设备。同时,人们还访问互联网上数目和类型不断增长的媒体。当今针对媒体源的流送技术提供了多个ABR流送比特率,以及事先选择用于对媒体源进行编码的比特率。然而,由于移动设备和其他家庭网络通常不用相同的转码器资源作为更复杂的网络媒体网关,因此当向移动设备提供对这些媒体源的相同流送访问时出现了挑战。因此,在本领域中需要用于用有限的转码器资源来有效并高效地提供对网络或设备中的流送媒体的访问的方法和系统。
[0002]產禮
[0003]?宽泛描述的,本发明的各种实施例提供了用于针对自适应比特流送功能提供动态转码器速率自适应的系统和方法。在第一实施例中,客户端可以在编码会话期间根据所有可用比特率进行选择,其中比特率经由清单文件被提供给客户端。在第二实施例中,比特率的子集被提供给客户端,客户端从该子集中选择选定的比特率。编码会话继续进行,直到从客户端接收针对新比特率的请求,此时生成新的比特率子集。该新的比特率子集被呈现给客户端,并且该循环继续进行直到编码会话结束。
[0004]提供本总结来以简化的方式介绍对在下面【具体实施方式】中被进一步描述的概念的选择。本总结不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在被用来限制所要求保护的主题内容的范围。
【附图说明】
[0005]图1是根据本发明的各种实施例用于提供动态转码器速率自适应的示例环境的框图。
[0006]图2是根据本发明的第一实施例的系统的框图。
[0007]图3是示出本发明的第一实施例的方法的流程图。
[0008]图4是示出本发明的第一实施例的方法的信令图。
[0009]图5Α和5Β是示出本发明的第一实施例的示例性代码段。
[0010]图6是示出本发明的第二实施例的流程图。
[0011 ]图7和图8是示出本发明的第二实施例的框图。
[0012]图9是根据本发明的各种实施例示出网络设备的框图。
[0013]在各附图中,相似标号和命名指示相似元件。
【具体实施方式】
[0014]图1是根据本发明的各种实施例的系统的框图。网络100包括网络核心102,该网络核心102可以包括能够存储各种类型的媒体的一个或多个服务器以及用作网络100的骨干的服务器。针对骨干功能,网络核心102包括用以为多个分布式网络(106和108)之间的信息(例如,媒体)交换提供路径的装置。每一分布式网络包括被耦合至一个或多个路由器(114-124)的分布式网络服务器(分别为110和112)。本领域的技术人员将认识到,各种类型和数目的装置和结构可以被包括在本发明的精神和范围内的每一分布式网络和网络核心中。
[0015]系统100还包括一个或多个客户端142-150,其中每一客户端142-150(基于为客户端所位于的子网络服务的路由器)被以通信的方式耦合至路由器114-124。如图2中将进一步描述的,每一路由器114-124可以包括媒体网关208。路由器114-124和客户端142-150之间的连接可以包括但不限于:WIFI连接、以太网连接或Apple Bon1ur连接。这种连接(本文中简称为“连接”)在图1中被示为132-140。系统100中的客户端142-150可以使用可以生成多个媒体或分组(包括视频、图片或视频直播(下文中称为“媒体”))的一个或多个应用(例如,Facebook应用、Microsoft Word应用或Firefox应用)。
[0016]图2是根据本发明的第一实施例的系统200的框图。如图2所示,可以使用位于住所214的网络(下文中称为“家庭网络”),但本领域的技术人员将认识到,可以在本发明的精神和范围内使用具有与家庭网络214相同能力的任意类型的更小的网络或子网络。此外,本文所描述的本发明的实施例可以在本发明的精神和范围内被用于比家庭网络200更高级的网络环境中。
[0017]原(origin)服务器202包括能够存储和服务媒体的任意源(例如,位于网络100的网络核心102内的虚拟或物理服务器)。替换地,原服务器202可以是分布式网络服务器(例如,图1中的110和112)。原服务器202可以包括单个服务器,或者可以包括传播于网络100中的多个网络设备或组件之间的功能。原服务器202经由通信路径(例如,无线或有线连接)被耦合至媒体网关208和视频控制204。本领域的技术人员将认识到,原服务器202可以包括本发明的精神和范围内的多种形式或配置。
[0018]视频控制204可以是独立的服务器、网络核心102内的虚拟或物理服务器或者另一网络设备内的功能实体(例如,分布式网络服务器110和112)。视频控制204作为客户端206、家庭网络214和原服务器202之间的汇聚点,这样,当从家庭网络214请求针对选定媒体的客户端206媒体请求时,视频控制204协调原服务器202上的媒体的位置。另一方面,视频控制204还接收针对选定媒体的递送服务参数,包括但不限于:针对媒体网关208的发布URL或者针对客户端206的清单URL。
[0019]媒体网关208经由通信路径被以通信的方式耦合或者位于家庭网络214内,并且包括源210和转码器单元212中的至少一个转码器。尽管图2中只示出了一个转码器,但本领域的技术人员将认识到不止一个转码器可以被包括在本公开的精神和范围内。如在以下附图中将更详细讨论的,媒体网关208创建媒体的一个或多个经封装的流以及如图5A和图5B所描述的清单文件。媒体网关208将清单文件、媒体播放列表和段的单个流公告至原服务器202。媒体网关208还将所请求的流的可用性通知给视频控制204。
[0020]在第一替换实施例中,中间设备(“视频转播设备”)可存在于媒体网关208和视频控制204之间。在该替换实施例中,视频转播设备可以接收服务、设置和原消息,或者将服务、设置和原消息发送至视频控制204。在第二替换实施例中,位置服务器可存在于客户端206和视频控制204之间,其中位置服务器将在视频控制204和客户端206之间发送和接收位置信息。
[0021]客户端206可以包括被以通信的方式耦合至原服务器202的任意类型的终端用户设备(例如,图1的142-150)。示例而非限制性的,客户端可以包括智能手机、平板电脑、可穿戴通信设备或膝上型计算机。客户端206和原服务器202之间的连接可以包括经由电信网络的无线连接。在视频控制204物理上位于原服务器202内的实施例中,客户端206和视频控制204之间的连接可以包括客户端206和原服务器202之间的相同连接。客户端可以包括图9中所示的结构,将在本申请的下文中进行描述。
[0022]图3是示出本发明的第一实施例的方法的流程图。方法300开始于在步骤302生成媒体简档。如图5A和图5B中将进一步描述的,转码器212生成单个媒体简档,该单个媒体简档被清单文件中的所有可用比特率(“比特率变量”)引用。因此,单个媒体流被以不同比特率表示,而转码器只生成单个比特率。
[0023]在步骤304,转码器212适应于从客户端206接收的选定比特率。转码器212依照客户端206的引导来使得转码器212适应于由客户端请求的比特率,而不是事先为客户端建立比特率。这样,转码器212在步骤304以从客户端206接收的比特率继续进行转码。在步骤306,客户端206将针对新比特率的请求发送至视频控制204,并在步骤308切换至新比特率。该新比特率可能高于或低于在步骤304从客户端206接收的比特率。同时,视频控制204向转码器212发送开始以新比特率进行转码的请求。为了优化流送体验并提供至新比特率的无缝转换,客户端206可以对其切换算法使用阻尼(dampening)以解释由于向上或向下切换至新比特率与新比特率变得可用之间的时间差而导致的任意滞后时间。
[0024]图4是示出本发明的第一实施例中的客户端402、视频控制404和媒体网关406之间的信号的示例性交换的信令图。信令图400中的信号的交换不意图是限制性的,而是示出在本发明的第一实施例中可能产生的信号的一个示例。在信令图400中,客户端402将初始化信号发送至视频控制404(408)。视频控制404进而将流开始信号发送至媒体网关406(410),该媒体网关406将流送媒体信号返回至视频控制404(412)。流送媒体信号然后被从媒体控制404转发至客户端402。
[0025]客户端402向媒体网关406发送清单请求(416),该媒体网关406用包括清单的信号进行响应(418)。该信令图400只是出于示例性的目的,客户端402经由信号选择256KBPS速率(420)。媒体网关406用包括256KBPS简档数据的信号进行响应(422),并且客户端402经由请求来请求第一段(424)以开始以256KBPS进行转码。媒体网关406还通过经由信号提供第一段来进行响应(426)。
[0026]针对由客户端402请求的简档中的每一改变,客户端402还必须将速率改变通知给视频控制404。视频控制404将速率改变请求转播至媒体网关406,这时媒体网关406开始以新比特率对流进行编码。在流初始化时,客户端402可以只在媒体网关己生成段之后请求段,并且因此,速率改变请求一定首先已经经由视频控制404传播至媒体网关406。
[0027]在初始化之后,速率改变请求可以经由控制点进行转播,而客户端402继续请求用旧速率编码的媒体段。在速率改变请求通过视频控制404传播至媒体网关406之后,媒体网关406将开始以新比特率生成段。客户端402现在将接收速率自适应的段。
[0028]客户端402然后确定可以容纳更高的比特率,并且向媒体网关406发送针对512KBPS的简档数据的信号(428)。客户端402为了达到该确定可以使用许多方法。示例而非限制性的,客户端402可以推断解码缓冲器总是满的,并且因此,如果数据很快到达,则应该使用更高的比特率。通过分析解码缓冲器是满还是空,客户端402可以确定应该使用更高还是更低的比特率。目标是媒体网关生成具有高成功递送概率的媒体流,而无需同时生成所有流(媒体网关不能生成所有流)。媒体网关406通过发送包括512KBPS简档数据的信号进行响应(430),并且客户端402用请求第一段的信号跟进(432)。从客户端402将速率改变请求发送至视频控制404(436),该视频控制404进而将速率改变请求发送至媒体网关406(438)。媒体网关406用流送媒体信号进行响应(440),该流送媒体信号被发送至视频控制404,然后作为流送媒体信号被转发至客户端402(442)。
[0029]图5A和图5B是示出本发明的第一实施例中所包括的清单文件的示例性代码段。图5A是包括对相同媒体简档的参考的清单文件(还称为媒体播放列表)。如代码的第一、第二和第三行所示,http: //example.com/common.m3u8的相同媒体简档被提供给256KBPS、512KBPS和1000KBPS中的每一带宽水平。图5B示出了描述针对每一比特率递送相同段的共同媒体播放列表。通过针对每一比特率提供相同的媒体简档,单个媒体流可以以不同比特率表示,而只生成单个比特率。
[0030]图6是示出本发明的第二实施例的流程图。在该实施例中,目标是转码器“预期”客户端可能请求的简档。很可能的备选是临近客户端当前正消耗的简档比特率的那些简档。
[0031]方法600开始于在步骤602处生成包括所有比特率变量的子集的媒体简档。与第一实施例相比,在第一实施例中所有可用比特率被作为选项呈现,但是只生成一个比特率,而在第二实施例中可用比特率的子集被作为选项呈现。所呈现的可用比特率的特定子集依照以下子集生成算法:I)当采用最低比特率时,只有最低比特率和下一最高比特率经由清单文件作为选项被公告;2)当采用最高比特率时,只有最高比特率和下一最低比特率被公告;以及3)在任意其他情况下,正生成的比特率和该速率在任一侧的比特率被公告。
[0032]在步骤604,方法600适应于选定的比特率。该步骤604包括视频控制204向转码器212发送以选定的比特率进行转码的信号。在步骤606,方法600接收新的比特率消息。该新的比特率消息来源于客户端206,并且经由视频控制204被发送。在步骤608,方法600生成新的清单,该清单具有表示新的比特率范围的新的简档子集。通过将子集生成算法应用于步骤604的选定比特率来生成新的比特率子集。当视频控制204将新清单的可用性转播至客户端206时,步骤608可以由媒体网关208执行。
[0033]显而易见地,方法600不包括呈现于第一实施例的方法300中的阻尼。在第二实施例中不需要阻尼,因为阻尼由清单文件中所公告的比特率规定。图7示出了示例,该示例包括针对沿着垂直时间轴的每一时刻(A-L)所公告的比特率(右侧框中)。在时刻A,如最左侧框中所示,两个比特率(256KBPS和512KBPS)被公告给客户端。在时刻A,最右侧的框示出了在该时刻表示媒体段的比特率。例如,在时刻A,针对256KBPS和512KBPS播放列表的媒体段实际上是256KBPS比特率段。加粗边框的框指示了客户端当前正在消耗哪个比特率。
[0034]最初,在时刻A,只生成最低比特率并公告两个比特率(最低256KBPS和下一最高比特率(512KBPS))。在时刻B,客户端确定需要增加比特率消耗或者可能增加比特率消耗,因此切换到更高的比特率。然而,在时刻B,该播放列表内的媒体仍然以更低的比特率进行转码。如在第一实施例中,客户端发送传播至转码器212的信号以请求上调(upshift)。
[0035]在时刻C,一旦转码器212开始生成上调的比特率,则转码器公告三个比特率的子集是可用的。这些可用的比特率包括当前比特率以及恰好小于和大于当前比特率的比特率。对新速率的公告可以以各种方式实现。例如,在HTTP动态自适应流送(DASH)中,将通过结束当前时段并用自适应集的新集来创建新时段。在其他格式中,带内或带外的元数据可以被用来将新速率通知给客户端。此时,客户端正消耗新的所期望的比特率(在该示例中为512KBPS),并获悉两个其他可能的速率。
[0036]客户端206直到时刻E仍继续采用512KBPS速率,在时刻E客户端206再次上调,并且正消耗768KBPS播放列表(但仅512KBPS媒体)。768KBPS播放列表的这种消耗继续进行,直到当转码器已经开始实际生成768KBPS媒体的时刻F。在时刻F,在四个可能的速率范围,正公告100k的最高速率。
[0037]在时刻G,要不是由于已经达到最高比特率的事实,客户端又决定上调,并且上述逻辑重复进行。因此,在时刻H,一旦编码器生成该1000KBPS速率,则只公告该最高速率(10000?3)和低于最高速率的一个速率(7680?3)。在时刻1,客户端决定下调(downshift)。然而尽管客户端开始消耗768KBPS播放列表,但因为不存在可用于下调的更低比特率,所以即使转码器能够生成更低的比特率(256KBPS和512KBPS),但客户端206将仍维持在最低公告的比特率(768KBPS)。
[0038]在时刻J,转码器已经调整为更低的768KBPS速率,并且当前768KBPS、下一最高速率1000KBPS和下一最低速率512KBPS被公告以用于之后消耗。可选地,当进行下调(例如,点J)时,转码器可以延迟对最低速率的公告(未示出)。
[0039]本文所描述的示例使用了只有单个转码器资源可用于帮助ABR体验的情况。然而,实施例支持更多转码器可用,但仍然少于ABR比特率频谱所需要的数量的情况。例如,如果两种转码器资源可用,则如图8所示,可以生成当前和下一最低比特率。当当前比特率最低时,那么生成最低和下一最高比特率。因此,如图8所示,该替换实施例用下调来处理缓存问题。
[0040]图9是根据本发明的各种实施例示出网络设备的框图。该网络设备900可以包括但不限于诸如图1中的128-130、142-144或146之类的客户端。网络设备900包括通信接口 901、处理系统902和用户接口 903。处理系统902包括存储系统904。存储系统904存储软件905,该软件905可以包括但不限于被配置为执行本文所描述的方法的软件。处理系统902被链接至通信接口 901和用户接口 903,并且可以被配置为执行本文所描述的任意方法。除了客户端之外,网络设备900还可以包括可编程通用计算机,但本领域的技术人员将认识到可以使用可编程或专用电路和装置。网络设备900可以分布于一起组成元件901-905的多个设备之间。
[0041]通信接口901可以包括网络接口、调制解调器、端口、收发机或者某一其他通信设备。通信接口 901可以分布于多个通信设备之间。处理系统902可以包括计算机微处理器、逻辑电路或者一些其他处理设备。处理系统902可以分布于多个处理设备之间。用户接口903可以包括键盘、鼠标、语音识别接口、麦克风和扬声器、图形显示器、触摸屏或者一些其他类型的用户设备。用户接口903可以分布于多个用户设备之间。存储系统904可以包括盘、带、集成电路、服务器或者一些其他存储器设备。存储系统904可以分布于多个存储器设备之间。
[0042]处理系统902从存储系统904获取和执行软件905。软件905可以包括操作系统、实用程序、驱动器、联网软件以及通常加载至计算机系统的其他软件。软件905可以包括应用程序、固件或者一些其他形式的机器可读处理指令。当软件905由处理系统902执行时,其指导处理系统902如本文所描述的那样进行操作以管理网络中的应用流。
[0043]相对于现有技术,本发明的各种实施例提供了许多优点。本发明的各种实施例在每一次需要时向客户端提供ABR速率的全部频谱,其中媒体网关具有最少的转码器资源,因此优化客户端体验以改变网络环境。在不包括本发明的任意实施例的系统中,向客户端递送内容的转码会话将需要以最低速率来避免缓冲(由此导致最差的视觉质量)。此外,在不包括本发明的任意实施例的更高速率系统中,向客户端递送内容的转码会话将在拥塞期间展示缓冲(由此导致很差的回放体验)。
[0044]尽管本说明书包括许多具体的实现方式的细节,但是这些不应该被看作是对任意发明或者要求保护的范围的限制,而是被看作可能是针对特定发明的特定实现方式的特征的描述。在不同实现方式的背景下本说明书中描述的某些特征还可以在单个实现方式的组合中实现。相反地,在单个实现方式的背景下描述的各种特征还可以在多个实现方式中分别实现或以任意适合的子组合实现。此外,虽然特征在上文中被描述为在某些组合中作用,并且最初照此要求保护,但是在一些情况下,来自要求保护的组合中的一个或多个特征可以脱离组合进行实践,并且要求保护的组合可以是针对子组合或子组合的变体。
[0045]类似地,尽管操作在附图中以特定的顺序被描述,但是这不应该被理解为要求这些操作以所示的特定顺序或以先后顺序被执行、或者要执行所有所示的操作来实现所期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,在以上所描述的实现方式中的各种系统组件的分离不应该被理解为在所有实现方式中要求这样的分离,并且应该理解的是所描述的程序组件和系统可能通常被一起集成在单个软件产品中或者被封装至多个软件产品中。
[0046]已经描述了本说明书中所描述的主题内容的特定实现方式。其他实现方式在以下权利要求的范围内。例如,权利要求中所记载的动作可以以不同的顺序执行并且仍实现所期望的结果。例如,附图中所描述的过程不必需要所示的特定顺序或者相继顺序来实现所期望的结果。在某些实现方式中,多任务和并行处理可能是有益的。此外,本说明书中所描述的任意方法可以被实现为计算机可读介质上的计算机软件。
【主权项】
1.一种用于网络中用不同比特率表现单个媒体流的方法,所述方法包括以下步骤: 生成单个媒体简档,该单个媒体简档被清单文件中的所有比特率变量引用; 适应于由客户端从所述比特率变量所请求的选定比特率; 从客户端接收具有来自所述比特率变量的新选定比特率的消息;以及 将新比特率信号发送至转码器以转码为所述新比特率。2.如权利要求1所述的方法,还包括以下步骤:应用阻尼机制,直到所述新比特率可用为止。3.如权利要求1所述的方法,其中,所述方法由媒体网关执行。4.如权利要求1所述的方法,其中,所述媒体网关包括单个转码器。5.—种用于网络中用不同比特率表现单个媒体流的方法,所述网络具有只生成一个比特率的转码器,所述方法包括以下步骤: 生成单个媒体简档,该单个媒体简档包括清单文件中所有可用比特率变量的子集; 适应于由客户端从所述比特率变量所请求的选定比特率; 从客户端接收具有来自所述比特率变量的新选定比特率的消息; 将信号发送至转码器以转码为所述新选定比特率;以及 生成新的单个媒体简档,所述新的单个媒体简档包括清单文件中所有可用比特率变量的新子集。6.如权利要求5所述的方法,其中,所有可用比特率变量的所述子集包括最低比特率和第二低比特率。7.如权利要求5所述的方法,其中,所有可用比特率变量的所述子集包括最高比特率和第二高比特率。8.如权利要求5所述的方法,其中,所有可用比特率变量的所述子集包括特定比特率、高于所述特定比特率的比特率以及低于所述特定比特率的比特率。9.一种用于网络中用不同比特率表现单个媒体流的系统,所述网络具有只生成一个比特率的转码器,所述系统包括: 媒体网关,其中,所述媒体网关包括源和至少一个转码器; 原服务器,其中,所述原服务器经由通信路径被以通信的方式耦合至所述媒体网关和至少一个客户端;以及 客户端,其中,所述客户端位于家庭网络外部,并且被配置为接收来自所述媒体网关和原服务器的内容; 其中,所述转码器被配置为: 生成单个媒体简档,该单个媒体简档被清单文件中所有比特率变量引用; 适应于由客户端从所述比特率变量所请求的选定比特率; 从客户端接收具有来自所述比特率变量的新选定比特率的消息;以及 将新比特率信号发送至转码器以转码为所述新比特率。10.如权利要求9所述的系统,其中,所述转码器还被配置为:应用阻尼机制,直到所述新比特率可用为止。11.如权利要求9所述的系统,其中,所述媒体网关被包括在家庭网络内。12.如权利要求9所述的系统,其中,所述原服务器包括网络核心。
【文档编号】H04N21/435GK105900404SQ201580004322
【公开日】2016年8月24日
【申请日】2015年1月13日
【发明人】斯科特·克里斯托弗·拉博洛兹, 华伦·斯考特·温纳儿
【申请人】思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1