用于流送自适应比特率媒体内容的系统和方法与流程

文档序号:18684868发布日期:2019-09-13 23:49阅读:218来源:国知局
用于流送自适应比特率媒体内容的系统和方法与流程

技术领域

本公开涉及调节(reconcile)媒体内容的冗余副本。



背景技术:

自适应比特率(ABR)流送是在计算机网络(包括诸如互联网之类的分布式HTTP网络)上的流媒体内容中所使用的技术。ABR流送一般通过根据用户的带宽和容量来调整视频流的质量(例如,比特率)来进行操作。采用ABR流送技术的服务提供商对于用于向他们的用户递送稳定的媒体内容的可靠机制有着越来越高的期待。

附图说明

图1示出了用于调节媒体内容的冗余副本的系统的示例。

图2示出了包括分组器(packager)的媒体生产流水线(media production pipeline)的一部分的示例。

图3示出了包括调节引擎的媒体生产流水线的示例。

图4示出了包括调节引擎的媒体生产流水线的另一示例。

图5示出了包括调节引擎的媒体生产流水线的另一示例。

图6示出了包括调节引擎的媒体生产流水线的另一示例。

图7是说明用于调节媒体内容的冗余副本的示例方法的流程图。

具体实施方式

概览

本公开涉及调节媒体内容的冗余副本。

作为一个示例,一种系统可以包括调节引擎,该调节引擎被配置为评估为给定媒体资产的冗余副本生成的多个清单文件的给定清单文件中的元数据。该元数据描述给定媒体资产的冗余副本之一中的给定媒体内容块的状况。清单修改功能被配置为响应于调节引擎基于对与给定清单文件中的给定媒体内容块相关联的元数据的评估检测到给定媒体内容块被损坏,而修改针对给定媒体内容块的给定清单文件。

作为另一示例,一种方法可以包括生成针对给定媒体资产的媒体内容的冗余且可互换的副本的多个清单文件。多个清单文件中的至少一个给定清单文件可以被评估以确定媒体内容的相应副本中的媒体内容的离散片段的状况。该方法还可以包括基于指示媒体内容的相应副本中的媒体内容的离散片段被损坏的评估,将至少一个给定清单文件修改为引用媒体内容的冗余且可互换的副本的另一副本中的媒体内容的离散片段。

作为又一示例,一种系统可以包括多个媒体生产流水线。多个媒体生产流水线中的每个媒体生产流水线被配置为根据自适应递送配置文件生成给定媒体资产的冗余副本,给定资产的每个冗余副本包括多个媒体内容块。多个媒体生产流水线中的每个媒体生产流水线还被配置为生成与给定媒体资产的各个冗余副本相关联的清单文件。该清单文件引用相应的多个媒体内容块。清单修改功能可以被配置为评估给定清单文件中的清单条目并且确定给定媒体资产的相应的副本中的给定媒体内容块的状况,以及如果该评估指示是媒体内容的相应的副本中的给定媒体内容块的状况是受损的,则将给定清单文件中的所述清单条目修改为引用由多个媒体生产流水线中的另一媒体生产流水线生成的给定媒体内容块的另一副本。

示例实施例

图1描绘了可被实现以调节媒体内容的冗余副本的系统10的示例。作为示例,可以在包括多个冗余媒体生产流水线的媒体内容递送系统中实现系统10。如本文在媒体内容的上下文中所使用的术语“冗余”及其同义词指的是比如可以由多个生产流水线同时生成并被缓存以进行内容递送的内容的复制件。在许多示例中,由每个冗余流水线生成的内容本质上应当完全相同,因为这些内容通常是源于共同源的。然而,如果一个生产流水线失灵并且损坏了给定流中的内容或者内容通过其他方式被损坏,则这样的损坏很可能会被引入到其他生产流水线所生产的冗余内容中。如本文在媒体内容的上下文中所使用的术语“冗余”及其同义词指的是比如可以由多个生产流水线同时生成并被缓存以进行内容递送的内容的复制件。在许多示例中,由每个冗余流水线生成的内容将基本上是完全相同的,因为这些内容通常是源于共同源的。然而,如果一个生产流水线失灵并且损坏了给定流中的内容或者内容通过其他方式被损坏,则这样的损坏很可能会被引入到其他生产流水线所生产的冗余内容中。因此,每个冗余流水线可以被配置为产生媒体内容的冗余的、可互换的副本,媒体内容可以包括被编码为一个或多个自适应比特率(ABR)格式的内容。

系统10从而可被配置为采用任何一种或多种ABR技术来产生可流送的媒体内容块。可在系统10中实现的ABR技术的示例可以包括超文本传输协议(HTTP)、实时流送(HLS)、HTTP流畅流送(HSS-1或HSS-2)、HTTP动态流送(HDS)、或通过HTTP的动态自适应流送(DASH)、或其他ABR递送格式。如本文所使用的,块指的是可被独立地解码的媒体内容的离散片段。每个媒体内容块可作为单独的文件被存储在非暂态存储器结构中。给定内容块通常被称作片段或片断。

在图1的示例中,调节引擎12被配置为访问存储被标注为清单1到清单N的多个清单16的存储装置14,其中N是指示清单的数目的正整数。调节引擎12可被配置为评估一个或多个清单文件16。基于这种评估,调节引擎12可以确定该清单条目所涉及的给定媒体内容块的状况,并且采用该清单信息来执行对ABR内容的冗余副本的调节,而不要求对媒体内容块的评估。

在下面所描述的示例中,清单的数目N大于或等于二。每个清单16可在存储装置14中被存储为相应的清单文件。存储装置14可以包括任意数目的非暂态机器可读存储器设备(这些非暂态机器可读存储器设备可以驻留在单一存储位置),或者存储装置14可以是分布式存储系统(例如,内容服务器场)。在任一示例中,无论清单16被本地地存储还是被分布式地存储,每个清单16都可以代表媒体内容的ABR分组的冗余副本,该媒体内容的ABR分组包括针对给定媒体资产的一系列块。每个清单16还可以引用根据用于产生媒体资产的每个ABR的ABR配置文件、以任意数目的一个或多个比特率生成的媒体内容的块。

作为示例,一个清单(例如,清单1)16可以引用针对媒体资产的副本生成的以供在内容递送系统的一个地理(或者说逻辑)区域(例如,东海岸存储设施)中使用的媒体资产的副本。另一清单(清单2)16可以引用所生成的以供在另一不同地理(或者说逻辑)区域(例如,西海岸存储设施)中使用的同一媒体资产的另一副本。每个清单16包括在图1的示例中被标注为条目1到条目P的多个清单条目18,其中P是指示给定清单16中的条目的数目的正整数。因为每个清单16已经被生成以提供对给定媒体内容的副本的引用,所述每个清单16包括相同数目的P个指定媒体内容的冗余块的条目。

在没有发生与对应于给定媒体资产的块的产生相关联的错误的稳定状态条件下,各个相应的清单16中的每个条目18应当引用同样的媒体内容块。在许多示例中,在稳定状态下,每个清单中的条目将是完全相同的。因此,在稳定状态条件下,在来自一个区域的媒体内容由于某种原因而不可本地地进行从初始源的流送的情况下,来自另一区域的媒体内容可替代地在该区域中使用(例如,作为备份)。例如,如果生产流水线中的设备故障或者网络传输瘫痪时,内容会变得不可用于从初始源的流送。

作为另一示例,清单16可以是在存储装置14的存储器中被存储为表示分组化的块(这些分组化的块形成单一媒体项,例如,视频节目)的文件的XML文档。清单16可以被生成以作为对视频节目的实时流送的一部分或者作为对视频节目进行录制以供后来流送的一部分。视频节目可以具有多种变化(例如,具有不同比特率的视频的有关实例、本地化的内容等),但是单一清单文件不能封装给定媒体资产的多于一个的表示。清单中的每个条目通过指定媒体统一资源标识符(URI)及其所采用的相关联的属性来引用媒体内容的相应块。属性可以包括描述用于媒体资产的每个媒体内容块的表示的时长、加密方法、时间戳等的信息。清单还可以包括序列码标签以将一个或多个条目的群组标识为形成相应媒体资产的表示的一系列媒体块的一部分。

当生成每个清单16时,清单生成器(参见,例如,图2)还将元数据20与每个相应的清单条目18相关联。元数据提供描述条目18所引用的给定媒体内容块的状况的信息。例如,元数据20可以被实现为给定清单条目18的标签或字段,该可以标签或字段指定可随清单文件16一起被存储在存储装置14或另一位置中的给定媒体内容块被损坏还是未被损坏。如本文所使用的,术语“损坏”意在涵盖元数据可指示内容块的错误,指示该内容块的一部分丢失或者指示整个块丢失。另外,如果给定内容块被损坏,则元数据20也可指示其相关损坏。

例如,元数据20可以指定与给定媒体内容块的产生的一个或多个部分相关联的完好程度(wellness)得分。由元数据20提供的完好程度得分可以使得调节引擎能够识别并选择多个清单条目中与给定媒体内容块的更可靠的副本相关联的一个清单条目。在此示例中,若果更可靠的媒体内容块在播放过程中被递送到用户,则该给定块将对用户体验有更小的负面影响。元数据还包括上面提到的属性。

作为示例,当确定给定媒体内容块被损坏时,清单文件16中的相应条目18可被实现为占位符条目。可根据用于生成初始清单条目的完善定义的架构来生成占位符条目,占位符条目包括引用和表示相应的媒体内容块的相应属性。占位符条目还可以包括相应的元数据,如上所述。例如,元数据可以将该条目标识为占位符条目,也可以指定相应的媒体内容块是否丢失或损坏。如果响应的给定媒体内容块被损坏,则元数据20还可以指定损坏的程度,比如以提供对用户体验的影响的指示。损坏的程度例如可以在与给定媒体内容块向关联的清单条目的完好程度得分中被提供。

受损或丢失的媒体内容块可能是由于相应媒体生产流水线的一部分(比如,可以包括转码、打包和/或传输)的错误或故障。如本文所公开的,可以基于经由不同冗余流水线的生产来生成每个冗余清单16。因为这些生产流水线往往是独立的,所以有更大的可能性被产生并且被每个清单引用的媒体块的冗余副本中的至少一个冗余副本将不会受到另一生产流水线中的错误或故障的影响。

在图1的示例中,调节引擎12可以包括检测器22,该检测器22被配置为基于相应清单条目18中的元数据20的评估确定给定媒体内容块是否被损坏。如果元数据指示清单条目18中可能存在错误,比如,通过指定该清单条目为占位符条目,则调节引擎12可以从存储装置14取回该清单的冗余副本。调节引擎12还可以被编程为比较已经取回的冗余清单中的相应条目(例如,具有相同序列号的条目)。如果另一清单中的条目不包括指示相应块被损坏(例如,错误数据或丢失)的元数据,则调节引擎12可以选择该第二清单中的条目来替换第一清单中的条目。在一些示例中,调节引擎12可以被实现为等价地适用于所生成的每个清单16以调节冗余副本的全局过程。在其他示例中,调节引擎12的实例可以被局部地实现以基于一个或多个其他清单16中的条目18来处理并修复媒体内容的局部冗余副本。

在元数据20包括关于给定媒体内容块的损坏程度(例如,完好程度得分)或者给定媒体内容块丢失的指示的示例中,检测器22可以确定给定媒体内容块的损坏程度。响应于基于元数据20检测到给定媒体内容块被损坏和/或这种损坏的程度,调节引擎12可以访问存储装置14以定义与同一媒体内容块的冗余副本相关联的另一清单文件16中的条目18。调节引擎12还可以评估与这样的另一清单16中的该条目相关联的元数据20以选择使用哪个条目18来调节给定媒体内容块。例如,调节引擎12可以基于对每个清单条目中的相应元数据的评估来复制选定清单条目18,从而所复制的清单条目引用相同序列号的媒体内容,以帮助维互清单条目的对准和同步。

在一些示例中,调节引擎12可以基于对相应清单条目的另一副本的元数据20的评估确定该另一副本也被损坏了。如果给定媒体内容块的清单条目的全部副本都被损坏了,则调节引擎12可以采用规则来确定如何继续进行。例如,如果调节引擎12确定与其他清单文件(清单N)中的条目相比本地清单16(例如,清单1)中的条目18引用了更可靠的副本,则调节引擎12可以保持或保留初始条目18,例如,通过将其复制回该本地清单。在其他示例中,调节引擎12也可以将该本地清单条目复制到被确定较不可靠的另一清单16中,从而调节了引用媒体内容的荣誉快的多个清单。

如本文所公开的(参见,例如,图3-图6),调节引擎12还可以被编程以在产生和/或播放的一个或多个阶段中调节块。作为示例,调节引擎12可以访问存储装置14以持续地或间断地监视每个清单的改变。调节引擎12可以关于根据相应的ABR配置文件生成的多个比特率中的一个或多个(例如,每个)执行调节。另外或替代地,调节引擎12可以监视与对ABR内容的请求相关联的对给定清单的请求并且基于对针对这样的请求的内容的清单条目的评估来执行对冗余内容的调节。

调节引擎12可以包括清单修改功能(function)24,清单修改功能24被配置为以从由调节引擎12识别的另一清单文件(例如,清单N)选出的清单条目来修改给定清单条目18(例如,在清单1中)。清单修改功能24可以是在调节引擎中运行的或者被调节引擎调用的、被编程为修改清单条目的代码。在一些示例中,清单修改功能24可以将清单条目18修改为引用可能不同于最初所打算的媒体内容块的其他内容28。例如,其他内容28可以包括可以代替最初所打算的块的广告或其他内容,从而清单16中的条目18可以被修改为引用选定替代广告引用。在其他示例中,清单修改功能24可以将该清单条目修改为引用可以使得这样的内容代替该块的气体预定内容。另外或替代地,该条目可以被修改为引用处已经被确定为损坏的块(如本文所公开的)外还可被提供的其他内容,比如,覆盖物。例如,覆盖物可以被提供以指定与给定媒体内容块相关联的技术难点。

作为另一示例,调节引擎12可以为同一服务(例如,实时流送媒体频道)在不同且未受损的配置文件中查找替代块。例如,调节引擎12可以搜索本地清单(例如,清单1)以查找具有不同比特率的修复候选条目。清单修改功能24可以将给定清单条目18修改为指定具有与最初引用的块不同(例如,更低)的比特率的媒体内容的块,在播放期间可以基于经修改的清单条目中所提供的信息来替代最初引用的块。调节引擎12可以将正被检查的块和用于修复的块之间的时间窗口之间的任何偏斜纳入考虑。如果存在偏斜,则调节引擎12可以暂时延迟决定(例如,停止播放列表),直到确定可替代的块是可用的。

在一些示例中,如果对针对相应媒体内容块的冗余副本的清单条目18的评估并未使得合适的块被标识,则调节引擎12可以被配置为触发对给定媒体内容块的重新创建或重新产生。调节引擎12可以通过向一个或多个生成流水线发送指令来触发该重新创建,这些属性可以包括在针对给定媒体内容块的清单条目中指定的属性或者被从这些属性导出。针对所产生的重新创建的块的URI和属性可以由清单修改功能24用来将条目18修改为引用该重新创建的块来进行播放。虽然对于ABR内容的实时流送该方法可能是不切实际的,但是如果ABR媒体内容的块正被生成并记录在存储装置14中以供后续播放则该方法可被实现。

调节引擎12可以驻留在媒体递送系统内的位置处以促进采取行动来修改受损或丢失的ABR内容。作为示例,清单修改功能24和调节引擎12可以位于生产流水线内。例如,调节引擎12可以位于分组器、转码器内,或者跨转码器和分组器进行分布。在其他示例中,调节引擎12可以被实现为独立于ABR流送系统中的媒体生产流水线(比如,可直接在存储装置14上或存储装置14内运行)的服务。作为另一示例,调节引擎12可以在媒体内容递送系统中的一个或多个位置中被实现以提升用户体验。

作为另一示例,调节引擎12可以在分组体验被扇出到下游功能之前被定位。作为示例,调节引擎12可以驻留在分组器本身内。作为另一示例,它可以直接从发布点或中间存储装置(比如,存储装置14)直接运行。作为另一示例,调节引擎12可以在每个ABR客户端中被实现,比如,通过向每个这样的客户端提供引用媒体内容的冗余副本的多个清单并且基于在每个客户端处本地地调节哪个清单条目引用更可靠的内容来请求内容。虽然清单修改功能24被示出为驻留于调节引擎12中,但是在其他实施例中,清单修改功能24可以与调节引擎12分离。在一些示例中,包括检测器22和清单修改功能24的调节引擎12可以被实现为驻留在位于内容递送系统的一个或多个位置处的清单调制器内。

如本文所公开的,调节引擎12能够有效地修复实现冗余生产流水线的ABR媒体递送系统中的受损或丢失的内容。调节引擎12可以通过清单调制来执行对冗余内容的调节,而不要求取回相应媒体内容块并对其进行分析。此外,清单修改功能24可以在不要求对ABR媒体内容的块做出任何改变的情况下实现修复(如按照调节引擎12所指示的)。这样将清单调制到引用可靠媒体内容块的结果是下游的实体(例如,记录仪、初始播放节点、缓存节点、以及最终客户端)可以基于对第一清单的经修改版本中的这样的块的引用来无缝地取回恰当的替代内容。因此,与执行基于内容的分析和修复相比执行这样的调节的时间和处理资源较为便宜。

在一些示例中,调节引擎12可以被编程为间断地读取清单并评估条目以识别一个或多个受损的ABR内容块。如所提到的,这样的条目是基于被提供以标识受损(例如,有瑕疵的或丢失的)内容的元数据(例如,属性或其他标签)来进行识别的。如果基于对元数据的评估为识别出损坏则调节引擎12可以允许引用初始内容的清单传播到下游客户端。然而,如本文所公开的,如果调节引擎12检测到标识一个或多个受损的(例如,错误的或丢失的)内容块的元数据,则调节引擎12可以采用清单修改功能24来采取行动以修复问题。

图2描绘了包括分组器50的生产流水线的一部分的示例,分组器50被配置为产生ABR分组52和相应的清单文件54,ABR分组52和相应的清单文件54可被放置于相应的存储装置56中。存储装置56可以对应于图1的存储装置14,清单54可以对应于图1的清单16。分组器50还可以被称作分片器、封装器或分段器,在行业中这些术语被交替使用来表示该相同功能。另外,如本文所公开的,存储装置56可以在给定存储位置,或者该存储装置可以是分布式的,从而清单和ABR分组可以驻留于不同的位置或设备中。存储装置56可以存储记录的媒体内容以供后来播放,或者媒体内容可以响应于对播放给定媒体资产的请求而被生成以对这样的媒体内容进行实时流送。

分组器50被配置为基于比如可以从上游转码阶段提供的经转码的输入流57来生成清单54和ABR分组52。例如,上游转码阶段可以包括一个或多个转码器,一个或多个转码器被配置为将从内容源提供的输入内容转码到期望的比特率和分辨率。转码阶段可以包括任意数目的转码器,这些转码器可以根据指定经转码的流的比特率和其他属性的ABR配置文件向分组器50提供经转码的输入流。例如,经转码的输入流57可以被提供为基本流的受条件约束的连续群组。

分组器50包括分组生成器58,分组生成器58被配置为通过将经转码的输入流57划分为各个媒体内容块60来生成ABR分组52。例如,分组生成器58处理经转码的输入流以产生包括混合或单独的基础流的块60的一个或多个ABR分组52。每个块60可以在存储装置56中被存储为相应的文件,该文件被包裹在一个或多个ABR格式中。针对每个块的文件大小可以是固定大小或者这样的块可以被生成为在预定最大大小内。在图2的示例中,ABR分组52包括块1到块P,其中P是表示分组生成器58将针对给定媒体资产的经转码的输入流57封装于其中的块的数目。

分组器50还包括清单生成器62,清单生成器62被配置为生成与ABR分组52相关联的清单54。清单生成器62可以将清单生成为指定针对每个相应块60的相应条目的播放列表。因此,清单54中的每个条目64与ABR分组52中的相应块60相关联并且引用该块60。通过示例的方式,清单54可以被实现为文本文件,比如可以是符合语法规则的XML文档或者基于ABR格式专用架构(例如,具有预定义的结构和语法)的其他文本文档。每个条目64可以包括刻画它所引用的各个块60的特征多个属性,比如可以包括针对各个块的指定URI的标签、编解码器、比特率、时长、时间戳等。给定清单条目64的属性可以根据ABR格式而变化。每个条目不包括各自的序列号。相反,清单54可以包括指定开始序列号的序列号,该开始序列号暗示了该清单中的各个条目的序列号的范围。

清单生成器62还可以将元数据66与各个条目64相关联。元数据66例如可以被实现为该条目的调节属性,该调节属性指定各个条目64所引用的块的状况。如本文所公开的,与给定清单条目64相关联的元数据66可以指示给定块60是受损的还是未受损的。在一些示例中,元数据66还可以例如通过指定块的损坏程度(例如,作为完好程度值(比如,得分)被提供)来指示各个块的相对完好程度。例如,相对完好程度值可以指定在给定媒体资产的播放期间所识别的损坏将会对用户体验产生的预期影响。

通过示例的方式,清单生成器62可以包括分析器70,该分析器70评估由分组器50生成的给定块的生产。分析器70可以评估分组器50是其一部分的媒体生产流水线的一个或多个部分已确定给定块的损坏。分析器70可以基于由分组器内部执行的处理、或者基于(比如,从生产流水线的另一部分(例如,从转码阶段))外部提供的信息、和/或基于另一健康输入59来执行该评估。例如,健康输入59可以由外部评估组件(例如,专门诊断硬件和/或软件服务)来提供,该外部评估组件被配置为监视并评估媒体生产流水线的一个或多个部分和/或它所产生的媒体内容块并且提供指定检测到的错误的健康数据。另外或替代地,健康输入59可以由相应流水线的转码阶段来提供以指定产生用于生成一个或多个块的流的转码处理中的错误或故障。在其他示例中,经转码的输入流57可以包括执行转码错误的信息,分析器70可以使用该信息来确定给定块是否被损坏,在一些示例中,还确定这种损坏的程度。这些错误可以基于暗示或明示的信息被链接到正由分组器生成的一个或多个块。例如,分析器70可以检查输入流57以确定存在一个或多个错误状况(例如,时间戳或连续性计数器指示到来的流的问题)。另外或替代地,健康输入59(例如,来自转码器或其他上游设备)可以提供指定损坏的明示信息。分析器70从而可以基于对分组处理的分析(包括对输入流57的分析、对分组处理的内部评估和/或外部提供的明示信息(例如,健康输入59))确定给定块是否被损坏。清单生成器62可以基于分析器70将相应的元数据插入到每个条目中。

在一些示例中,分析器70可以包括健康度量计算器72,该健康度量计算器72被配置为计算完好程度度量,该完好程度度量具有制定针对给定媒体内容块的损坏的值。例如,完好程度度量的值可以指定给定块60是否受损,并且如果受损,则指定该损耗的程度。如所提到的,损坏的程度可以基于在给定媒体资产的播放期间对给定块的损坏将对用户体验产生的预期影响。健康度量计算器72可以基于对生成给定块的分组处理的分析、基于经转码的输入流57、和/或基于被提供给分组器50的健康输入59来确定针对给定媒体内容块的这种损坏的程度。分析器70因此可以采用该健康输入和/或有计算器72计算得出的健康度量来确定完好程度值,清单生成器可以在与针对给定媒体内容块60的相应清单条目64相关联的元数据66中提供该完好程度值。

在一些示例中,清单生成器62可以包括占位符生成器74。该占位符生成器74可以被配置为在即使媒体内容的一个或多个冗余副本可以包含受损或丢失的块的情况下仍维持跨这样的副本的序列号对准。将占位符用于清单条目64是与一些ABR格式的要求(比如,HLS规范)相悖的。占位符生成器74可以被配置为在相应的清单文件54中生成占位符条目,该占位符条目响应于确定给定媒体内容块受损或丢失而引用给给定媒体内容块。占位符生成器74可以根据清单54中的每个其他清单条目被构建的相同规范(例如,符合语法规则的XML架构)来构建相应的清单条目64。

作为示例,占位符生成器74可以生成给定占位符条目(该给定占位符条目作为相应的条目64被存储在清单54中),以在即使相应的块60不存在或者受损的块被存储在ABR分组52中的情况下仍维持清单中引用的给定媒体内容块的序列号。以此方式,相应的清单可以与将存在与由另一流水线生成的冗余副本中的媒体内容的同步。另外,占位符生成器74可以向占位符清单条目64添加可用来警示调节引擎(例如,图1的引擎12)所标识的块被损坏或丢失的相应的元数据。如本文所公开的,元数据66可以是简单的二元属性以指示该块是丢失的或者受损的。在其他示例中,元数据66可以提供关于这种损坏的程度的指示以允许更粒状的调节形式。例如,下游调节引擎可以采用元数据来确定如果该块作为ABR流的一部分被递送(或者缺失该块)会产生的影响的程度。

如本文所使用的,占位符清单条目不涉及清单条目的内容的任何具体缺陷。例如,为了使得调节引擎(例如,图1的调节引擎12)能够进行处理,占位符条目的内容(包括与针对其生成占位符条目相关联的块有关的每个属性)可以被包括在占位符中达到使得这样的信息可用的程度。例如,给定占位符条目的属性可以指定针对各个块的URI、编解码器、比特率、时长、时间戳等。给定清单条目64的属性可以根据ABR格式而变化。在分析器70确定相应的块未受损的情形下,占位符生成器74可以不生成占位符,反而是清单生成器62可以采用标准规则生成标准格式的清单条目,以实现对给定媒体内容块的下游访问和处理。如果分析器70确定相应的块受损,则占位符生成器74可以生成占位符条目,该具有占位符条目标识该块未受损(并且如果支持的话,还标识这种损坏的程度)的元数据。以此方式,调节引擎可以评估元数据,并且响应于检测到损坏而执行对占位符和媒体内容的冗余副本的相应的条目调节,来使用更可靠的冗余副本修复和/或替换受损的块。虽然清单中的占位符条目的实现方式可能违反ABR格式的要求,但是使用占位符能够促进本文所公开的调节处理。

图3、图4、图5和图6说明生产流水线和相应的内容递送系统的示例,这些生产流水线和相应的内容递送系统可以实现调节引擎以允许对ABR内容的冗余副本的调节。在这些示例中的每个示例中,调节引擎可以驻留于内容递送系统中的不同位置处以实现图1的调节引擎12的功能。虽然每个示例在不同的位置来说明调节引擎,但是在其他示例中,生产流水线可以在不止一个这样的位置处实现调节引擎。因此,对于调节引擎的功能的另外的上下文请返回参考图1的示例。另外,如本文所公开的,每个调节引擎可以采用清单修改功能来基于调节实现对给定清单的改变。清单修改功能可以被实现为调节引擎的一部分或者它可以是可以基于来自调节引擎的指令进行操作的独立的组件或服务。

图3描绘了内容递送系统100的示例,该内容递送系统100可以包括用于调节ABR内容的冗余副本的调节引擎102。系统100包括多个(例如,两个或更多个)内容生产流水线104。每个生产流水线104可以被配置为根据一个或多个ABR配置文件来生成ABR媒体内容。每个生产流水线104可以从源接收媒体内容。输入媒体内容被标注为106。在一些示例中,对每个生产流水线104而言输入媒体内容106的源可以是相同的。在其他示例中,输入媒体内容106的源可以是不同的。在媒体内容的源不同的情形下,然而,相应的内容通常将是相同且同步的。每个生产流水线104可以包括转码阶段108,转码阶段108向分组阶段110提供ABR内容(例如,一个或多个基本流)的经转码的媒体。转码阶段108可以被配置为根据相应的ABR配置文件将输入媒体内容106转码或编码到一个或多个比特率。例如,转码阶段可以包括多个转码器,每个转码器被配置为通过改变编码参数(包括媒体分辨率)将一种比特率的分组化的基本流转换为一个或多个较低比特率的流。每个经转码的媒体流可以被提供给分组阶段110。

分组阶段110可以被实现以提供关于图2中的分组器50所公开的功能。简单说来,分组阶段110被配置为针对转码阶段108所提供的各个流生成相应的ABR内容数据112。ABR内容数据112可以包括针对多个不同输出流中的每个输出流的ABR分组。例如,每个ABR分组可以包括依次对应于针对相应比特率和分辨率的经转码媒体的多个媒体块。分组阶段110还可以包括用于为每个ABR分组生成相应的清单数据114的清单生成器。因此,清单可以是根据符合语法规则的(例如,XML)架构生成以允许对ABR内容数据库112的访问和播放的文件。

各个流水线104的清单数据114和ABR内容数据库112可以位于共同的数据存储装置116中。在其他示例中,针对给定流水线104生成的ABR内容数据库112的冗余副本和清单数据可以被分开存储,并且被独立地用于向一个或多个用户递送内容。存储装置16因此可以对应于图1的存储装置14。

如本文所公开的,虽然两个流水线104都可以产生相同的内容以供相应的一组下游实体(例如,CDN节点、服务和用户)使用,调节引擎102可以被配置为基于由另一流水线生成的清单数据来修改针对这些流水线中的一条或多个流水线生成的清单数据114。例如,调节引擎可以间断地读取并调节针对多个冗余流水线的清单条目。调节引擎102还可以使用由另一流水线生成的相应清单条目来修改媒体内容块的清单条目(例如,经由清单修改功能),比如,以使得在播放期间更可靠的媒体内容块能够被访问。本文公开了调节引擎102另外的功能和能力(参见,例如,图1及其相关描述)。

在图3的示例中,系统100还包括一个或多个起源服务器120。作为示例,起源服务器120可以与一个或多个内容递送网络122相连接以使得内容能够被递送到最终用户,比如,在一个或多个客户端124处。每个客户端124可以向内容递送网络122发出将由起源服务器120满足的请求。如所提到的,存储装置116可以包括清单数据114和ABR内容数据112,清单数据114和ABR内容数据112将被分配给在地理上分散的位置处的每个流水线以促进跨相应地理区域对内容的访问和递送。从而,可由清单修改功能(例如,图1的清单修改功能24)修改的清单可以被传播到下游实体(包括起源服务器、CDN)并最终到请求媒体内容的客户端。因此,响应于客户端经由CDN 122从起源服务器120请求内容,例如,系统100可以基于客户端和网络的能力适配以某一比特率和分辨率对所请求的内容进行递送。在ABR媒体内容112的播放期间,比如响应于网络条件或者请求该内容的客户端的能力的改变,可以对比特率和分辨率进行修改。因为调节引擎可以引起基于对给定清单中的元数据的评估检测到的修复,基于传播的清单(可能已经被修复为引用冗余内容的未受损或更可靠的副本)的对内容的请求可以消除或减少错误。

图4描绘了内容递送系统200的另一示例,内容递送系统200可以包括用于调节ABR内容的冗余副本的调解引擎202。图4的示例中参考标号(增大了100)指的是与图3的示例系统中介绍的相同组件和功能。因此,对于另外的上下文请返回参考图3以及本文其他恰当的公开内容。在图4的示例系统中,调节引擎被实现为起源服务器220。可以存在任意数目的一个或多个起源服务器,每个起源服务器可以访问包含清单数据214的存储装置216。

另外,存储装置216可以被实现为分布式存储系统,其中针对起源服务器220所支持的地区的清单数据214和ABR内容数据212是由流水线204中的本地流水线生成的并且被存储在本地。清单数据214和ABR内容数据212可以被远程地存储。以此方式,调节引擎202可以被编程为调节本地清单数据。例如,只要本地清单数据214不只是受损的ABR内容(例如,基于元数据或占位符条目),起源服务器220就可以在不访问由另一流水线204产生的远程清单数据的情况下处理对这样的内容的请求。如果调节引擎202基于这样的评估确定ABR内容受损,则调节引擎可以访问ABR内容212的一个或多个冗余副本的清单数据214以进行调节,如本文所公开的。例如,调节引擎202可以使用清单修改功能(例如,图1的修改功能24)来修改清单数据。

图5描绘了内容递送系统300的另一示例,内容递送系统300可以包括用于调节ABR内容的冗余副本的调解引擎302。图5的示例中参考标号(增大了200)指的是与图3的示例系统100中介绍的相同组件和功能。因此,对于另外的信息或上下文可以返回参考图3以及本文其他恰当的公开内容。

在图5的示例系统中,调节引擎302的实例在至少一条冗余媒体生产流水线304的分组阶段310被实现。如本文所公开的,可以存在任意数目的两个或更多个冗余媒体生产流水线。通过将调节引擎302实现为分组阶段310的一部分,可以获得效益。例如,调节引擎302的调节引擎(例如,图1的调节引擎12)可以被配置为监视由给定生产流水线(比如,在其实时生产过程中)的清单生成器(例如,图2的清单生成器62)产生的清单文件。响应于基于对所生成的清单文件的监视确定给定媒体内容块受损,调节引擎302可以采用清单修改功能(例如,图1的清单修改功能24)将清单数据修改为引用未受损的或更可靠的数据块。清单数据被修改为引用未受损的或更可靠的数据块。

在一些示例中,如图5中所示,每个冗余分组节点310可以包括调节引擎,该调节引擎调节冗余ABR内容。例如,给定分组阶段310可以响应于其调节引擎302监视所生成的清单文件并且检测到对ABR内容的损坏而通过一个或多个其他分组阶段310来协调对冗余ABR内容数据314的调节。

图6描绘了内容递送系统350的另一示例,内容递送系统350可以包括用于调节ABR内容的冗余副本的调解引擎352。图5的示例中的相同参考标号(增大了250)指的是与图3的示例系统100中介绍的相同组件和功能。因此,对于另外的信息或上下文可以返回参考图3以及本文其他恰当的公开内容。

在图6的示例系统中,调节引擎352的实例在系统350的一个或多个客户端374中被实现。取决于容量,可以由任意数目的客户端,每个客户端可以实现调节引擎352。例如,调节引擎352可以响应于对接收流媒体内容的请求而评估它所接收的清单中的条目。调节引擎352响应于基于其对清单文件的监视确定给定媒体内容块受损,可以采用清单修改功能(例如,图1的清单修改功能24)来将清单数据修改为引用未受损的或更可靠的内容数据块。在一些示例中,客户端374可以接收更新的清单(例如,替代清单),或者它可以接收引用可供客户端请求的未受损的内容块的更新的条目。

鉴于上面所描述的以上结构和功能特征,参考图7将更好地理解可以实现的方法。虽然为了简化解释的目的,图7的方法被示出和描述为顺序地执行,但是应当理解和认同本发明不受所示出的顺序的限制,因为根据本发明一些发明可以按照不同顺序发生和/或与本文所示出和描述的其他方面同时发生。此外,在实现根据本发明的方面的方法时并非所有示出的特征都是必需的。这些方法及其部分可以被实现为存储于非暂态存储介质中的指令,例如,这些指令由计算机设备的处理器或专用媒体配送设备(例如,数字内容管理器)来自执行。

图7示出了用于调节媒体内容的冗余副本的方法400的示例。方法400包括:在402,存储针对给定媒体资产的媒体内容的冗余且可互换的副本的多个清单文件。可以针对多个冗余媒体生产流水线中的媒体流水线生成(例如,由图2的分组器50的清单生成器62)每个清单文件。这些清单文件可以在生产时是固定的,或者它们可以在生产以及对针对给定媒体资产的媒体内容块进行分组的过程中被更新和修改。

在一些示例中,在402生成的清单文件可以包括与各个清单条目相关联的元数据,这些元数据指定给定媒体内容块的状况。该状况例如可以指示给定内容块是受损的还是未受损的。如本文所公开的,在一些示例中,当针对各个媒体内容块生成清单条目时,可以针对各个清单文件中的相应条目生成(例如,由图2的清单生成器62的占位符生成器74)占位符条目,如本文所公开的。占位符条目可以被生成以响应于确定给定块受损而引用该媒体内容块。占位符条目可以包括指示给定块受损的元数据。另外,如果块被损坏,则元数据可以包括指定对给定媒体内容块的损坏的相对程度的计算值。

在404,一个或多个给定清单文件可以被评估(例如,由图1的调节引擎12)以确定相应媒体内容副本的离散片段(例如,给定块)的状况。404处的评估可以仅与与每个清单条目相关联的元数据而被执行。例如,在406,评估可被用于检测(例如,由调节引擎12的检测器22)给定块的相应副本是受损的还是未受损的。另外,如果元数据指定给定块的损坏的程度,则404处的评估可以被应用于针对给定媒体块的冗余副本的多个清单条目,以确定哪个冗余副本更可靠(例如,受损程度更低)。

如果406处的确定指示未检测到损坏,则方法可以进行到408。408处被评估并确定为未受损的清单条目可以被保留在清单文件中。在410,清单文件然后可以被存储并传播到下游,比如,以供在控制媒体内容的自适应递送时使用。

如果406处的确定指示检测到损坏,则方法可以进行到412并且给定清单文件可以被修改(例如,由图1的清单修改功能24)为引用媒体内容的另一冗余副本。例如,412处的修改可以包括基于指示媒体内容的相应副本中的媒体内容的离散片段被损坏的评估来修改给定清单文件的给定条目。另外,在元数据包括损坏的相对指示或给定块丢失或者虽然存在但被损坏了的指示,412处的修改可以包括对这样的元数据进行比较以确定哪个清单条目引用了给定媒体内容块的更可靠的副本,所确定的清单条目可用于对条目进行修改,或者如果初始条目更可靠则保留该条目。该方法从412进行到410,其中经修改的清单文件可被存储在存储装置内并被传播到下游。

上面描述的是示例。当然,描述组件或方法的每种可能的组合是不可能,但是本领域普通技术人员将认识到可能由许多其他的组合和排列。因此,本发明意在涵盖落入本申请(包括所附权利要求)范围内的全部这样的改变、修改和变化。本公开或权利要求记载“一”、“一个”、“第一”或“另一”元件及其等价物时应当被解释为包括一个或不止一个这样的元件,既不要求也不排除两个或更多个这样的元件。如本文所使用的,术语“包括”表示包括但不限于,术语“包含”表示包含但不限于。术语“基于”表示至少部分地基于。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1