一种分布式视频转码方法及装置转让专利

申请号 : CN201610743840.6

文献号 : CN106101710A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谭龙根

申请人 : 珠海迈科智能科技股份有限公司

摘要 :

本申请公开了一种分布式视频转码方法,包括:主服务器对用户上传的视频文件进行分割,形成视频切片;分布式存储装置接收主服务器发送的所述视频切片,并将视频切片进行解析,得到键值对;从服务器根据转码任务量获取与转码任务量相应数量的所述键值对,再根据键值对将分布式存储装置中的所述视频切片进行下载,并对下载后的视频切片进行转码;分布式存储装置接收从服务器发送的转码后的所述视频切片,并对转码后的视频切片进行解析,得到转码后的键值对;主服务器根据转码后的键值对分布式存储装置中的述转码后的视频切片进行下载以及合并。分布式视频转码方法能够有效减少视频转码的时间,提高转码效率。本申请还公开了一种分布式视频转码装置。

权利要求 :

1.一种分布式视频转码方法,其特征在于,包括:

主服务器对用户上传的视频文件进行分割,形成视频切片;

分布式存储装置接收所述主服务器发送的所述视频切片,并将所述视频切片进行解析,得到键值对;

从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对,再根据所述键值对将所述分布式存储装置中的所述视频切片进行下载,并对下载后的视频切片进行转码;

所述分布式存储装置接收所述从服务器发送的转码后的所述视频切片,并对所述转码后的视频切片进行解析,得到转码后的键值对;

所述主服务器根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载以及合并。

2.如权利要求1所述的分布式视频转码方法,其特征在于,所述从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对之前,还包括:所述从服务器获取自身配置信息,根据所述配置信息计算所述转码任务量。

3.如权利要求2所述的分布式视频转码方法,其特征在于,所述从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对,具体包括:判断获取的所述键值对数量是否达到所述转码任务量;

若所述键值对数量小于所述转码任务量,则将所述键值对写入文本;

若所述键值对数量等于所述转码任务量,则停止接收所述键值对。

4.如权利要求3所述的分布式视频转码方法,其特征在于,所述对下载后的视频切片进行转码,具体包括:依据预先设置的转码参数同时对所有所述下载后的视频切片进行转码。

5.一种分布式视频转码系统,其特征在于,包括:

主服务器,用于对用户上传的视频文件进行分割,形成视频切片,还用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载以及合并;

分布式存储装置,用于接收所述主服务器发送的所述视频切片,并将所述视频切片进行解析,得到键值对,还用于接收所述从服务器发送的转码后的所述视频切片,并对所述转码后的视频切片进行解析,得到转码后的键值对;

从服务器,用于根据转码任务量获取与所述转码任务量相应数量的所述键值对,再根据所述键值对将所述分布式存储装置中的所述视频切片进行下载并转码。

6.如权利要求5所述的分布式视频转码装置,其特征在于,所述主服务器包括:视频切割模块,用于对用户上传的视频文件进行分割,形成视频切片;

视频合并模块,用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行合并;

第一视频传输模块,用于将所述视频切片传输至所述分布式存储装置,还用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载。

7.如权利要求6所述的分布式视频转码装置,其特征在于,所述从服务器包括:键值对获取模块,用于根据转码任务量获取与所述转码任务量相应数量的所述键值对;

视频转码模块,用于对下载后的视频切片进行转码;

第二视频传输模块用于根据所述键值对将所述分布式存储装置中的所述视频切片进行下载,还用于发送的转码后的所述视频切片至所述分布式存储装置。

8.如权利要求6所述的分布式视频转码装置,其特征在于,所述分布式存储装置包括:视频切片获取模块,用于接收所述主服务器发送的所述视频切片,还用于接收所述从服务器发送的转码后的所述视频切片;

视频切片解析模块,用于将所述视频切片进行解析,得到键值对,还用于对所述转码后的视频切片进行解析,得到转码后的键值对。

说明书 :

一种分布式视频转码方法及装置

技术领域

[0001] 本发明涉及视频转码技术领域,更具体地说,涉及一种分布式视频转码方法,还涉及一种分布式视频转码装置。

背景技术

[0002] 随着手机摄像和互联网的不断发展,视频分享已经变得非常常见,由于上传的视频通常格式、分辨率不一,播放视频的服务器需要将视频进行转码即视频由一种格式转换成另外一种格式,如:MP4格式转成flv格式。传统的转码服务器为单机转码服务器,对于视频的大小和同时上传的文件数都有限制,对于大量上传的视频无法及时处理,转码时间长,甚至由于负载太重导致服务器停止工作。或者利用与主服务器关联的有多台从服务器,用以处理主服务器分配的任务,当采用多台服务器转码时,但是每个视频文件只会分配到其中一台服务器上进行转码,当单个视频文件过大时,还是存在转码时间过长的问题,同时,采用分片转码时不考虑从服务器的配置,会导致从服务器处理子任务的时间不一样,最后降低整个任务效率。
[0003] 因此,如何减少视频转码的时间,提高转码效率是本领域技术人员急需要解决的技术问题。

发明内容

[0004] 为解决上述技术问题,本发明提供一种分布式视频转码方法,能够有效减少视频转码的时间,提高转码效率。
[0005] 为实现上述目的,本发明提供如下技术方案:
[0006] 一种分布式视频转码方法,包括:
[0007] 主服务器对用户上传的视频文件进行分割,形成视频切片;
[0008] 分布式存储装置接收所述主服务器发送的所述视频切片,并将所述视频切片进行解析,得到键值对;
[0009] 从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对,再根据所述键值对将所述分布式存储装置中的所述视频切片进行下载,并对下载后的视频切片进行转码;
[0010] 所述分布式存储装置接收所述从服务器发送的转码后的所述视频切片,并对所述转码后的视频切片进行解析,得到转码后的键值对;
[0011] 所述主服务器根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载以及合并。
[0012] 优选的,在上述分布式视频转码方法中,所述从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对之前,还包括:
[0013] 所述从服务器获取自身配置信息,根据所述配置信息计算所述转码任务量。
[0014] 优选的,在上述分布式视频转码方法中,所述从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对,具体包括:
[0015] 判断获取的所述键值对数量是否达到所述转码任务量;
[0016] 若所述键值对数量小于所述转码任务量,则将所述键值对写入文本;
[0017] 若所述键值对数量等于所述转码任务量,则停止接收所述键值对。
[0018] 优选的,在上述分布式视频转码方法中,所述对下载后的视频切片进行转码,具体包括:
[0019] 依据预先设置的转码参数同时对所有所述下载后的视频切片进行转码。
[0020] 本发明还提供了一种分布式视频转码系统,包括:
[0021] 主服务器,用于对用户上传的视频文件进行分割,形成视频切片,还用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载以及合并;
[0022] 分布式存储装置,用于接收所述主服务器发送的所述视频切片,并将所述视频切片进行解析,得到键值对,还用于接收所述从服务器发送的转码后的所述视频切片,并对所述转码后的视频切片进行解析,得到转码后的键值对;
[0023] 从服务器,用于根据转码任务量获取与所述转码任务量相应数量的所述键值对,再根据所述键值对将所述分布式存储装置中的所述视频切片进行下载并转码;
[0024] 优选的,在上述分布式视频转码装置中,所述主服务器包括:
[0025] 视频切割模块,用于对用户上传的视频文件进行分割,形成视频切片;
[0026] 视频合并模块,用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行合并;
[0027] 第一视频传输模块,用于将所述视频切片传输至所述分布式存储装置,还用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载;
[0028] 优选的,在上述分布式视频转码装置中,所述从服务器包括:
[0029] 键值对获取模块,用于根据转码任务量获取与所述转码任务量相应数量的所述键值对;
[0030] 视频转码模块,用于对下载后的视频切片进行转码;
[0031] 第二视频传输模块用于根据所述键值对将所述分布式存储装置中的所述视频切片进行下载,还用于发送的转码后的所述视频切片至所述分布式存储装置。
[0032] 优选的,在上述分布式视频转码装置中,所述分布式存储装置包括:
[0033] 视频切片获取模块,用于接收所述主服务器发送的所述视频切片,还用于接收所述从服务器发送的转码后的所述视频切片;
[0034] 视频切片解析模块,用于将所述视频切片进行解析,得到键值对,还用于对所述转码后的视频切片进行解析,得到转码后的键值对。
[0035] 从上述技术方案可以看出,本发明所提供的一种分布式视频转码方法,包括:主服务器对用户上传的视频文件进行分割,形成视频切片;分布式存储装置接收所述主服务器发送的所述视频切片,并将所述视频切片进行解析,得到键值对;从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对,再根据所述键值对将所述分布式存储装置中的所述视频切片进行下载,并对下载后的视频切片进行转码;所述分布式存储装置接收所述从服务器发送的转码后的所述视频切片,并对所述转码后的视频切片进行解析,得到转码后的键值对;所述主服务器根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载以及合并。
[0036] 本发明提供的一种分布式视频转码方法,对用户上传的大容量的视频文件进行分割,得到小容量的视频切片,通过多个从服务器对视频切片进行转码,缩小转码时间,同时使得大量上传的视频得到及时处理。此外,还计算了各个从服务器的转码任务量,不完全依赖于主服务器的分配方式,使得各个从服务器转码时间一致,避免某一从服务器转码过慢导致整体转码时间延长。
[0037] 本发明提供的一种分布式视频转码系统,能够减少视频转码的时间,提高转码效率。

附图说明

[0038] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0039] 图1为本发明实施例提供的一种分布式视频转码方法示意图;
[0040] 图2为本发明实施例提供的一种分布式视频转码装置示意图。

具体实施方式

[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 请参阅图1,图1为本发明实施例提供的一种分布式视频转码方法示意图。
[0043] 在一种具体的实施方式中,分布式存储装置可以为hdfs存储装置和spark分布装置等,主服务器(主节点)只有一台,多台不同位置的多台电脑/主服务器服务器,三者通过网络来组成的一个集群。需要指出的是,从服务器的数量不受限制,可以任意添加从服务器,只需要把hadoop程序和各个模块,拷贝到要扩展的从服务器上,并启动相应程序即可。
[0044] 提供一种分布式视频转码方法,包括如下步骤:
[0045] 步骤S1:主服务器对用户上传的视频文件进行分割,形成视频切片;
[0046] 其中,用户上传的视频文件较大,将其进行分割成较小的切片,便于后续将较小的视频切片进行转码。
[0047] 步骤S2:分布式存储装置接收所述主服务器发送的所述视频切片,并将所述视频切片进行解析,得到键值对;
[0048] 其中,通过InputFomat接口将视频切片解析成如键值对,key为文件名,value为文件路径。
[0049] 步骤S3:从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对,再根据所述键值对将所述分布式存储装置中的所述视频切片进行下载,并对下载后的视频切片进行转码;
[0050] 先要统计从服务器的配置信息,主要是cpu核数,内存大小,确定该从服务器能同时转码的最佳数量,然后接收键值对。从服务器设置了2个具有从属关系的map程序,一个是根据负载接收键值,处理文本结构数据的,另一个map程序下载视频分片进行转码,处理非文本结构数据的。每接收一个键值对先不进行转码程序,而是通过从服务器中的一个map程序把键值对写到一个文本文件里面,待接收的键值对数量等于前面计算的最佳任务数量时,停止接收并启动另外一个map程序,根据已接收的键值对数量同时启动多个线程进行转码。
[0051] 从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对,具体指的是从服务器可以获取一个键值对就对其进行转码,也可以等获取的键值对和转码任务量相同时,在进行转码,均能够提高转码效率。
[0052] 步骤S4:所述分布式存储装置接收所述从服务器发送的转码后的所述视频切片,并对所述转码后的视频切片进行解析,得到转码后的键值对;
[0053] 其中,输出的转码后的键值对如,其中key1为文件名,value1为转码后的文件路径。
[0054] 步骤S5:所述主服务器根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载以及合并。
[0055] 本发明提供的一种分布式视频转码方法,对用户上传的大容量的视频文件进行分割,得到小容量的视频切片,通过多个从服务器对视频切片进行转码,缩小转码时间,同时使得大量上传的视频得到及时处理。此外,还计算了各个从服务器的转码任务量,不完全依赖于主服务器的分配方式,使得各个从服务器转码时间一致,避免某一从服务器转码过慢导致整体转码时间延长。
[0056] 进一步的,在上述分布式视频转码方法中,所述从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对之前,还包括:
[0057] 所述从服务器获取自身配置信息,根据所述配置信息计算所述转码任务量。其中,从服务器的map程序解析配置信息,根据所在从服务器的cpu内核数和内存大小计算任务量,以使转码达到最高效率。
[0058] 在上述实施方式的基础上,所述从服务器根据转码任务量获取与所述转码任务量相应数量的所述键值对,具体包括:
[0059] 判断获取的所述键值对数量是否达到所述转码任务量;
[0060] 若所述键值对数量小于所述转码任务量,则将所述键值对写入文本;
[0061] 若所述键值对数量等于所述转码任务量,则停止接收所述键值对。
[0062] 在上述实施方式的基础上,所述对下载后的视频切片进行转码,具体包括:
[0063] 依据预先设置的转码参数同时对所有所述下载后的视频切片进行转码。
[0064] 请参阅图2,图2为本发明实施例提供的一种分布式视频转码装置示意图。
[0065] 本发明还提供了一种分布式视频转码系统,包括:
[0066] 主服务器01,用于对用户上传的视频文件进行分割,形成视频切片,还用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载以及合并;
[0067] 分布式存储装置02,用于接收所述主服务器发送的所述视频切片,并将所述视频切片进行解析,得到键值对,还用于接收所述从服务器发送的转码后的所述视频切片,并对所述转码后的视频切片进行解析,得到转码后的键值对;
[0068] 从服务器03,用于根据转码任务量获取与所述转码任务量相应数量的所述键值对,再根据所述键值对将所述分布式存储装置中的所述视频切片进行下载并转码;
[0069] 进一步的,在上述分布式视频转码装置中,所述主服务器包括:
[0070] 视频切割模块,用于对用户上传的视频文件进行分割,形成视频切片;
[0071] 视频合并模块,用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行合并;
[0072] 第一视频传输模块,用于将所述视频切片传输至所述分布式存储装置,还用于根据所述转码后的键值对所述分布式存储装置中的所述转码后的视频切片进行下载;
[0073] 进一步的,在上述分布式视频转码装置中,所述从服务器包括:
[0074] 键值对获取模块,用于根据转码任务量获取与所述转码任务量相应数量的所述键值对;
[0075] 视频转码模块,用于对下载后的视频切片进行转码;
[0076] 第二视频传输模块用于根据所述键值对将所述分布式存储装置中的所述视频切片进行下载,还用于发送的转码后的所述视频切片至所述分布式存储装置。
[0077] 进一步的,在上述分布式视频转码装置中,所述分布式存储装置包括:
[0078] 视频切片获取模块,用于接收所述主服务器发送的所述视频切片,还用于接收所述从服务器发送的转码后的所述视频切片;
[0079] 视频切片解析模块,用于将所述视频切片进行解析,得到键值对,还用于对所述转码后的视频切片进行解析,得到转码后的键值对。
[0080] 本发明提供的一种分布式视频转码系统,能够减少视频转码的时间,提高转码效率。
[0081] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0082] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。