一种分布式转码方法和装置与流程

文档序号:13767830阅读:164来源:国知局

本申请涉及转码技术领域,更具体地说,涉及一种分布式转码方法和装置。



背景技术:

现在视频行业已经相当发达,每天都会产生大量的视频,而其中有相当一部分的视频需要转码。视频转码(VideoTranscoding)是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。传统的转码技术,转码节点每次对一个片源整段进行转码,转码速度比较慢,转码效率低。



技术实现要素:

有鉴于此,本申请提供一种分布式转码方法和装置,用于实现提高转码速度,进而提高转码效率。

为了实现上述目的,现提出的方案如下:

一种分布式转码方法,包括步骤:

步骤101:加载源文件的音视频数据以及转码参数,所述转码参数包括码率和转码装置的选择;

步骤102:分割所述音视频数据为若干片段;

步骤103:分发分割后的片段到各个转码节点,按照同一码率进行转码;

步骤104:合并转码后的所有片段;

步骤105:输出合并之后文件。

优选的,所述分割所述音视频数据为若干片段包括:获取空闲转码节点的数量,并根据所述空闲转码节点的数量分割所述音视频数据为若干片段。

优选的,所述的分布式转码方法在步骤101之前,还包括:

步骤201:获取所述源文件的音视频信息,并分析源文件进行转码所需的空间容量;

步骤202:获取加载节点的内存可用容量和硬盘可用容量;

步骤203:比较所述内存可用容量与所述源文件转码所需空间容量的大小,若所述内存可用容量大,则执行步骤101;反之,执行步骤204;

步骤204:比较所述硬盘可用容量与所述源文件转码所需空间容量的大小,若所述硬盘可用容量大,则执行步骤101;反之,则结束操作。

优选的,所述的分布式转码方法,在步骤105之后,还包括:

步骤106:判断是否还有未转码率,若是则以步骤104合并之后文件为源文件,按照所述未转码率中的一种未转码率进行转码,重复步骤102至步骤105;若否,则结束操作。

优选的,所述的分布式转码方法,在步骤103之后与步骤104之前,还包括:删除步骤101中加载的源文件音视频数据,以及步骤103中分发到各个转码节点的片段;

在步骤106之后,还包括:删除操作过程中产生的临时文件。

一种分布式转码装置,包括:

加载单元,用于加载源文件的音视频数据以及转码参数,所述转码参数包括码率和转码装置的选择;

分割单元,用于分割所述音视频数据为若干片段;

分发转码单元,用于分发分割后的片段到各个转码节点,所述转码节点按照同一码率进行转码;

合并单元,用于合并转码后的所有片段;

输出单元,用于输出合并之后文件。

优选的,分割单元包括:

获取模块,用于获取空闲转码节点的数量;

分割子单元,用于根据所述空闲转码节点的数量分割所述音视频数据为若干片段。

优选的,所述的分布式转码装置还包括:

第一分析单元,用于获取所述源文件的音视频信息,并分析源文件进行转码所需的空间容量;

第二分析单元,用于获取加载节点的内存可用容量和硬盘可用容量;

第一判断单元,用于比较所述内存可用容量与所述源文件转码所需空间容量的大小,若所述内存可用容量大,则执行加载单元;反之,执行第二判断单元;

第二判断单元:用于比较所述硬盘可用容量与所述源文件转码所需空间容量的大小,若所述硬盘可用容量大,则执行加载单元;反之,则结束操作。

优选的,所述的分布式转码装置还包括:

判断单元,用于判断是否还有未转码率,若是则以执行合并单元之后的文件为源文件,按照所述未转码率中的一种未转码率进行转码,依此执行分割单元、分发转码单元、合并单元和输出单元;若否,则结束操作。

优选的,所述的分布式转码装置还包括:

第一删除单元,用于删除执行加载单元加载的源文件音视频数据,以及执行分发转码单元分发到各个转码节点的片段;

第二删除单元,用于删除操作过程中产生的临时文件。

从上述的技术方案可以看出,相对于现有技术,本申请公开的分布式转码方法,分割源视频文件为若干片段,并分发分割后的片段到各个转码节点进行转码。将源视频文件进行分片,分到多个转码节点上同时进行转码,各转码节点互不影响,解决了转码速度慢的问题,进而提高转码效率。

附图说明

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

图1为本申请实施例公开的一种分布式转码方法示意图;

图2为本申请另一实施例公开的一种分布式转码方法示意图;

图3为本申请另一实施例公开的一种分布式转码方法示意图;

图4为本申请实施例公开的一种分布式转码装置示意图;

图5为本申请另一实施例公开的一种分布式转码装置示意图;

图6为本申请另一实施例公开的一种分布式转码装置示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请将转码节点(一个进程,分片的转码操作都是在转码节点上进行的)部署到多个转码服务器上,每台转码服务器部署多个转码节点,多台转码服务器的工作相互独立,互不影响,转码服务器上的转码节点也相互独立,各转码节点互不影响。将源视频文件进行分片(将一个视频文件分割成若干个片段,每一个片段叫一个分片),并将分片分到多个转码节点上同时进行转码,解决了转码速度慢的问题,提高了转码效率。

实施例一

本实施例公开了一种分布式转码方法,参见图1,包括步骤:

步骤S101:加载源文件的音视频数据以及转码参数,转码参数可以包括音频、码率和转码装置的选择等。

转码装置具体为转码服务器,转码服务器设置有多个转码节点,多台转码服务器的工作相互独立,互不影响,转码服务器上的转码节点也相互独立,各转码节点互不影响。

步骤S102:分割所述音视频数据为若干片段。

获取空闲转码节点的数量,并根据空闲转码节点的数量分割所述音视频数据为若干片段。在分片阶段,获取空闲转码节点数量,在保证转码节点完成大致对等的工作量的前提下,结合音视频数据的时长来计算片段的时长,即根据空闲转码节点的数量分割音视频数据为若干片段。

步骤S103:分发分割后的片段到各个转码节点,按照同一码率进行转码。

转码节点设置在多台转码服务器上,转码节点相互独立,各转码节点能同时进行转码任务,互不影响。即使其中一个转码节点出现问题也不会影响整个转码系统的正常运行。

当个转码节点完成转码任务后,可以删除掉其加载的源文件音视频数据,以及分发到各个转码节点的片段。进而释放出相应的空间容量,便于后续任务的执行。

步骤S104:合并转码后的所有片段。

步骤S105:输出合并之后文件。

输出合并之后文件,然后清理操作过程中所有的临时文件,进一步释放空间容量。

本实施例采用的分布式转码的方法,将源文件进行分片,可以多个分片同时进行转码,解决了转码速度慢的问题,提高了转码效率。并且,本实施例采用的方法,对源文件的格式没有限制,常见的封装格式都可以对其进行转码。

实施例二

本实施例公开了另一种分布式转码的方法,主要在实施例一公开的方法基础上增加了一个加载数据前的数据分析阶段,参见图2,包括:

步骤S201:获取所述源文件的音视频信息,并分析源文件进行转码所需的空间容量。

在加载数据之前,一般需要预估加载的数据需要占用的空间容量,数据的空间容量预估方式为:源文件的大小+2.4倍的输出码率*文件时长。预估的数据空间容量即源文件进行转码所需的空间容量。

步骤S202:获取加载节点的内存可用容量和硬盘可用容量。

如果任务流程能在再内存中完成,那么将采用内存中完成的方式进行转码流程,否则,将采用在硬盘中完成的方式进行转码流程处理。

步骤S203:比较所述内存可用容量与所述源文件转码所需空间容量的大小,若所述内存可用容量大,则执行步骤101;反之,执行步骤204;

步骤S204:比较所述硬盘可用容量与所述源文件转码所需空间容量的大小,若所述硬盘可用容量大,则执行步骤101;反之,则结束操作。

通过加载前的数据分析,根据源文件的大小、视频码率、视频时长等信息,预估该转码任务所占用的空间大小,以此决定转码任务是在内存还是硬盘中完成。

后续步骤与实施例一中步骤相同,即:

步骤S101:加载源文件的音视频数据以及转码参数,转码参数可以包括音频、码率和转码装置的选择等。

步骤S102:分割所述音视频数据为若干片段。

步骤S103:分发分割后的片段到各个转码节点,按照同一码率进行转码。

步骤S104:合并转码后的所有片段。

步骤S105:输出合并之后文件。

实施例三

本实施例公开了另一种分布式转码的方法,由proj-master主要完成任务的创建、调整、调度等工作,以及由proj-transcoder,主要完成被转码文件的分析、加载、分片、转码、合并、输出等工作。两者协同完成源文件的转码任务,可以实现同一种源文件可以通过转码输出多种码率的文件。参见图3,具体步骤如下:

步骤S101:加载源文件的音视频数据以及转码参数,转码参数可以包括音频、码率和转码装置的选择等。加载的音频为多种音频参数、码率为多种码率参数。

步骤S102:分割所述音视频数据为若干片段。

步骤S103:分发分割后的片段到各个转码节点,按照同一码率进行转码。

步骤S104:合并转码后的所有片段。

步骤S105:输出合并之后文件。

步骤S106:判断是否还有未转码率,若是则以步骤S104合并之后文件为源文件,按照所述未转码率中的一种未转码率进行转码,重复步骤S102至步骤S105;若否,则结束操作。

每次输出合并的文件后,进行判断是否还有未转码率,即根据加载的多种码率参数和本次任务已经输出的所有合并文件的码率,判断是否输出的文件的码率是否已经包含所有的加载码率参数。如果没有就选一种未转的码率进行转码,直到加载的多种码率都转码完成。所有需求码率的文件都转码完成,以及合并输出后,清理操作过程中所有的临时文件。

本实施例公开的分布式转码的方法,进一步实现同一种源文件可以通过转码输出多种码率的文件。

实施例四

本实施例公开一种分布式转码装置,如图4所示,包括:

加载单元101,用于加载源文件的音视频数据以及转码参数,所述转码参数包括码率和转码装置的选择。

分割单元102,用于分割所述音视频数据为若干片段;

分割单元包括:获取模块,用于获取空闲转码节点的数量;分割子单元,用于根据所述空闲转码节点的数量分割所述音视频数据为若干片段。

分发转码单元103,用于分发分割后的片段到各个转码节点,所述转码节点按照同一码率进行转码。

合并单元104,用于合并转码后的所有片段。

输出单元105,用于输出合并之后文件。

本实施例公开的分布式转码的装置,将转码节点部署到多个转码服务器上,每台转码服务器部署多个转码节点,多台转码服务器的工作相互独立,互不影响,转码服务器上的转码节点也相互独立,各转码节点互不影响。将源文件进行分片,可以多个分片同时进行转码,解决了转码速度慢的问题,提高了转码效率。并且,本实施例公开的装置,对源文件的格式没有限制,常见的封装格式都可以对其进行转码。

本实施例采用的分布式转码的装置还可以包括,第一删除单元,用于删除执行加载单元加载的源文件音视频数据,以及执行分发转码单元分发到各个转码节点的片段;

第二删除单元,用于删除操作过程中产生的临时文件。

实施例五

本实施例公开另一种分布式转码装置,如图5所示,包括:第一分析单元201,用于获取所述源文件的音视频信息,并分析源文件进行转码所需的空间容量。

第二分析单元202,用于获取加载节点的内存可用容量和硬盘可用容量。

第一判断单元203,用于比较所述内存可用容量与所述源文件转码所需空间容量的大小,若所述内存可用容量大,则执行加载单元;反之,执行第二判断单元。

第二判断单元204:用于比较所述硬盘可用容量与所述源文件转码所需空间容量的大小,若所述硬盘可用容量,则执行加载单元;反之,则结束操作。

加载单元101,用于加载源文件的音视频数据以及转码参数,所述转码参数包括码率和转码装置的选择。

分割单元102,用于分割所述音视频数据为若干片段;

分割单元包括:获取模块,用于获取空闲转码节点的数量;分割子单元,用于根据所述空闲转码节点的数量分割所述音视频数据为若干片段。

分发转码单元103,用于分发分割后的片段到各个转码节点,所述转码节点按照同一码率进行转码。

合并单元104,用于合并转码后的所有片段。

输出单元105,用于输出合并之后文件。

本实施例公开的分布式转码的装置,将转码节点部署到多个转码服务器上,每台转码服务器部署多个转码节点,多台转码服务器的工作相互独立,互不影响,转码服务器上的转码节点也相互独立,各转码节点互不影响。将源文件进行分片,可以多个分片同时进行转码,解决了转码速度慢的问题,提高了转码效率。并且,本实施例公开的装置,对源文件的格式没有限制,常见的封装格式都可以对其进行转码。

本实施例采用的分布式转码的装置还可以包括,第一删除单元,用于删除执行加载单元加载的源文件音视频数据,以及执行分发转码单元分发到各个转码节点的片段;

第二删除单元,用于删除操作过程中产生的临时文件。

实施例六

本实施例公开另一种分布式转码装置,如图6所示,包括:

加载单元101,用于加载源文件的音视频数据以及转码参数,所述转码参数包括码率和转码装置的选择。

分割单元102,用于分割所述音视频数据为若干片段;

分割单元包括:获取模块,用于获取空闲转码节点的数量;分割子单元,用于根据所述空闲转码节点的数量分割所述音视频数据为若干片段。

分发转码单元103,用于分发分割后的片段到各个转码节点,所述转码节点按照同一码率进行转码。

合并单元104,用于合并转码后的所有片段。

输出单元105,用于输出合并之后文件。

判断单元106,用于判断是否还有未转码率,若是则以执行合并单元之后的文件为源文件,按照所述未转码率中的一种未转码率进行转码,依此执行分割单元、分发转码单元、合并单元和输出单元;若否,则结束操作。

本实施例公开的分布式转码的装置,将转码节点部署到多个转码服务器上,每台转码服务器部署多个转码节点,多台转码服务器的工作相互独立,互不影响,转码服务器上的转码节点也相互独立,各转码节点互不影响。将源文件进行分片,可以多个分片同时进行转码,解决了转码速度慢的问题,提高了转码效率。并且,本实施例公开的装置,对源文件的格式没有限制,常见的封装格式都可以对其进行转码。

本实施例采用的分布式转码的装置还可以包括,第一删除单元,用于删除执行加载单元加载的源文件音视频数据,以及执行分发转码单元分发到各个转码节点的片段;

第二删除单元,用于删除操作过程中产生的临时文件。

对于装置实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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