视频块组合优化的制作方法

文档序号:26012987发布日期:2021-07-23 21:33阅读:83来源:国知局
视频块组合优化的制作方法

【相关申请的交叉引用】

本公开要求2018年12月20日提交的标题为“videochunkcombinationoptimization”的美国非临时申请号16/228,548的优先权,此处为了所有目的以引证的方式将该申请全文并入。



背景技术:

包括音频-视频数据的媒体节目越来越多地分布在电信网络上,以供用户观看和享受。服务通过各种视频递送技术(例如,流式传输(steaming))向用户提供媒体节目。例如,服务可以允许用户使用媒体播放器观看最新的电视节目或影片。在电视节目播送之后,服务可能经历对电视节目的高需求。在一个示例中,媒体节目提供商向服务提供电视节目。然后,服务需要对电视节目进行转码(transcode),然后该服务才可以使电视节目对用户可用。例如,电视节目可能需要被转码成不同的比特率。由于视频的流行,服务希望尽可能快地对媒体节目进行转码。然而,如果转码由一个转码器执行,则服务必须等待直到转码器完成整个电视节目的转码,才能使电视节目对用户可用。典型的用于转码两小时1080p视频的运行时间是使用h.264转码器的大约48小时。而且,如果使用例如4k分辨率甚至更高的较高视频分辨率视频和例如高效率视频编码(hevc)/h.265或vp9的更复杂的转码技术,则新视频内容的转码时间将显著增加。

除了快速地转码视频之外,服务还希望提供可能的最高质量视频。视频可以由连续的相机镜头组成,镜头可以包含各种视频特性。从视频编码的角度来看,一种对相机镜头进行编码的方式是基于各个相机镜头的特性将不同的编码参数应用于各个不同的相机镜头。这导致以最低比特率具有最高质量的最好压缩结果。然而,由于为各个相机镜头重新配置转码器的复杂性,不使用该方法。相反,转码器通常基于相同的转码参数来编码整个视频。这导致无法实现最高可能质量的转码。

【附图说明】

图1描绘了根据一些实施方式的用于执行块并行转码的简化系统。

图2描绘了根据一些实施方式的用于生成最优编码比特流的过程的示例。

图3示出了根据一些实施方式的列出来自子比特流的块的表。

图4描绘了示出根据一些实施方式的交换率的曲线图的示例。

图5描绘了根据一些实施方式的用于选择已编码比特流的子比特流块的方法的简化流程图。

图6描绘了根据一些实施方式的确定子比特流块之间的交换率的示例。

图7a描绘了示出根据一些实施方式的从锚定子比特流块s00到其他子比特流块s01、s02、s03和s04的交换率的曲线图。

图7b示出了根据一些实施方式的来自某组锚定块的各种子比特流块组合的示例的曲线图720。

图7c描绘了示出根据一些实施方式的选择另一子比特流块的示例的曲线图。

图8示出了根据一些实施方式的替换子比特流块的选择的示例。

图9描绘了一个根据实施方式的经由一个或多个通信网络与多个客户端装置通信的视频流系统。

图10描绘了用于观看视频内容和广告的设备的图解视图。

【具体实施方式】

本文描述了用于视频转码系统的技术。在以下描述中,为了说明的目的,阐述了大量示例和具体细节,以便提供一些实施方式的彻底理解。由权利要求限定的一些实施方式可以单独地或与下面描述的其它特征组合地包括这些示例中的一些或全部特征,并且还可以包括本文所述的特征和概念的修改和等同物。

一些实施方式使用不同的转码参数来执行视频的块的多遍转码。这在使用相同的转码参数转码的整个子比特流内生成块的多个子比特流,但是各个子比特流使用不同的转码参数来编码。单个子比特流可能不包括如背景技术中讨论的包括全部最优的特性的块。然而,另一子比特流可能包括可基于目标(例如目标质量)为最优的一个或多个块。然而,找到正确的组合可能是困难的,因为仅从各个比特流选择具有最高质量的块可能不满足目标。因此,一些实施方式通过基于目标从子比特流中选择块以获得用于给定视频的最优转码比特流来确定最优块组合。该过程通过最小化计算并且还通过最小化选择该组合所花费的时间来确定最优块组合。这在对视频进行转码以便在视频递送服务上发布时是重要的。

系统概述

图1描绘了根据一些实施方式的用于执行块并行转码的简化系统100。系统100对源视频资产进行转码,该源视频资产可以是任何类型的视频,例如用于电视节目、影片或视频剪辑。源视频可能需要被转码成一个或多个格式,例如一个或多个比特率,并且还需要在特定时间内,例如在接收视频的24小时内。为了提高源视频的转码质量,系统100可以使用本文所述的块并行转码技术。

块分割器102接收源视频,并且可以将源视频分割成多个块。块可以是源视频中的视频的一部分。例如,块分割器102可以接收具有视频全长的源视频的文件,然后将视频分割成多个块。

在一些示例中,块分割器102可以首先确定源视频的块边界。块可以定义将由转码单元104-1至104-n中的一个转码的块的边界。块可以包括定义块的起点的左边界和定义块的终点的右边界。块可以在镜头、场景或视频中发现的其他边界处形成。

转码单元104可以是配置在计算机处理单元(cpu)上的软件视频处理器/转码器、具有图形处理单元(gpu)的硬件加速视频处理器/转码器、或现场可编程门阵列(fpga)和/或在专用集成电路(asic)中实施的硬件处理器/转码器。各个转码单元104可以位于不同的装置中、相同的装置中,或者组合到多个装置中。在一些实施方式中,云计算环境中的转码单元104的数量可以根据块分割器102输出的块的数量来配置。转码可以是从一种数字格式到另一种数字格式的转换。转码可以涉及对源格式进行解码并将源视频转码为另一数字格式,或者将源视频转换为具有特定分辨率、帧速率、比特率、编解码器等的视频。而且,转码可以是将模拟源内容转换为数字格式。如所使用的,术语转码可以包括编码。

转码单元#1到#(n)(104-1到104-n)接收块并并行地对块进行转码。例如,转码单元#1接收块#1;转码单元#2接收块#2;转码单元#(n)接收块#(n)。尽管转码单元可以每个源视频仅处理一个块,但是可以的是转码单元104可以每个源视频处理多于一个块。然而,对于完整的并行转码,块的数量可以等于转码单元104的数量。

转码单元104可以接收视频块,并使用不同的参数多次编码该块。例如,转码单元104对相同的块进行转码以生成块的在不同质量水平和比特率下的多个版本。块的特性可能导致块的版本具有不同的质量水平和比特率。例如,当调节转码参数时,一些块可能经历质量的提高或降低。这些参数包括但不限于目标比特率、质量因子(如量化参数(qp)或恒定速率因子(crf))、分辨率、帧速率、帧类型、帧结构和其它转码器配置。然后,转码单元104输出具有块的不同转码遍数的子比特流。

各个转码单元104可执行不同块的多遍转码。在其它示例中,转码单元104中的一个可对多个块进行转码,或转码单元104中的一个可对所有块进行转码。然而,并行地转码块可以更快地编码视频。在其它实施方式中,转码单元104可以用不同的参数对整个视频进行转码。然后,将转码后的视频分割成子比特流块。

块组装器106接收n个子比特流,例如来自各个转码单元104的子比特流。然后,块组装器106从子比特流组装块以生成组装的比特流。组装的比特流是用于源视频的单个转码比特流。块组装器106根据基于目标(例如最终组装比特流所期望的目标质量)产生块的最优组合的过程从各个子比特流选择一个块。以下将更详细地描述该过程。然后,块组装器106将所选择的块组装到一起成为组装的比特流。

块验证器108接收组装的比特流并且验证比特流。块验证器108的验证可以基于不同的因素来检查组装的比特流。例如,因素可包括完整性、正确性、总体质量和跨块质量。完整性检查不存在缺失块,正确性检查块处于正确顺序,总体质量检查总体比特率符合任何比特率要求,并且跨块质量检查比特率和质量跨块的波动在预定义条件内。

块并行调度器110可以从块分割器102、转码单元104、块分割器106和块验证器108收集信息,以协调源视频的转码的各个阶段的调度。块并行调度器110可协调块并行转码以实现最优的块并行转码结果。例如,块并行调度器110可调度块分割器102以将源视频分割成块。然后,块并行调度器110配置所需的转码单元104的数量,并且调度转码单元104处的转码。其后,块并行调度器110调度块组装器106以将子比特流组装成组装的比特流。然后,块并行调度器110调度块验证器108以验证组装的比特流。

块生成

在一些实施方式中,块分割器102使用不同的过程为源视频生成块边界。例如,可以使用固定长度块和固定计数块。对于固定长度的块,块分割器102每t秒的源视频生成块边界。对于固定计数块过程,给定c的固定计数,块分割器102生成块边界以生成c个固定长度块。可以的是最后一个块可以与其它固定长度块的长度不同。

生成块边界的其他方法包括使用场景变化块边界、瞬时解码器刷新(idr)块边界、i帧边界或固定尺寸/类似尺寸块边界。对于场景变化块边界,块分割器102分析源视频以确定何时发生场景变化。例如,场景变化可以是当视频中的大量内容由于场景从一个位置变到另一位置而变化时。而且,可以在不同的相机镜头处确定场景变化块。在一些实施方式中,块分割器102基于场景变化的边界何时发生来生成源视频中的块边界以生成可变长度块。

idr帧存在于某些转码协议中,例如h.264/avc、运动图像专家组(mpeg)4等。idr帧可以是在一起转码的一组图片中转码的第一图片。尽管描述了idr帧,但是也可以使用其它帧,例如i帧。通常,idr帧或i帧可以不参考任何其它帧来转码。块分割器102可以确定idr帧的位置,然后使用idr帧的位置作为边界在源视频中生成块边界。所得到的块可以取决于源视频中的idr位置而具有可变长度。各个块的尺寸将不相同,因为块边界可在idr帧出现时的情况下发生。

固定尺寸或类似尺寸的块与固定长度块的不同之处在于块的尺寸不取决于长度。即,尺寸可以是块中的字节数量。当块的网络转换效率被优化时,可以使用该尺寸,因为网络可以递送相同尺寸的块。块分割器102每t个字节的源视频生成块边界。

如上所述,视频由连续的相机镜头组成,这些镜头可以包含不同的视频特性,例如亮度、场景、主题、纹理、运动等。从视频编码的角度来看,最优转码过程是将不同的转码参数应用到不同的镜头以获得最佳的压缩结果。然而,最优转码过程可能不满足视频的目标要求。例如,最优转码过程可以具有最高可能的质量,但是视频的总比特率可能高于期望的比特率。然而,考虑到各个块的所有不同版本,选择最优组合是耗时的过程。因此,一些实施方式有效地选择满足目标的最优组合。在使用考虑块的不同版本之间的质量和比特率的比率的概念来选择块的一个版本之前,该选择还全局地考虑多个块的不同组合,如将在下面描述的。

图2描绘了根据一些实施方式的用于生成最优编码比特流的过程的示例。在202处,将视频分割成多个块。块可以是视频的一部分,并且块在视频中被顺序地找到,然后被称为chunk0、chunk1...chunki...chunkn。在204处,转码单元104将各个块转码为多个子比特流。子比特流是使用不同的转码参数对块的转码。

各个子比特流块由图2中的标识符表示,该标识符包括下标“xn”,例如“00”、“01”、“10”、“11”等。下标标识符的第一个数字标识视频中的块位置,例如数字三是视频中的第三个顺序的块。第二个数字指代使用不同的转码参数执行的转码遍数。以转码单元#0中的过程为例,chunk0的第一遍转码结果被标识为sub-bitstream00,chunk0的第二遍转码结果被标识为sub-bitstream01。

在生成子比特流之后,在206处,块组装器106从子比特流生成块的最优组合。下面将更详细地描述从子比特流中选择块的过程。在该示例中,块组装器106已经在208-1处从sub-bitstream01中选择了块;在208-2处从子比特流sub-bitstream10选择第二块;在208-3处从子sub-bitstreamij选择块;并且在208-4处从sub-bitstreamnj子比特流选择块。已经为视频的各个部分选择了块。在206处,所选择的块形成编码比特流。从不同比特流中选择块需要块组装器106分析许多不同的变量。现在,下面将描述用于选择这些块的块组合过程。

最优块组合过程

图3示出了根据一些实施方式的列出来自子比特流的块的表302。子比特流中的各个块可以具有不同的特性,例如不同的质量测量和比特率。质量测量可以基于一个或多个特性,例如量化参数、分辨率、帧速率、帧类型、帧结构等。块组装器106可基于质量(例如质量测量之一或质量测量的组合)对各个子比特流块进行排序。

在表302中,示出了从最大质量到最小质量的子比特流块。子比特流块可被称为sxx,其中“xx”可以是两个数字。第一数字可指示块编号,且第二数字指示转码遍数。对于所有子比特流块,第二数字由“x”表示,因为从最大质量到最小质量的顺序可变化。例如,对于第一块s0x,最大质量子比特流块可以是第一转码遍数,并且对于第二子比特流块s1x,最大质量子比特流块可以来自第五转码遍数,等等。

存在子比特流块的mn个组合。即,组合来自各个子比特流的一个块导致块组装器106分析的mn个不同可能组合,以选择最终编码比特流的组合。在组合中,存在被称为qualitymax的最大质量和被称为qualitymin的最小质量。下面示出了表示最大质量和最小质量的公式:

最大质量由表302的第一行上的块的总和表示,而最小质量由表302的最后一行上的块的总和表示。然而,最大质量或最小质量可能不满足针对视频设置的目标。相反,可能需要具有在最大质量与最小质量之间的质量的块的一些其他组合来满足目标。即,生成比特流的过程可能比仅选择形成最大质量比特流的子比特流块更复杂,因为最大质量比特流可能具有使得使用该组合不可行的特性,例如具有过高的比特率。而且,使用自适应比特率递送,视频递送系统可能要求将视频转码成不同质量水平(和/或比特率)的多个比特流。视频递送系统可以尝试实现比特率范围内的某个质量水平,例如低、中和高比特率范围可以具有指定的质量水平。因此,块组装器106尝试选择包括最低比特率但满足比特流的目标质量水平的子比特流块。块组装器106选择总体质量满足目标但具有最低可能比特率的子比特流块的组合。

目标质量

目标质量可以由不同的度量或度量的组合来量化,例如客观度量或主观度量。客观度量可以是信噪比,例如峰值信噪比(psnr)、结构相似性指数(ssim)、视频多方法评估融合(vmaf)等。psnr可以测量信号的最大可能功率与破坏性噪声的功率之间的比率。ssim可预测所得视频的感知质量。vmaf可以是基于失真视频序列中的参考的视频质量度量。主观质量可以是基于某种算法生成的测试分数。

将描述目标质量的不同示例。一个目标质量可以是转码的比特流的总质量。另一目标质量可以是转码的比特流的平均质量。一个平均质量可为每一块中的中间子比特流的平均质量,该平均质量可由以下公式表示:

另一目标质量可为对应于预定默认转码遍数的每一块的子比特流块的平均质量。例如,各个块的第k遍转码可被设置为预定义的默认转码遍数,该遍数将生成sub-bitstream0k、sub-bitstream1k...sub-bitstreamnk,其中,k在【0,m】的范围内。预定默认转码遍数的选择规则可以凭经验确定或者基于某些先前的估计。该平均目标质量可以被定义为:

目标质量可以由用户调节,其中,可调节的范围被称为“delta”,可以由以下公式表示:

target_quality=min(max(basic_target_quality+delta,qualitymin),qualitymin)

以上方程可以保证target_quality的值在【qualitymin,qualitymax】的范围内。参数delta可以用于平衡最终视频转码质量与比特率。参数delta可以在转码过程期间自动地导出或者由用户设置。例如,取决于正产生的子比特流的质量,可调节基本目标质量,例如如果正生成大部分较低质量的块,那么可降低基本目标质量。或者,用户可以观察从转码生成的质量,并设置不同的基本目标质量。

交换率

选择满足目标质量的组合需要测试不同的组合。块组装器106使用交换率来评估应针对来自所有子比特流的各个块选择哪一子比特流块。交换率可以是锚定子比特流块与另一子比特流块(称为当前子比特流块)之间的质量与比特率之间的变化率。锚定子比特流块和当前子比特流块是针对视频中的一个块,例如chunk0,但是已经使用不同的转码参数进行了转码。交换率可以定义如下:

两个子比特流块之间的交换率可以量化当用当前子比特流块替换锚定子比特流块(例如使用子比特流块si(j+n)替换子比特流块sij)时每降低单位质量会降低多少比特率的变化率。使用交换率允许块组装器106全局地评估所有块以及替换组合中的子比特流块的效果。交换率还允许块组装器106用较少的比较更快地选择子比特流块的最优组合,如将在下面更详细地描述的。

图4描绘了示出根据一些实施方式的交换率的曲线图400的示例。图400的x轴是比特率,图400的y轴是质量。在402处,锚定子比特流块sij是起点,并且在404处,终点是子比特流块si(j+n)。交换率可以等于点402与点404之间的线的斜率。从402处的点到404处的点,质量与比特率一起降低。因此,用另一子比特流块si(j+n)替换锚定子比特流块sij除了降低比特率之外,还降低质量。线的斜率可以确定多少质量被降低与多少比特率被降低。

在一些实施方式中,块组装器106尝试选择降低质量但也最大程度地降低比特率的子比特流块。比如,从点402到点406的线的斜率可以降低与点404相同量的质量,但是比点404更进一步降低比特率。这可能是更期望的,因为相同的质量降低量导致比特率的甚至更多的降低。然而,从点402到点408的线的斜率降低了与点404相同量的质量,但是比特率降低较少。因此,在点408处用块替换锚定子比特流块将不会同样多地降低比特率,但导致相同的质量降低。对于相同的质量降低量,比特率的较小降低不如在比特率降低较大的情况下降低相同量的质量更期望,因为当将视频发送到客户端装置时,较低的比特率使用较少的带宽。

交换率值是量化用于将锚定子比特流块与另一子比特流块交换的斜率的测量。在一些实施方式中,使用交换率,块组装器106选择具有最小斜率的不同子比特流块来生成编码比特流。图5描绘了根据一些实施方式的用于选择已编码比特流的子比特流块的方法的简化流程图500。在502处,块组装器106选择子比特流块的初始组合。初始组合可以为来自各个子比特流的第一子比特流块,例如子比特流块s00、s10、s20...sn0。表302中的第一子比特流块具有最高质量。然而,可使用其它初始组合,例如子比特流块、中等质量子比特流块和最低质量子比特流块的随机选择等。

在504处,块组装器106计算初始组合的质量。块组装器106基于如何定义目标质量来计算质量。例如,如果目标质量是整个组合的平均质量,则块组装器106计算组合的平均质量,但是可以使用其他质量测量。在506处,块组装器106确定质量测量是否满足目标质量。在一些示例中,块组装器106确定质量测量是否大于目标质量。如果质量测量不大于目标质量,那么该组合满足目标质量的要求,并且在516处,块组装器106可以将该组合存储为最优组合。然而,如果质量大于目标质量,那么块组装器106需要通过替换子比特流块中的一个或多个来降低目标质量。

因此,在508处,块组装器106计算来自不同子比特流的块到锚定子比特流块的交换率。图6描绘了根据一些实施方式的确定子比特流块之间的交换率的示例。一个锚定子比特流块可以是子比特流块s0x。在602、604、606和608处示出了其它子比特流块之间的组合。块组装器106可以计算块s0x的锚定子比特流块和其他子比特流块之间的交换率。类似地,块组装器106针对视频中的所有其他锚定块,例如锚定块s1x、块s2x、块six、块snx,执行该计算。

图7a描绘了示出根据一些实施方式的从锚定子比特流块s00到其他子比特流块s01、s02、s03和s04的交换率的曲线图700。不同的交换率可以由从点701到点702、704、706和708的线的斜率来表示。当选择一个子比特流块时,块组装器106选择与最大交换率相关联的子比特流块,这意味着交换率在曲线图700中具有最小斜率。这意味着用另一子比特流块替换锚定子比特流块s00可以以与其他子比特流块相比相同的质量损失来导致最大比特率降低。在一些示例中,质量可能不是完全相同的,并且在这种情况下,块组装器106选择与最大交换率或最小斜率相关联的子比特流块以随着比特率的最大降低而最少地降低质量。块组装器106选择以比特率的最大降低导致质量的最小降低的子比特流块,使得迭代过程可以最终导致达到比特率的降低最大的目标质量。

图7a示出了仅考虑一个块和对应的子比特流块的一种情况。然而,在其他场景中,块组装器106可一起考虑所有锚定块的所有子比特流块组合。图7b示出了根据一些实施方式的来自某组锚定块的各种子比特流块组合的示例的曲线图720。尽管未示出所有交换率,但示出了从不同的锚定子比特流块到其他子比特流块的一些代表性交换率。标识符sxx->syy表示用于锚定子比特流块的标识符到用于另一子比特流块的标识符。

块组装器106可选择包括最大交换率的子比特流块的组合,如722处所示。该组合是从固定子比特流块s30到子比特流块s35。这用来自转码遍#5的第三子比特流块替换来自第一转码遍#0的视频的第三子比特流块。如果块组装器106选择其它子比特流块中的一个来交换,则质量降低可能大于期望,并且无法计算具有最低比特率的最高质量组合。进一步地,如果存在导致相同质量降低的其他组合,则块组装器106选择具有比特率的最大降低的组合。

返回参考图5,在510处,块组装器106选择具有最高交换率的子比特流块。在512处,块组装器106使用所选择的子比特流块来替换锚定子比特流块。在以上示例中,在子比特流块的组合中,子比特流块s30被子比特流块s35替换。在一些实施方式中,块组装器106仅替换子比特流块的组合中的单个子比特流块。块组装器106可仅替换一个子比特流块,因为单个交换可导致最优组合,这导致找到最优组合的最小数量的计算。而且,交换率决定基于列出交换率的表格。每次发生一次交换时,新选择的子比特流块将更新交换率表的一部分。

在514处,块组装器106计算新组合的质量测量。然后,过程重复到506以确定质量测量是否大于目标质量。如果质量测量仍然大于目标质量,则过程在508、510、512和514处继续。图7c描绘了示出根据一些实施方式的选择另一子比特流块的示例的曲线图740。从子比特流块s30到子比特流块s35的子比特流块组合已被消除,因为子比特流块s35已替换组合中的锚定子比特流块s30。然而,剩余的子比特流块交换率保持不变。被替换的块的交换率变化。例如,如果块#2改变,例如子比特流块2x切换至子比特流块2y,则块组装器106基于子比特流块2y的新锚定块来更新与块#2有关的交换率。块2x可以是具有转码遍数“x”的块#2,而块2y可以是具有转码遍数“y”的块#2。在交换之前,交换率表包含块#3的交换率{2x到2x+1,2x到2x+2等}。这在确定交换率时使用块2x作为锚定块。在交换之后,块组装器106将这些交换率条目更新为{2y至2y+1,2y至2y+2等}。这在确定交换率时使用块2y作为锚定块。块组装器106选择具有最高交换率的下一替换子比特流块。例如,在742处,选择子比特流块s21来替换组合的第二块的锚定子比特流块s20。这在最大比特率降低的情况下降低了质量。744和746处的一些其它可能的交换导致相同的质量降低,但比特率的降低较小。块组装器106不选择这些交换,因为742处的交换被认为更好,因为742处的交换在相同的质量降低的情况下具有更多比特率降低。块组装器106然后将新的质量测量与目标质量进行比较,并且以上过程继续,直到达到目标比特率为止。返回参考图5,在516处,当确定最优组合时,块组装器106存储该最优组合。

图8示出了根据一些实施方式的替换子比特流块的选择的示例的曲线图800。802处的起点示出了组合的质量和比特率测量。在804处,选择子比特流块s35替换子比特流块s30降低了质量和比特率,如图所示。然后,在806处,线示出了当子比特流块s21替换子比特流块s20时发生的质量和比特率的降低。然后,最后,在808处,当子比特流块s67替换子比特流块s63时,质量和比特率降低满足目标质量。

块组装器106连续地替换子比特流块,直到组合的质量测量满足目标质量为止。满足目标质量可以等于目标质量、小于目标质量、大于目标质量或满足目标质量的其它方式。最终组合的终点可以是如由目标质量测量的子比特流的最佳组合。即,最佳组合满足具有可能满足目标质量的比特率的最大降低的目标质量。

下面描述一些实施方式的伪代码:

结论

使用交换率改进了块的最优组合的选择,以满足具有最大比特率降低的质量目标,因为块组装器106可能不需要测试每个单个组合。进一步地,块组装器106可以更快地确定最优组合,因为在生成最优组合时考虑了所有块的交换率。这比一次局部优化一个块更快。进一步地,通过全局优化块质量,所得到的最优组合可以具有更高的质量。

系统

本文公开的特征和方面可以结合经由一个或多个通信网络与多个客户端装置通信的视频流系统900来实施,如图9所示。描述视频流系统900的方面仅仅是为了提供用于实现根据本公开准备的内容的分发和递送的应用的示例。应当理解,本技术不限于流视频应用,并且可以适用于其它应用和递送机制。

在一个实施方式中,媒体节目提供商可以包括媒体节目库。例如,媒体节目可以通过站点(例如,网站)、应用或浏览器来聚集和提供。用户可以访问媒体节目提供商的站点或应用并请求媒体节目。用户可以被限制为仅请求由媒体节目提供商提供的媒体节目。

在系统900中,视频数据可以从一个或多个源获得,例如从视频源910获得,以用作到视频内容服务器902的输入。输入视频数据可以包括任何适当数字格式的原始或编辑的基于帧的视频数据,例如,运动图像专家组(mpeg)-l、mpeg-2、mpeg-4、vc-1、h.264/高级视频编码(avc)、高效率视频编码(hevc)或其他格式。在另选方案中,可以以非数字格式提供视频,并使用扫描仪和/或转码器将其转换为数字格式。输入视频数据可以包括各种类型的视频剪辑或节目,例如,电视剧集、电影、以及作为消费者感兴趣的主要内容而产生的其他内容。视频数据还可以包括音频,或者可以仅使用音频。

视频流系统900可以包括分布在一个或多个计算机上的一个或多个计算机服务器或模块902、904和/或907。各个服务器902、904、907可以包括,或者可以可操作地耦合到一个或多个数据储存器909,例如数据库、索引、文件或其他数据结构。视频内容服务器902可以访问各种视频片段的数据储存器(未示出)。视频内容服务器902可以按照与客户端装置通信的用户接口控制器的指示来提供视频片段。如本文所用的,视频片段指代基于帧的视频数据的确定部分,例如可以在流视频会话中使用以观看电视剧集、电影、记录的现场表演或其它视频内容。

在一些实施方式中,视频广告服务器904可以访问被配置为用于特定广告商的广告或消息的相对短的视频(例如,10秒、30秒或60秒视频广告)的数据储存器。广告可以作为某种支付的交换提供给广告商,或者可以包括系统900的促销消息、公共服务消息或一些其它信息。视频广告服务器904可以按照用户接口控制器(未示出)的指示来提供视频广告片段。

视频流系统900还可以包括系统100。

视频流系统900还可以包括将视频内容和视频广告集成到流视频片段中的集成和流式传输部件907。例如,流式传输部件907可以是内容服务器或流媒体服务器。控制器(未示出)可以基于任何适当的算法或过程来确定流视频中的广告的选择或配置。视频流系统900可以包括图9中未描绘的其他模块或单元,例如管理服务器、商业服务器、网络基础设施、广告选择引擎等。

视频流系统900可以连接到数据通信网络912。数据通信网络912可以包括局域网(lan)、广域网(wan)(例如,因特网)、电话网、无线蜂窝电信网络(wcs)914、或者这些或类似网络的某种组合。

一个或多个客户端装置920可以经由数据通信网络912、无线蜂窝电信网络914和/或另一网络与视频流系统900通信。这种客户端装置可以包括例如一个或多个膝上型计算机920-1、台式计算机920-2、“智能”手机920-3、平板装置920-4、支持网络的电视920-5或其组合,经由用于lan的路由器918、经由用于无线蜂窝电信网络914的基站917或经由某一其他连接。在操作中,响应于从用户输入装置或其他输入接收的用户输入,这种客户端装置920可以向系统900发送和接收数据或指令。作为响应,系统900可以响应于对媒体节目的选择而将来自数据储存器909的视频片段和元数据提供给客户端装置920。客户端装置920可以使用显示屏、投影仪或其他视频输出装置在媒体播放器中输出来自流视频片段的视频内容,并且接收用于与视频内容交互的用户输入。

音频-视频数据的分发可以使用各种方法(例如,流式传输)通过计算机网络、电信网络和这些网络的组合从流式传输部件907到远程客户端装置来实施。在流式传输中,内容服务器连续地将音频-视频数据流式传输到至少部分地在客户端装置上操作的媒体播放器部件,客户端装置可以与从服务器接收流数据同时地播放音频-视频数据。尽管讨论了流式传输,但是可以使用其他递送方法。媒体播放器部件可紧接在从内容提供商接收视频数据的初始部分之后发起对该数据的播放。传统的流式传输技术使用单个提供商向一组最终用户递送数据流。可能需要高带宽和处理能力来将单个流递送给大量听众,并且提供商的所需带宽可能随着最终用户的数量增加而增加。

流媒体可以按需或实况地传送。流式传输使得能够在文件内的任何点处立即回放。最终用户可跳过媒体文件以开始回放或将回放改变到媒体文件中的任何点。因此,最终用户不需要等待文件渐进地下载。通常,流媒体从具有高带宽能力的几个专用服务器经由专用装置来递送,该专用装置接受对视频文件的请求,并且利用关于那些文件的格式、带宽和结构的信息,以播放视频所需的速率来仅递送播放视频所必需的数据量。流媒体服务器还可以考虑到传输带宽和目的地客户端上的媒体播放器的能力。流式传输部件907可以使用控制消息和数据消息与客户端装置920通信,以在播放视频时适应变化的网络条件。这些控制消息可以包括用于启用控制功能的命令,控制功能诸如快进、快退、暂停或在客户端处寻找文件的特定部分。

由于流式传输部件907仅在需要时并且以所需的速率来发送视频数据,因此可以维持对所服务的流的数量的精确控制。观众将不能通过较低数据速率传输介质观看高数据速率视频。然而,流媒体服务器(1)向用户提供对视频文件的随机访问,(2)允许监测谁正在观看什么视频节目以及观看它们多长时间,(3)更高效地使用传输带宽,因为仅传输支持观看体验所需的数据量,以及(4)视频文件不存储在观看者的计算机中,而是被媒体播放器丢弃,由此允许对内容的更多控制。

流式传输部件907可以使用基于tcp的协议,例如http和实时消息递送协议(rtmp)。流式传输部件907还可以递送网上直播,并且可以进行多播,这允许多于一个客户端调谐到单个流中,由此节省带宽。流媒体播放器可以不依赖于缓冲整个视频来提供对媒体节目中的任何点的随机访问。相反,这通过使用从媒体播放器发送到流媒体服务器的控制消息来实现。用于流式传输的其他协议是超文本传输协议(http)直播(hls)或通过http的动态自适应流式传输(dash)。hls和dash协议经由小片段的播放列表通过http递送视频,这些小片段通常从一个或多个内容递送网络(cdn)以各种比特率可用。这允许媒体播放器在逐个片段的基础上切换比特率和内容源两者。切换有助于补偿网络带宽变化以及在视频回放期间可能发生的基础设施故障。

通过流式传输的视频内容的递送可以在各种模型下完成。在一个模型中,用户为观看视频节目付费,例如,为访问媒体节目库或一部分受限媒体节目付费,或者使用按次付费服务。在广播电视在其开始之后不久广泛采用的另一模型中,赞助商为媒体节目的呈现付费,以换取在节目呈现期间或与节目呈现相邻地呈现广告的权利。在一些模型中,广告在预定时间被插入视频节目中,这些时间可以被称为“广告位”或“广告插播间隙”。对于流视频,媒体播放器可以被配置成使得客户端装置在指定的广告位期间不能在没有播放预定广告的情况下播放视频。

参考图10,例示了用于观看视频内容和广告的设备1000的图解视图。在所选实施方式中,设备1000可以包括可操作地耦合到处理器存储器1004的处理器(cpu)1002,该存储器保持二进制编码的功能模块以供处理器1002执行。这种功能模块可以包括用于处理诸如输入/输出和存储器访问的系统功能的操作系统1006、用于显示网页的浏览器1008和用于播放视频的媒体播放器1010。存储器1004可以保持图10中未示出的附加模块,例如用于执行本文别处描述的其他操作的模块。

总线1014或其它通信部件可支持设备1000内的信息的通信。处理器1002可以是专门或专用微处理器,该微处理器被配置为通过执行定义特定任务的机器可读软件代码来执行根据本文公开的特征和方面的特定任务。处理器存储器1004(例如,随机存取存储器(ram)或其它动态存储装置)可以连接到总线1014或直接连接到处理器1002,并且存储信息和要由处理器1002执行的指令。存储器1004还可以在执行这种指令期间存储临时变量或其他中间信息。

存储装置1024中的计算机可读介质可以连接到总线1014,并且存储用于处理器1002的静态信息和指令;例如,存储装置(crm)1024可以在设备1000断电时存储模块1006、1008、1010和1012,当设备1000通电时可以从存储装置将模块加载到处理器存储器1004中。存储装置1024可以包括保持信息、指令或其某种组合的非暂时性计算机可读存储介质,例如,当由处理器1002执行时使得设备1000被配置为执行如本文所述的方法的一个或多个操作的指令。

通信接口1016还可以连接到总线1014。通信接口1016可以可选地经由路由器/调制解调器1026和有线或无线连接在设备1000与一个或多个外部装置(例如,流式传输系统900)之间提供或支持双向数据通信。在另选方案中,或另外,设备1000可包括连接到天线1029的收发器1018,设备1000可通过收发器与无线通信系统的基站或与路由器/调制解调器1026无线地通信。在另选方案中,设备1000可经由局域网、虚拟专用网络或其它网络与视频流系统900通信。在另一另选方案中,设备1000可并入作为系统900的模块或部件,并且经由总线1014或通过某一其它模态与其它部件通信。

设备1000可以(例如,经由总线1014和图形处理单元1020)连接到显示单元1028。显示器1028可以包括用于向设备1000的操作者显示信息的任何适当配置。例如,显示器1028可以包括或利用液晶显示器(lcd)、触摸屏lcd(例如,电容显示器)、发光二极管(led)显示器、投影仪或其他显示装置,以在视觉显示器中向设备1000的用户呈现信息。

一个或多个输入装置1030(例如,字母数字键盘、麦克风、小键盘、遥控器、游戏控制器、相机或相机阵列)可以经由用户输入端口1022连接到总线1014,以向设备1000传送信息和命令。在所选实施方式中,输入装置1030可以提供或支持对光标定位的控制。也称为定点装置的这种光标控制装置可以被配置为鼠标、跟踪球、跟踪垫、触摸屏、光标方向键或用于接收或跟踪物理移动并将该移动转换成指示光标移动的电信号的其他装置。光标控制装置可以例如使用触敏屏幕并入显示单元1028中。光标控制装置可以将方向信息和命令选择传送到处理器1002,并且控制显示器1028上的光标移动。光标控制装置可以具有两个或更多个自由度,例如允许该装置指定平面或三维空间中的光标位置。

一些实施方式可以在非暂时性计算机可读存储介质中实施,以供指令执行系统、设备、系统或机器使用或与其结合使用。计算机可读存储介质包含用于控制计算机系统执行由一些实施方式描述的方法的指令。计算机系统可以包括一个或多个计算装置。当由一个或多个计算机处理器执行时,指令可以被配置为执行在一些实施方式中描述的操作。

如在本文的描述中以及贯穿所附权利要求书所使用的,“一”、“一个”和“该”包括复数引用,除非上下文明确另外规定。而且,如在本文的描述中以及贯穿所附权利要求书所使用的,“中”的含义包括“中”和“上”,除非上下文明确另外规定。

以上描述例示了各种实施方式以及可以如何实施一些实施方式的方面的示例。上述示例和实施方式不应被认为是仅有的实施方式,并且被呈现以例示如由所附权利要求限定的一些实施方式的灵活性和优点。基于以上公开内容和所附权利要求,在不背离由权利要求限定的本发明的范围的情况下,可以采用其它布置、实施方式、实施方案和等同物。

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