一种动态资源分配的音视频文件转码方法及系统与流程

文档序号:12697382阅读:232来源:国知局
一种动态资源分配的音视频文件转码方法及系统与流程

本发明涉及数字视频处理技术领域,具体涉及一种动态资源分配的音视频文件转码方法及系统。



背景技术:

多媒体包括视频、音频、图像等,已经成为人们工作生活中必不可少的重要组成部分,而针对人们不同的业务需求,一些标准化组织提出了多种音视频编码标准,由于多种标准的同时存在,视频转码技术得到了人们的广泛关注,转码技术得到了进一步的研究和发展。

在音视频处理领域,特别是在电视台、互联网电视、OTT、手机电视等领域对于音视频转码有着大量的需求,因此,需要一套高效快速的音视频转码方案。

由于音视频转码时需要大量的计算资源,为了不使转码服务器过度使用cpu,传统的音视频转码会尽可能的在一台转码服务器上少分配转码任务,以防止转码服务器过度消耗cpu而宕机,因此,传统的音视频转码存在不能充分利用计算资源,转码效率不高的缺点。

另外,传统的音视频转码在资源分配时,将资源设置为静态值,这种设置对于资源需求低的转码任务,容易造成资源的闲置、浪费,而对于资源需求高的转码任务,会造成转码资源不够,导致转码速度降低,影响转码效率。



技术实现要素:

针对传统的音视频转码效率低、资源利用率低的问题,本申请提供一种动态资源分配的音视频文件转码方法及系统。

根据第一方面,一种实施例中提供一种动态资源分配音视频文件转码方法,包括步骤:

接收源视频文件转码请求信息,并将请求信息及转码任务保存至存储队列中,请求信息包括源视频路径和转码输出参数;

通过调度器读取存储队列中的转码任务,并调度工作层将源视频文件进行音视频分离,分别获取音频文件和视频文件;

对所述视频文件进行切片,获取视频文件段,并根据视频文件段的数量动态生成相应数量的转码容器;

根据视频文件段的转码输出参数动态地为各个转码容器分配系统资源;

根据转码容器的资源配置动态地将转码容器分配至转码服务器;

对视频文件段及音频文件进行转码,并将转码后的视频文件段及音频文件合并,获得转码文件。

一种实施例中,根据视频文件段的转码输出参数动态地为各个转码容器分配系统资源,包括步骤:

读取视频文件段的转码输出参数,转码输出参数包括转码类型和分辨率;

根据转码输出参数在预设调查表中查找视频文件段所需的系统资源;

将系统资源分配给转码容器。

一种实施例中,预设调查表为:

一种实施例中,根据转码容器的资源配置动态地将转码容器分配至转码服务器,包括步骤:

读取转码服务器当前剩余资源;

读取转码容器的配置资源;

通过比较当前剩余资源是否大于转码容器的配置资源来决定是否将转码容器分配至转码服务器。

一种实施例中,通过调度器读取存储队列中的转码任务的过程中,还包括根据转码服务器的平均处理请求的数量动态地设置调度器数量的步骤。

一种实施例中,通过调度器读取存储队列中的转码任务的过程中,还包括根据调度器的配置文件中的设置数量动态启动相应数量的调度器的步骤。

一种实施例中,还包括根据调度器处于闲置状态时对其进行销毁的步骤,直至调度器的数量达到配置文件中的设定值为止。

根据第二方面,一种实施例中提供一种动态资源分配的音视频文件转码系统,包括集群转码服务器、管理程序模块和转码容器;

转码容器包括应用层、调度层和工作层;

应用层用于接收源视频文件转码请求信息,并将请求信息及转码任务保存至存储队列中,请求信息包括源视频路径和转码输出参数;

调度层用于读取所述存储队列中的转码任务,并调度工作层将源视频文件进行音视频分离,分别获取音频文件和视频文件;

工作层用于对视频文件进行切片,获取视频文件段,并根据视频文件段的数量动态生成相应数量的转码容器;

管理程序模块用于根据视频文件段的转码输出参数动态地为各个转码容器分配系统资源,并根据转码容器的资源配置动态地将转码容器分配至转码服务器;

转码服务器用于根据分配的转码容器对视频文件段及音频文件进行转码,并将转码后的视频文件段及音频文件合并,获得转码文件。

一种实施例中,调度层还用于根据转码服务器的平均处理请求的数量动态地设置调度器的数量。

一种实施例中,调度层还用于根据配置文件中的设置数量动态启动相应数量的调度器。

依据上述实施例的音视频文件转码方法,由于在对视频文件段转码的过程中,根据视频文件段的输出参数动态地为各个转码容器分配系统资源,在系统资源有限的情况下,可以最大程度地利用转码资源,使整个系统的资源配置达到最优,避免了转码资源的浪费,同时,根据转码容器的资源配置动态地将其分配至转码服务器,避免了转码服务器长时间超负荷运转,有效地提高了转码效率,另外,通过动态地调节调度器的数量以提高系统的可扩容性,如,在系统处理能力足够的情况下,可以增加调度器的数量以提升系统的并行处理能力,提升系统运行效率,反之,减少调度器的数量以减少系统资源的消耗。

附图说明

图1为音视频文件播放示意图;

图2为音视频文件转码方法流程图;

图3为音视频文件转码系统中的转码容器示意图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。

如图1所示,多媒体服务器在将音视频文件发送至播放终端之前,为了适应不同的网络带宽、不同的播放终端处理能力或不同的用户需求,需要对音视频文件进行转码处理,然后,再将转码后的音视频文件发送至播放终端,本例为了解决传统的音视频转码系统中转码资源利用率低、转码效率低的缺点,本例提供一种动态资源分配的音视频文件转码方法及系统。

如图2所示,本例提供的音视频文件转码方法具体包括如下步骤。

S1:接收源视频文件转码请求信息,并将请求信息及转码任务保存至存储队列中,请求信息包括源视频路径和转码输出参数。

其中,转码输出参数包括转码类型、转出分辨率、转出文件名等,这些请求信息被存储于存储队列中,同时,与请求信息相关的转码任务也被保存于存储队列中,存储队列将转码任务根据优先级的高低进行排序。

S2:通过调度器读取所述存储队列中的转码任务,并调度工作层将源视频文件进行音视频分离,分别获取音频文件和视频文件。

调度器不断地根据优先级从存储队列中读取转码任务信息,读取转码任务信息后调度工作层将源视频文件进行音视频分离,分别获取分离后的音频文件和视频文件。

由于调度程序的数量关系到系统的处理能力,传统的分布式转码系统其调度程序的数量是确定的,不能动态地调节调度程序的数量,而本例的调度程序的数量可以动态设节,本例通过动态调节调度器的数量以实现改变调度程序的数量,具体的,根据转码服务器的平均需要处理请求的数量,动态地设置调度器的数量,通过增加调度器数量提升转码服务器的并行处理能力,提升转码服务器的运行效率。

在其他实施例中,如果转码服务器处理能力足够的情况下,可以简单地通过设置调度器的配置文件中的设置数量来动态启动相应数量的调度器。

当转码服务器处理能力减少时,调度器数量的增加并不会增加转码服务器的处理能力,反而会过多消耗其资源,此时,需要根据当前调度器是否在处理任务选择是否销毁,动态减少调度器的数量并不会影响当前正在运行的转码任务,所以,本例还包括根据调度器处于闲置状态时对其进行销毁的步骤,直至调度器的数量达到配置文件中的设定值为止,即,调度器的数量不能低于配置文件中的设定值。

S3:对视频文件进行切片,获取视频文件段,并根据视频文件段的数量动态生成相应数量的转码容器。

将视频文件进行切片,获得多个视频文件段,启动转码操作时,根据视频文件段的数量动态生成相应数量的转码容器,即有多少切片就会启动相应数量的转码容器,该转码容器是docker容器。

S4:根据视频文件段的转码输出参数动态地为各个转码容器分配系统资源。

在资源分配时,如果将资源设置为静态值,则对于资源需求低的转码任务,也会造成资源的闲置、浪费,而对于资源需求高的转码任务,会造成转码资源不够,导致转码速度降低、影响转码效率,为了避免这种现象发生,本例根据视频文件段的转码输出参数动态地为各个转码容器分配系统资源。

具体的,读取视频文件段的转码输出参数;根据转码输出参数在预设调查表中查找视频文件段所需的系统资源;将查找的系统资源分配给转码容器,其中,预设调查表如下所示:

如,转码输出参数为:转码类型为H265,转出分辨率为480p,则将为该视频文件段的转码容器分配400M-500M的资源,在转码服务器资源有限的情况下,通过对转码容器进行动态资源分配,使得转码服务器可以最大程度地利用转码资源。

S5:根据转码容器的资源配置动态地将转码容器分配至转码服务器。

由于传统分布式文件转码的方法中,在产生的视频切片过多或者转码服务器数量不足的情况下,为了防止转码服务器过度使用cpu及内存而宕机,管理程序不会在一台转码服务器上分配过多的转码任务,这样就造成了转码服务器资源的浪费,而转码任务过多导致任务排队也造成了转码效率降低,为了避免这种现象产生,本例采用将转码容器动态地分配至转码服务器。

具体的,根据当前转码服务器的资源使用情况以及待分配的转码容器的资源配置,来决定是否将该转码容器分配至该转码服务器上,其步骤可以是:读取转码服务器当前剩余资源;读取转码容器的配置资源;通过比较当前剩余资源是否大于转码容器的配置资源来决定是否将转码容器分配至转码服务器,即,在转码服务器上分配配置资源不超过当前剩余资源的转码容器,这样就保证了分配在当前转码服务器上的转码容器使用资源总量不会超过当前转码服务器的资源上限,避免转码服务器长时间超负荷工作的情况,及其他转码服务器没有转码容器的情况,也最大程度地利用了系统资源,避免了资源浪费的情况,

S6:对视频文件段及音频文件进行转码,并将转码后的视频文件段及音频文件合并,获得转码文件。

分配转码容器后的转码服务器开始对视频文件段及音频文件进行转码,并将转码后的视频文件段及音频文件合并,获得转码文件,再将转码文件发送至播放终端,转码任务结束后,转码服务器自动销毁相应的转码容器,并回收其资源,以供新的转码容器使用。

采用本例的音视频文件转码方法,在系统资源有限或转码任务过多的情况下,系统的资源利用率得到了提升,系统的转码效率较传统的分布式转码有了明显的提高,系统的可动态扩容性也得到了明显的提升。

根据上述的音视频文件转码方法,本例还提供一种动态资源分配的音视频文件转码系统,包括集群转码服务器、管理程序模块和转码容器,转码容器的结构图如图3所示,转码容器包括应用层、调度层和工作层。

其中,应用层用于接收源视频文件转码请求信息,并将请求信息及转码任务保存至存储队列中,请求信息包括源视频路径和转码输出参数;调度层用于读取存储队列中的转码任务,并调度工作层将源视频文件进行音视频分离,分别获取音频文件和视频文件;工作层用于对视频文件进行切片,获取视频文件段,并根据视频文件段的数量动态生成相应数量的转码容器;管理程序模块用于根据视频文件段的转码输出参数动态地为各个转码容器分配系统资源,其分配过程如上述步骤S4所示,并根据转码容器的资源配置动态地将所述转码容器分配至转码服务器,其分配过程如上述步骤S5所示;转码服务器用于通过分配的转码容器对视频文件段及音频文件进行转码,并将转码后的视频文件段及音频文件合并,获得转码文件,当完成转码时,转码服务器还用于对分配的转码容器进行销毁,并回收其资源,以供新的转码容器使用。

进一步,调度层还用于根据转码服务器的平均处理请求的数量动态地设置调度器的数量,或者用于根据配置文件中的设置数量动态启动相应数量的调度器,调度层还用于根据调度器处于闲置状态时对其进行销毁,本例的调度层通过动态调节调度器的数量,以提高系统的并行处理能力、提升系统运行效率、减少系统资源消耗,其中,调度器数量的动态调节可参考上述步骤S2。

以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

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