一种基于分布式环境的视频转码系统及视频转码方法

文档序号:10474182阅读:631来源:国知局
一种基于分布式环境的视频转码系统及视频转码方法
【专利摘要】本发明公开了一种基于分布式环境的视频转码系统,其包括有管理服务器、分布式转码服务器、元数据服务器、流媒体服务器和存储有视频文件的视频源服务器,所述管理服务器用于实现视频转码系统内部的调度管理;所述分布式转码服务器用于执行具体转码任务;所述元数据服务器用于收集整个转码过程中产生的元数据,对视频文件、转码参数、视频的分片、分片存放位置和各个分片的传输转码时间进行收集和管理;所述流媒体服务器用于对转码之后的视频文件生成视频流。本发明具有转码效率高、质量更好、扩展性更强、配置更简单、转码成本更低等有益效果。
【专利说明】
-种基于分布式环境的视频转码系统及视频转码方法
技术领域
[0001] 本发明设及视频转码技术领域,尤其设及一种基于分布式环境的视频转码系统及 视频转码方法。
【背景技术】
[0002] 云计算是一种商业计算模型,它将计算任务分布在大量计算机构成的资源池上, 使用户能够按需获取计算能力、存储空间和信息服务。"云计算并不是一种新技术,而是并 行计算、分布式计算和网格计算的继承与发展,或者说是运些科学概念的一种商业实现,同 时也是效用计算、网络存储、虚拟化、负载均衡等传统计算机与网络技术发展融合的产物。 云计算从技术上解决了大规模海量数据分布式存储、海量数据实时备份、并行计算和应用 高度集成等问题,并凭借其高度安全可靠的特点W及个性化的应用深受企业和用户欢迎。
[0003] 现有技术中,通常使用单一的转码服务器对视频进行转码,转码完成后,再将转好 码的视频传输到视频的ftp服务器,运种方式优点是实现起非常简单,其缺点在于转码速度 慢,效率低,费时费力,且承受不了高并发或者大量的转码任务。
[0004] 现有技术中的另一种转码方法,是利用当前比较成熟的分布式技术,采用多台转 码服务器同时并行的对一个视频文件进行转码工作。它的工作原理是将切割好的视频分段 分别传输到不同的转码服务器上,调用各个转码服务器上的转码程序进行转码工作,转码 完成后,将各个视频分段传输到合并服务器,合并成一个完整视频文件,将运个完整的视频 返回给用户。运种方式的优点是可W并行转码,转码所需要的时间短,扩展性强,可W扩展 到很大的规模来应付海量的视频转码任务,其缺点在于实现复杂,需要考虑视频分段和合 并,当视频量大的时候还需要考虑转码任务的调度、异常处理等问题。

【发明内容】

[000引本发明要解决的技术问题在于,针对现有技术所存在的海量视频数据转码效率 低、延迟大、质量差等不足,提供一种基于分布式环境的视频转码系统及视频转码方法,用 W取得转码效率高、质量更好、扩展性更强、配置更简单、转码成本更低等有益效果。
[0006] 为解决上述技术问题,本发明采用如下技术方案。
[0007] -种基于分布式环境的视频转码系统,其包括有管理服务器、分布式转码服务器、 元数据服务器、流媒体服务器和存储有视频文件的视频源服务器,其中:所述管理服务器用 于实现视频转码系统内部的调度管理,并在接收转码请求后从视频源服务器下载视频文 件,将视频文件进行分割后提交到分布式转码服务器,并调度各slave节点进行分布式转 码;所述分布式转码服务器用于执行具体转码任务,对管理服务器提交的分割后的视频分 块进行分片,将分片元数据信息提交到元数据服务器,并根据调度指令进行转码工作;所述 元数据服务器用于收集整个转码过程中产生的元数据,对视频文件、转码参数、视频的分 片、分片存放位置和各个分片的传输转码时间进行收集和管理,W供转码系统进行分析;所 述流媒体服务器用于对转码之后的视频文件生成视频流,当用户点击视频文件的时,提供 HTTP视频流供用户在客户端点播和观看。
[0008] -种基于分布式环境的视频转码方法,该方法包括如下步骤:步骤SI,获取转码任 务,该任务指定了视频源服务器、转码后的格式、分辨率及码率信息;
[0009] 步骤S2,节点选择,选择低负载slave节点进行转码任务;步骤S3,从视频源服务器 下载待转码文件,调用mkvmerg按照GOP分段和128M块大小对视频进行分割,同时将分割后 的文件上传到各slave中;步骤S4,元数据服务器记录源视频文件所分割成的视频分块,记 录每个视频分块所存储的slave节点;步骤S5,提交转码任务而进行分布式转码,并在提交 任务时配置转码参数,各slave节点根据参数对本地存储的视频分块进行配置转码;步骤 S6,S lave节点接收到转码任务后,调用本地库FFmpeg进行转码,若转码成功,元数据服务器 记录转码文件元数据,否则,Master节点调度其他存储该视频分块的slave节点重启该转码 任务;步骤S7,元数据服务器记录转码后的元数据信息,包括:码率、文件格式、文件分块数 量、文件次序和存储位置。
[0010] 优选地,执行转码任务时,包括如下步骤:步骤S50,初始化状态队列,包括节点可 接收的任务总量taskSum、当前运行任务数量currentTaskSum、当前所需转码时间 currentTimeSum、可用存储容量;步骤S51,接收一个转码任务,将任务加入节点工作队列, 当前任务数量加上视频文件的大小,当前所需转码时间加上任务所需转码时长;步骤S52, 完成一个视频任务,当前任务数量减去对应视频文件的大小,当前转码时长减去对应转码 时长,并将该任务从工作队列移除;步骤S53,转码节点的选择,读取各节点状态队列并计算 任务状态,对于每一个节点
选择值最低的节点。
[0011] 优选地,视频的分割过程包括:步骤S30,获取待分割视频文件总帖数和并计算分 割块数量;步骤S31,遍历时间标签,估算分割点位置,要切分的文件时间=文件时长/文件 块数;步骤S32,在分割时间标签点查找最近的GOP分组;
[0012] 步骤S33,调用址vmerge对视频进行分割。
[0013] 优选地,slave节点内的转码任务调度包括如下步骤:步骤SlO : slave定期向 master节点发送屯、跳包,当负载空闲时,向master请求任务;步骤Sll :maste;r节点返回该 slave节点中任务队列指向的转码任务;步骤S12:slave每完成一个转码任务,任务队列中 的指针后移一个位置,并删除队列中完成的任务,同时指向下一个转码任务,当任务为最后 一个转码任务时,将指针指向第一个作业;步骤Sl 3:每新接受一个转码任务,将该任务插入 任务指针所指向的队列之后。
[0014] 优选地,slave节点间的任务调度包括如下步骤:步骤S20 ,master接收slave节点 包含负载信息的屯、跳包,如果有空闲任务位,则进入步骤S21,如果没有,结束过程;步骤 S21 ,slave节点有转码任务运行且有n个空闲的任务位;步骤S22,选择slave节点对应的任 务队列,判断队列有任务存在,按照节点内任务调度算法分配一个任务,否则,转到W下步 骤;步骤S23,是否分配了 n个任务,若是,转到步骤S24,若不是,转到步骤S22;步骤S24,返回 运n个任务给slave节点;步骤S25,选择集群内的每一个slave节点,判断该节点负载,选择 负载较高节点;步骤S26,从该节点中选择一个任务;步骤S27,返回分配的任务给slave节 点。
[0015] 本发明提供的视频转码系统及视频转码方法,其提供了更大的网络吞吐量,可同 时使用集群内的所有处理器并行处理多数目的视频文件,针对较大的视频文件,能够W最 大的处理速度来保证视频质量,对于高清视频的转码能更好的保证视频质量,采用云计算 的技术提供的转码服务,扩展性更强、配置更简单、转码成本更低。
【附图说明】
[0016] 图1为本发明基于分布式环境的视频转码系统的组成框图。
[0017] 图2为分布式转码过程的流程图。
[0018] 图3为节点间的任务调度流程图。
【具体实施方式】
[0019] 下面结合附图和实施例对本发明作更加详细的描述。
[0020] 本发明公开了一种基于分布式环境的视频转码系统,如图1所示,其包括有管理服 务器1、分布式转码服务器2、元数据服务器3、流媒体服务器4和存储有视频文件的视频源服 务器5,其中:
[0021] 所述管理服务器1用于实现视频转码系统内部的调度管理,并在接收转码请求后 从视频源服务器5下载视频文件,将视频文件进行分割后提交到分布式转码服务器2,并调 度各S lave节点20进行分布式转码;
[0022] 所述分布式转码服务器2用于执行具体转码任务,对管理服务器1提交的分割后的 视频分块进行分片,将分片元数据信息提交到元数据服务器,并根据调度指令进行转码工 作;
[0023] 所述元数据服务器3用于收集整个转码过程中产生的元数据,对视频文件、转码参 数、视频的分片、分片存放位置和各个分片的传输转码时间进行收集和管理,W供转码系统 进行分析;
[0024] 所述流媒体服务器4用于对转码之后的视频文件生成视频流,当用户点击视频文 件的时,提供HTTP视频流供用户在客户端点播和观看。
[0025] 在现有的云转码或分布式转码方案中,主要是从hadoop、mapReduce、MPI等多个角 度构建并行转码系统,采用化doop的构建分布式云转码平台,利用HDFS存储视频片段,将存 储与转码集成一体,然而系统的设计的目的是并行转码,若想观看到转码的效果必须等待 所有的片段转码完成,很难满足边播放边转码的需求,本发明在提供W上功能的同时,更注 重转码的实时性和文件的可用性,通过流媒体服务器对转码之后的视频文件产生视频流, 可W提供HTTP视频流供用户在客户端点播并观看。
[0026] 结合图1至图3所示,基于分布式环境的视频转码方法,该方法包括如下步骤:
[0027] 步骤SI,获取转码任务,该任务指定了视频源服务器、转码后的格式、分辨率及码 率f目息;
[0028] 步骤S2,节点选择,选择低负载slave节点进行转码任务;
[0029] 步骤S3,从视频源服务器下载待转码文件,调用址vmerg按照GOP分段和128M块大 小对视频进行分割,同时将分割后的文件上传到各slave中;
[0030] 步骤S4,元数据服务器记录源视频文件所分割成的视频分块,记录每个视频分块 所存储的S lave节点;
[0031] 步骤S5,提交转码任务而进行分布式转码,并在提交任务时配置转码参数,各 slave节点根据参数对本地存储的视频分块进行配置转码;
[0032] 步骤S6,slave节点接收到转码任务后,调用本地库FFmpeg进行转码,若转码成功, 元数据服务器记录转码文件元数据,否则,Master节点调度其他存储该视频分块的slave节 点重启该转码任务;
[0033] 步骤S7,元数据服务器记录转码后的元数据信息,包括:码率、文件格式、文件分块 数量、文件次序和存储位置。
[0034] 进一步地,执行转码任务时,首先判断各slave节点的负载均衡,包括存储负载和 计算负载,本实施例设计了节点负载状态队列,管理节点内的任务,具体包括如下步骤: [00 3引步骤S50,初始化状态队列,包括节点可接收的任务总量化skSum、当前运行任务数 量currentTaskSum、当前所需转码时间currentTimeSum、可用存储容量;
[0036] 步骤S51,接收一个转码任务,将任务加入节点工作队列,当前任务数量加上视频 文件的大小,当前所需转码时间加上任务所需转码时长;
[0037] 步骤S52,完成一个视频任务,当前任务数量减去对应视频文件的大小,当前转码 时长减去对应转码时长,并将该任务从工作队列移除;
[0038] 步骤S53,转码节点的选择,读取各节点状态队列并计算任务状态,对于每一个节 点
壶择值最低的节点。
[0039] 作为一种优选方式,由于视频文件往往较大,如不分割会对单点造成负载压力过 大,因此必须对视频文件进行分割,视频的分割过程中,本实施例通过mkvmerge将源视频文 件分割成独立视频段,不改变视频PTS和DTS信息,具体包括:
[0040] 步骤S30,获取待分割视频文件总帖数和并计算分割块数量,即文件大小A28M;
[0041] 步骤S31,遍历时间标签,估算分割点位置,要切分的文件时间=文件时长/文件块 数;
[0042] 步骤S32,在分割时间标签点查找最近的GOP分组;
[0043] 步骤S33,调用址vmerge对视频进行分割。
[0044] 进一步地,slave节点内的转码任务调度过程中,按照接收转码任务的先后顺序依 次循环执行,每新增一个转码请求,就将该任务插入任务队列尾部,转码任务完成后,删除 任务队列中指向该任务的记录,具体包括如下步骤:
[0045] 步骤SlO: slave定期向master节点发送屯、跳包,当负载空闲时,向master请求任 务;
[0046] 步骤S11: mas ter节点返回该S lave节点中任务队列指向的转码任务;
[0047] 步骤S12:slave每完成一个转码任务,任务队列中的指针后移一个位置,并删除队 列中完成的任务,同时指向下一个转码任务,当任务为最后一个转码任务时,将指针指向第 一个作业;
[0048] 步骤Sl 3:每新接受一个转码任务,将该任务插入任务指针所指向的队列之后。
[0049] 优选地,slave节点间的任务调度过程中,首先完成slave本地任务,然后选择集群 内负载较重的slave节点,当该节点后续任务分配给0负载或有空闲位的节点进行具体任务 分配,具体包括如下步骤:
[0050]步骤S20 ,master接收slave节点包含负载信息的屯、跳包,如果有空闲任务位,则进 入步骤S21,如果没有,结束过程;
[0051] 步骤S21 ,slave节点有转码任务运行且有n个空闲的任务位;
[0052] 步骤S22,选择slave节点对应的任务队列,判断队列有任务存在,按照节点内任务 调度算法分配一个任务,否则,转到W下步骤;
[0053] 步骤S23,是否分配了 n个任务,若是,转到步骤S24,若不是,转到步骤S22;
[0054] 步骤S24,返回运n个任务给slave节点;
[0055] 步骤S25,选择集群内的每一个slave节点,判断该节点负载,选择负载较高节点; [0056]步骤S26,从该节点中选择一个任务;
[0057] 步骤S27,返回分配的任务给S lave节点。
[0058] 本发明提供的视频转码系统及视频转码方法,其提供了更大的网络吞吐量,可同 时使用集群内的所有处理器并行处理多数目的视频文件,针对较大的视频文件,能够W最 大的处理速度来保证视频质量,对于高清视频的转码能更好的保证视频质量,采用云计算 的技术提供的转码服务,扩展性更强、配置更简单、转码成本更低。
[0059] W上所述只是本发明较佳的实施例,并不用于限制本发明,凡在本发明的技术范 围内所做的修改、等同替换或者改进等,均应包含在本发明所保护的范围内。
【主权项】
1. 一种基于分布式环境的视频转码系统,其特征在于,包括有管理服务器、分布式转码 服务器、元数据服务器、流媒体服务器和存储有视频文件的视频源服务器,其中: 所述管理服务器用于实现视频转码系统内部的调度管理,并在接收转码请求后从视频 源服务器下载视频文件,将视频文件进行分割后提交到分布式转码服务器,并调度各slave 节点进行分布式转码; 所述分布式转码服务器用于执行具体转码任务,对管理服务器提交的分割后的视频分 块进行分片,将分片元数据信息提交到元数据服务器,并根据调度指令进行转码工作; 所述元数据服务器用于收集整个转码过程中产生的元数据,对视频文件、转码参数、视 频的分片、分片存放位置和各个分片的传输转码时间进行收集和管理,以供转码系统进行 分析; 所述流媒体服务器用于对转码之后的视频文件生成视频流,当用户点击视频文件的 时,提供HTTP视频流供用户在客户端点播和观看。2. -种基于分布式环境的视频转码方法,其特征在于,该方法包括如下步骤: 步骤S1,获取转码任务,该任务指定了视频源服务器、转码后的格式、分辨率及码率信 息; 步骤S2,节点选择,选择低负载slave节点进行转码任务; 步骤S3,从视频源服务器下载待转码文件,调用mkvmerg按照GOP分段和128M块大小对 视频进行分割,同时将分割后的文件上传到各slave中; 步骤S4,元数据服务器记录源视频文件所分割成的视频分块,记录每个视频分块所存 储的slave节点; 步骤S5,提交转码任务而进行分布式转码,并在提交任务时配置转码参数,各s lave节 点根据参数对本地存储的视频分块进行配置转码; 步骤S6,slave节点接收到转码任务后,调用本地库FFmpeg进行转码,若转码成功,元数 据服务器记录转码文件元数据,否则,Master节点调度其他存储该视频分块的slave节点重 启该转码任务; 步骤S7,元数据服务器记录转码后的元数据信息,包括:码率、文件格式、文件分块数 量、文件次序和存储位置。3. 如权利要求2所述的基于分布式环境的视频转码方法,其特征在于,执行转码任务 时,包括如下步骤: 步骤S50,初始化状态队列,包括节点可接收的任务总量taskSum、当前运行任务数量 currentTaskSum、当前所需转码时间currentTimeSum、可用存储容量; 步骤S51,接收一个转码任务,将任务加入节点工作队列,当前任务数量加上视频文件 的大小,当前所需转码时间加上任务所需转码时长;步骤S52,完成一个视频任务,当前任务数量减去对应视频文件的大小,当前转码时长 减去对应转码时长,并将该任务从工作队列移除; ?53,綱节点的麻激各节点状抓歹阱计算任务状态,对于每 ??直最低的节点。4. 如权利要求2所述的基于分布式环境的视频转码方法,其特征在于,视频的分割过程 包括: 步骤S30,获取待分割视频文件总帧数和并计算分割块数量; 步骤S31,遍历时间标签,估算分割点位置,要切分的文件时间=文件时长/文件块数; 步骤S32,在分割时间标签点查找最近的GOP分组; 步骤S33,调用mkvmerge对视频进行分割。5. 如权利要求2所述的基于分布式环境的视频转码方法,其特征在于,slave节点内的 转码任务调度包括如下步骤: 步骤S10: slave定期向master节点发送心跳包,当负载空闲时,向master请求任务; 步骤SI 1: master节点返回该s lave节点中任务队列指向的转码任务; 步骤S12:slaVe每完成一个转码任务,任务队列中的指针后移一个位置,并删除队列中 完成的任务,同时指向下一个转码任务,当任务为最后一个转码任务时,将指针指向第一个 作业; 步骤S13:每新接受一个转码任务,将该任务插入任务指针所指向的队列之后。6. 如权利要求2所述的基于分布式环境的视频转码方法,其特征在于,slave节点间的 任务调度包括如下步骤: 步骤S20,master接收slave节点包含负载信息的心跳包,如果有空闲任务位,则进入步 骤S21,如果没有,结束过程; 步骤S21,slave节点有转码任务运行且有η个空闲的任务位; 步骤S22,选择slave节点对应的任务队列,判断队列有任务存在,按照节点内任务调度 算法分配一个任务,否则,转到以下步骤; 步骤S23,是否分配了 η个任务,若是,转到步骤S24,若不是,转到步骤S22; 步骤S24,返回这η个任务给slave节点; 步骤S25,选择集群内的每一个slave节点,判断该节点负载,选择负载较高节点; 步骤S26,从该节点中选择一个任务; 步骤S27,返回分配的任务给slave节点。
【文档编号】H04N21/845GK105828105SQ201510920352
【公开日】2016年8月3日
【申请日】2015年12月10日
【发明人】刘跃, 刘莉, 谭建军, 甘健鸿, 苏福
【申请人】广东亿迅科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1