用于实现视频实时转码预处理的方法和装置与流程

文档序号:11931529阅读:259来源:国知局
用于实现视频实时转码预处理的方法和装置与流程

本发明涉及网络视频领域,特别涉及一种用于实现视频实时转码预处理的方法和装置。



背景技术:

随着“三网融合”和多媒体技术快速发展,尤其是网络多媒体应用日趋普及,异构网络和终端不断融合,视频数据需要根据不同的应用需求而采用不同的编码格式及参数配置。为了解决视频数据在不同平台的分发与共享的问题,目前一般采用转码技术,将源素材转换为目标平台需要的编码格式,并根据具体环境进行参数设置,以适应实际需要。

随着4K视频业务的发展,视频数据量急剧增大,如何对4K大型视频文件进行转码成为难题,分布式集群转码技术应运而生,传统集群任务按视频固定大小的分割、按图像组(GOP)的分割、按视频切片(Slice)的分割等形式。无论基于上述的那种分割策略,在转码能力异构的环境下都无法保证转码的实时性,也无法利用转码单元的并行转码能力,把视频分割成越来越长的视频段以提升转码效率。



技术实现要素:

本发明实施例提供一种用于实现视频实时转码预处理的方法和装置。通过调度大小不同的视频段到不同处理能力的转码处理单元进行并行转码,保证在视频实时性要求的约束下完成视频段的转码处理,能够在保证转码任务实时的同时,提高转码效率。

根据本发明的一个方面,提供一种用于实现视频实时转码预处理的方法,包括:

在接收到转码任务后,在资源池中选择转码倍数大于预定门限TA 的转码处理单元作为工作处理单元,其中TA与播放最大延迟D及视频分段预定最小值S相关联;

判断T个可选工作处理单元的转码倍数总和是否小于1;

若T个可选工作处理单元的转码倍数总和不小于1,则将源视频进行分割,为T个可选工作处理单元分配相应长度的视频段,以便进行并行转码处理,其中视频段长度与播放最大延迟D、工作处理单元自身的转码倍数和工作处理单元个数T相关联;

将T个可选工作处理单元输出的转码信息进行汇总,以便完成视频转码。

在一个实施例中,预定门限TA=S/(D+S)。

在一个实施例中,将源视频进行分割,为T个可选工作处理单元分配相应长度的视频段的步骤包括:

判断T个可选工作处理单元的转码倍数是否相同;

若T个可选工作处理单元的转码倍数相同,则第n+1次为T个可选工作处理单元分配的视频段长度Sn+1为:

Sn+1=(Sn×(T-1)×A)/(1-A)

其中S1=(A×D)/(1-A),A为工作处理单元的转码倍数,n为大于0的自然数。

在一个实施例中,若T个可选工作处理单元的转码倍数不完全相同,则对于具有最大转码倍数Amax的工作处理单元,第n+1次分配的视频段长度Sn+1为:

Sn+1=(Sn×(T-1)×Amax)/(1-Amax)

其中S1=(Amax×D)/(1-Amax),对于具有非最大转码倍数Am的工作处理单元,第n+1次分配的视频段长度Sm,n+1为:

Sm,n+1=(Am/Amax)×Sn+1

其中Sm,1=(Am/Amax)×S1

在一个实施例中,若T个可选工作处理单元的转码倍数总和小于1,则拒绝转码任务。

根据本发明的另一方面,提供一种用于实现视频实时转码预处理的 装置,包括单元选择模块、倍数总和识别模块、视频分割单元和信息汇总单元,其中:

单元选择模块,用于在接收到转码任务后,在资源池中选择转码倍数大于预定门限TA的转码处理单元作为工作处理单元,其中TA与播放最大延迟D及视频分段预定最小值S相关联;

倍数总和识别模块,用于判断T个可选工作处理单元的转码倍数总和是否小于1;

视频分割单元,用于根据倍数总和识别模块的判断结果,若T个可选工作处理单元的转码倍数总和不小于1,则将源视频进行分割,为T个可选工作处理单元分配相应长度的视频段,以便进行并行转码处理,其中视频段长度与播放最大延迟D、工作处理单元自身的转码倍数和工作处理单元个数T相关联;

信息汇总单元,用于将T个可选工作处理单元输出的转码信息进行汇总,以便完成视频转码。

在一个实施例中,预定门限TA=S/(D+S)。

在一个实施例中,视频分割单元具体判断T个可选工作处理单元的转码倍数是否相同,若T个可选工作处理单元的转码倍数相同,则第n+1次为T个可选工作处理单元分配的视频段长度Sn+1为:

Sn+1=(Sn×(T-1)×A)/(1-A)

其中S1=(A×D)/(1-A),A为工作处理单元的转码倍数,n为大于0的自然数。

在一个实施例中,视频分割单元还用于在T个可选工作处理单元的转码倍数不完全相同时,对于具有最大转码倍数Amax的工作处理单元,第n+1次分配的视频段长度Sn+1为:

Sn+1=(Sn×(T-1)×Amax)/(1-Amax)

其中S1=(Amax×D)/(1-Amax),对于具有非最大转码倍数Am的工作处理单元,第n+1次分配的视频段长度Sm,n+1为:

Sm,n+1=(Am/Amax)×Sn+1

其中Sm,1=(Am/Amax)×S1

在一个实施例中,倍数总和识别模块还用于在T个可选工作处理单元的转码倍数总和小于1时,拒绝转码任务。

本发明根据转码处理单元的运算能力以及转码任务的实时性约束,对源视频进行智能分割,以便将分割为不同大小的视频段调度到对应的转码处理单元进行并行处理,从而能够在保证转码任务实时的同时,提高转码效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明用于实现视频实时转码预处理的方法一个实施例的示意图。

图2为本发明用于实现视频实时转码预处理的装置一个实施例的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1为本发明用于实现视频实时转码预处理的方法一个实施例的示意图。其中:

步骤101,在接收到转码任务后,在资源池中选择转码倍数大于预定门限TA的转码处理单元作为工作处理单元,其中TA与播放最大延迟D及视频分段预定最小值S相关联。

优选的,预定门限TA=S/(D+S)。

例如,播放最大延迟D为20秒,视频分段小于5秒会带来很大的转码效率开销,因此转码倍数应大于5/(20+5)=0.2。即在这种情况下,仅选择转码倍数大于0.2的转码处理单元进行转码处理。

步骤102,判断T个可选工作处理单元的转码倍数总和是否小于1。

为了避免过度占用资源,可在选出的工作处理单元中选出若干个可选工作处理单元,只要能满足转码倍数总和不小于1即可,通常T不大于20。

步骤103,若T个可选工作处理单元的转码倍数总和不小于1,则将源视频进行分割,为T个可选工作处理单元分配相应长度的视频段,以便进行并行转码处理,其中视频段长度与播放最大延迟D、工作处理单元自身的转码倍数和工作处理单元个数T相关联。

步骤104,将T个可选工作处理单元输出的转码信息进行汇总,以便完成视频转码。

在一个实施例中,若T个可选工作处理单元的转码倍数总和小于1, 则表明当前可使用的转码资源无法提供实时转码,在这种情况下可拒绝转码任务。

基于本发明上述实施例提供的用于实现视频实时转码预处理的方法,通过根据转码处理单元的运算能力以及转码任务的实时性约束,对源视频进行智能分割,以便将分割为不同大小的视频段调度到对应的转码处理单元进行并行处理,从而能够在保证转码任务实时的同时,提高转码效率。

下面对源视频进行分割和视频段分配的操作进行具体说明。

上述将源视频进行分割,为T个可选工作处理单元分配相应长度的视频段的步骤可包括:

首先判断T个可选工作处理单元的转码倍数是否相同。若T个可选工作处理单元的转码倍数相同,则第n+1次为T个可选工作处理单元分配的视频段长度Sn+1为:

Sn+1=(Sn×(T-1)×A)/(1-A)

其中S1=(A×D)/(1-A),A为工作处理单元的转码倍数,n为大于0的自然数。

例如,若选出的3个转码处理单元的转码倍数均为0.5,则可按照上述公式计算所分配视频分段的大小,这里仍假设播放最大延迟D为20秒。

第一次分割:S1=(0.5×20)/(1-0.5)=20秒

第二次分割:S2=(S1×(T-1)×A)/(1-A)=(20×2×0.5)/(1-0.5)=40秒

第三次分割:S3=(S2×(T-1)×A)/(1-A)=(40×2×0.5)/(1-0.5)=80秒

……

由此可知,越往后视频分段长度可以越长。

在另一实施例中,若T个可选工作处理单元的转码倍数不完全相同,则对于具有最大转码倍数Amax的工作处理单元,第n+1次分配的视频段长度Sn+1为:

Sn+1=(Sn×(T-1)×Amax)/(1-Amax)

其中S1=(Amax×D)/(1-Amax),对于具有非最大转码倍数Am的工作处 理单元,第n+1次分配的视频段长度Sm,n+1为:

Sm,n+1=(Am/Amax)×Sn+1

其中Sm,1=(Am/Amax)×S1

例如,若选出的3个转码处理单元的转码倍数为0.5、0.5、0.3,即AAB模式,由于3个转码处理单元的转码倍数并不完全相同,因此需要分别进行处理。

对于转码倍数为0.5的2个转码处理单元C1和C2,则可按照上述公式计算所分配视频分段的大小,这里仍假设播放最大延迟D为20秒。

第一次分割:S1=(0.5×20)/(1-0.5)=20秒

第二次分割:S2=(S1×(T-1)×A)/(1-A)=(20×2×0.5)/(1-0.5)=40秒

第三次分割:S3=(S2×(T-1)×A)/(1-A)=(40×2×0.5)/(1-0.5)=80秒

……

由于第3个转码处理单元C3的转码倍数为0.3,C3与C1和C2的转码倍数之比为3/5。因此,对于C3来说,将按照3/5这一比例关系确定视频段长度:

第一次分割:S1=20×(3/5)=12秒

第二次分割:S2=40×(3/5)=24秒

第三次分割:S3=80×(3/5)=48秒

……

图2为本发明用于实现视频实时转码预处理的装置一个实施例的示意图。如图2所示,该装置可包括单元选择模块201、倍数总和识别模块202、视频分割单元203和信息汇总单元204。其中:

单元选择模块201,用于在接收到转码任务后,在资源池中选择转码倍数大于预定门限TA的转码处理单元作为工作处理单元,其中TA与播放最大延迟D及视频分段预定最小值S相关联。

优选的,预定门限TA=S/(D+S)。

倍数总和识别模块202,用于判断T个可选工作处理单元的转码倍数总和是否小于1。

视频分割单元203,用于根据倍数总和识别模块202的判断结果, 若T个可选工作处理单元的转码倍数总和不小于1,则将源视频进行分割,为T个可选工作处理单元分配相应长度的视频段,以便进行并行转码处理,其中视频段长度与播放最大延迟D、工作处理单元自身的转码倍数和工作处理单元个数T相关联。

信息汇总单元204,用于将T个可选工作处理单元输出的转码信息进行汇总,以便完成视频转码。

优选的,倍数总和识别模块202还用于在T个可选工作处理单元的转码倍数总和小于1时,拒绝转码任务。

基于本发明上述实施例提供的用于实现视频实时转码预处理的装置,通过根据转码处理单元的运算能力以及转码任务的实时性约束,对源视频进行智能分割,以便将分割为不同大小的视频段调度到对应的转码处理单元进行并行处理,从而能够在保证转码任务实时的同时,提高转码效率。

在一个实施例中,视频分割单元203具体判断T个可选工作处理单元的转码倍数是否相同,若T个可选工作处理单元的转码倍数相同,则第n+1次为T个可选工作处理单元分配的视频段长度Sn+1为:

Sn+1=(Sn×(T-1)×A)/(1-A)

其中S1=(A×D)/(1-A),A为工作处理单元的转码倍数,n为大于0的自然数。

优选的,视频分割单元203还用于在T个可选工作处理单元的转码倍数不完全相同时,对于具有最大转码倍数Amax的工作处理单元,第n+1次分配的视频段长度Sn+1为:

Sn+1=(Sn×(T-1)×Amax)/(1-Amax)

其中S1=(Amax×D)/(1-Amax),对于具有非最大转码倍数Am的工作处理单元,第n+1次分配的视频段长度Sm,n+1为:

Sm,n+1=(Am/Amax)×Sn+1

其中Sm,1=(Am/Amax)×S1

通过实施本发明,可以得到以下有益效果:

1、本发明不仅根据转码的复杂度进行源视频分割,还适应集群转 码各处理单元的转码能力,制定分割的策略;

2、本发明在实时性约束下,把源视频分割成长度不同的视频段,调度到不同处理能力的转码单元进行转码,保证各转码单元处理的时效性;

3、本发明的智能分割算法,随着集群转码单元的增多和能力的增强,可以把源视频分割成越来越长的视频段,提高了转码的效率;

4、本发明特别适应在云环境下对4K视频进行按需实时转码,这是利用单机对4K流媒体转码的系统不可能达到的,也是现有技术所不具备的功能。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

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