一种基于分布式转码服务器的视频转码系统的制作方法

文档序号:23823627发布日期:2021-02-03 17:14阅读:62来源:国知局
一种基于分布式转码服务器的视频转码系统的制作方法

[0001]
本发明涉及计算机技术领域,特别是涉及一种基于分布式转码服务器的视频转码系统。


背景技术:

[0002]
随着新媒体技术的不断发展以及视频应用软件的快速崛起,人们获取信息的方式已经从传统的电视媒介向多种多样的终端播放设备转移,广播电视网、电信网以及互联网的融合趋势更加明显。由于终端播放设备的种类日益增多,例如视频app、手机电视、互联网电视等等,而且不同种类的终端播放设备对于视频的封装格式、编码格式以及分辨率等的要求不尽相同,人们对于同一个视频在不同终端播放设备或者播放平台上都能够流畅播放的需求越来越高,这就导致视频运营商需要提供更加快捷、灵活的转码服务,对不同封装格式、不同编码格式和不同分辨率等的视频进行格式转换,以适应异构网络和多终端环境的需要,为人们提供更好的视频播放体验,从而在竞争日趋激烈的新媒体市场上占有先机。
[0003]
针对视频转码需求,人们提出了专用于视频转码的高性能视频转码服务器以及服务器集群,然而专用的高性能视频转码服务器以及服务器集群不仅价格昂贵,而且难以满足大数量音视频文件的转码需求,当需要对多个较大的视频文件进行转码时,转码速度明显降低,造成视频播放的卡顿,严重影响了用户观看视频的体验,不适合大规模推广应用。


技术实现要素:

[0004]
基于此,有必要针对现有的高性能视频转码服务器以及服务器集群对多个较大的视频文件进行转码时存在的转码速度明显降低,难以满足对大数量、大视频文件的高效率转码的问题,提供一种基于分布式转码服务器的视频转码系统。
[0005]
为解决上述问题,本发明采取如下的技术方案:
[0006]
一种基于分布式转码服务器的视频转码系统,包括终端设备、多媒体资源应用平台、web服务器、资源管理服务器、转码调度服务器、job tracker服务器、分布式转码服务器和reduce task服务器,其中:
[0007]
所述终端设备和所述多媒体资源应用平台分别与所述web服务器连接,所述web服务器接收所述终端设备发送的第一转码任务请求以及所述多媒体资源应用平台在接收到上传的视频文件后自动发送的第二转码任务请求,所述第一转码任务请求和所述第二转码任务请求均携带有待转码视频文件的指定转码格式;
[0008]
所述web服务器根据所述第一转码任务请求和/或所述第二转码任务请求将对应的待转码视频文件发送至所述资源管理服务器,所述资源管理服务器对待转码视频文件进行标志后生成转码任务;
[0009]
所述转码调度服务器用于实现视频转码系统内部的调度管理以及数据收集,所述转码调度服务器定时轮询所述资源管理服务器,当所述转码调度服务器检测到所述资源管理服务器有新增的转码任务时,所述转码调度服务器启动转码服务进程并发送对应的待转
码视频文件至所述job tracker服务器;
[0010]
所述job tracker服务器对接收的待转码视频文件进行分割,并将分割后的分片文件分配给所述分布式转码服务器的各个节点;
[0011]
所述分布式转码服务器的各个节点根据所述指定转码格式对各自分配到的分片文件进行转码;
[0012]
所述reduce task服务器对转码完成后的分片文件进行合并,得到转码文件,并将所述转码文件回传至所述资源管理服务器,所述资源管理服务器通过所述web服务器返回所述转码文件至对应的所述终端设备或者所述多媒体资源应用平台。
[0013]
与现有技术相比,本发明具有以下有益效果:
[0014]
本发明所提出的基于分布式转码服务器的视频转码系统采用hadoop框架,通过转码调度服务器实现视频转码系统内部的调度管理以及数据收集,利用job tracker服务器、分布式转码服务器和reduce task服务器分别完成对待转码视频文件的分割、分片文件的并行转码以及转码完成后的分片文件的合并,提高了转码速度,特别是对于数量大的视频文件的转码,转码速度优势明显,使终端设备或者多媒体资源应用平台不会出现播放卡顿,为用户提供了良好的视频播放体验,非常适合大规模推广应用。
附图说明
[0015]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]
图1为本发明其中一个实施例中一种基于分布式转码服务器的视频转码系统的结构示意图;
[0017]
图2为本发明中分布式转码服务器的结构示意图;
[0018]
图3为本发明其中一个具体实施方式中job tracker服务器进行分割的方法流程图。
具体实施方式
[0019]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及较佳实施例对本发明的技术方案进行详细描述,描述过程中所举实施例只用于解释本发明,并非用于限定本发明的范围。
[0020]
在其中一个实施例中,本发明提供一种基于分布式转码服务器的视频转码系统,如图1和图2所述,视频转码系统包括终端设备、多媒体资源应用平台、web服务器、资源管理服务器、转码调度服务器、job tracker服务器、分布式转码服务器和reduce task服务器。
[0021]
终端设备和多媒体资源应用平台分别与web服务器连接,其中终端设备为各种能够存储视频文件的设备,如硬盘、cd、vcd或者dvd等,也可以为各种可以播放视频文件的设备,如计算机、ipad、智能手机、互联网电视等;多媒体资源应用平台为一种能够为用户提供多媒体资源的应用服务平台,用户可以向平台上传音频文件、视频文件或者其他文本类文件供平台添加调用,同时用户也可以从平台下载或者在线预览已上传的音频文件、视频文
件或者其他文本类文件。当终端设备有待转码视频文件需要完成转码时,终端设备发送第一转码任务请求至web服务器,或者当多媒体资源应用平台在接收到上传的视频文件后,多媒体资源应用平台自动对上传的视频文件的格式进行转码,此时多媒体资源应用平台自动发送第二转码任务请求至web服务器;web服务器接收第一转码任务请求以及多媒体资源应用平台在接收到上传的视频文件后自动发送的第二转码任务请求,第一转码任务请求和第二转码任务请求均携带有待转码视频文件的指定转码格式,该指定转码格式为用户预先设置的格式,其可以为目前各种主流的音视频格式,例如rm格式、rmvb格式、wmv格式、mov格式、mts格式、mp4格式等。
[0022]
web服务器根据接收到的第一转码任务请求和/或第二转码任务请求将对应的待转码视频文件发送至资源管理服务器,资源管理服务器对待转码视频文件进行标志后生成转码任务。资源管理服务器包括资源上载、资源编目、资源检索、存储管理、资源发布、后台转码等功能,其可以采用b/s架构实现,资源管理服务器对待转码视频文件进行标志后生成相应的转码任务供转码调度服务器查看。
[0023]
转码调度服务器用于实现视频转码系统内部的调度管理以及数据收集,转码调度服务器定时轮询资源管理服务器,查看资源管理服务器是否有新增的转码任务,当转码调度服务器检测到资源管理服务器有新增的转码任务时,转码调度服务器启动转码服务进程并发送对应的待转码视频文件至job tracker服务器。
[0024]
job tracker服务器对接收的待转码视频文件进行分割,并将分割后的分片文件分配给分布式转码服务器的各个节点。
[0025]
作为一种具体的实施方式,如图3所示,job tracker服务器对接收的待转码视频文件进行分割时,包括以下步骤:
[0026]
步骤s100:获取待转码视频文件的头部信息,该头部信息包括编码信息、封装信息和时间戳信息;
[0027]
步骤s200:查找确认待转码视频文件的平均分割点,平均分割点的数量以及分割后分片文件的大小可以根据待转码视频文件的大小进行设定;由于待转码视频文件都是按照一定的数据结构进行存放的,因此在对待转码视频文件进行平均分割时,并不能保证平均分割点恰好位于帧与帧之间的理解点,因此接下来需要执行步骤s300;
[0028]
步骤s300:根据待转码视频文件的数据结构在平均分割点的附近查找关键帧,然后根据关键帧调整分割点的位置,确定调整后的分割点的位置;
[0029]
步骤s400:最后,根据调整后的分割点对待转码视频文件进行分割,得到若干个分片文件,同时由于分布式转码服务器的各个节点对分片文件进行转码时需要获取待转码视频文件的头部信息,依次在本步骤中需要为每一个分片文件添加上头部信息。
[0030]
进一步地,在为每一个分片文件添加上头部信息时,保持解码时间戳dts和显示时间戳pts不变。保持解码时间戳dts和显示时间戳pts不变的目的在于reduce task服务器对转码完成后的分片文件进行合并时,无需重新改写解码时间戳dts和显示时间戳pts,只需将头部信息去掉后直接对分片文件进行追加即可,提高了分片文件的合并速度,从而有利于进一步提高转码速度。
[0031]
分布式转码服务器包括多个节点,例如节点1,节点2,

,节点n,各个节点根据用户设置的指定转码格式对各自分配到的分片文件进行转码,完成分片文件的转码工作。由
于各个分片文件被分配到各自对应的节点进行转码,因此可实现多个分片文件的并行转码,转码速度较高。
[0032]
为进一步提高分布式转码服务器的转码速度,可选地,分布式转码服务器的各个节点采用cuda多线程加速转码过程。cuda(compute unified device architecture)是一种由nvidia推出的通用并行计算架构,该架构使得gpu能够解决复杂的计算问题,实现超高性能运行,进而实现转码过程的加速,提高转码效率。
[0033]
reduce task服务器对转码完成后的分片文件进行合并,得到转码文件,并将转码完成的转码文件回传至资源管理服务器,资源管理服务器通过web服务器返回转码文件至对应的终端设备或者多媒体资源应用平台。
[0034]
进一步地,reduce task服务器对转码完成后的分片文件进行合并时,包括以下步骤:
[0035]
步骤一:保留首个转码完成后的分片文件的头部信息,去掉其余每一个转码完成后的分片文件的头部信息;
[0036]
步骤二:将去掉头部信息后的任意一个分片文件追加至相邻的上一个分片文件之后,追加完全部分片文件之后,即可得到转码文件。
[0037]
由于reduce task服务器在对转码完成后的分片文件进行合并时,不需要重新进行编解码,只需简单地去掉除首个分片文件之外的其余分片文件的头部信息,然后再进行分片文件的追加,因此分片文件合并速度较快,进一步提高了视频转码系统的整体转码速度。
[0038]
本实施例所提出的基于分布式转码服务器的视频转码系统采用hadoop框架,通过转码调度服务器实现视频转码系统内部的调度管理以及数据收集,利用job tracker服务器、分布式转码服务器和reduce task服务器分别完成对待转码视频文件的分割、分片文件的并行转码以及转码完成后的分片文件的合并,提高了转码速度,特别是对于数量大的视频文件的转码,转码速度优势明显,使终端设备或者多媒体资源应用平台不会出现播放卡顿,为用户提供了良好的视频播放体验,非常适合大规模推广应用。
[0039]
作为一种具体的实施方式,当分布式转码服务器的某一个节点转码失败或者出现异常故障时,job tracker服务器将该节点分配的分片文件重新分配到其他节点进行转码,并冻结转码失败或者出现异常故障的节点的驱动线程,同时发送节点异常信息至转码调度服务器。本实施方式提供了一种分布式转码服务器异常处理的方式,通过对节点的驱动线程的冻结,可以使job tracker服务器不再将其他分片文件分配给该节点进行转码,从而节约给分片文件重新分配节点的时间,同时节点发送节点异常信息至转码调度服务器进行记录和存储,方便后期的故障追溯。可选地,当分布式转码服务器的某一个节点转码失败或者出现异常故障时,job tracker服务器收线重启转码失败或者出现异常故障的节点的驱动线程,若重启失败,则job tracker服务器再冻结节点的驱动线程。
[0040]
作为一种具体的实施方式,reduce task服务器与转码调度服务器连接,转码调度服务器接收reduce task服务器回传的分片文件合并完成指令,并对分片文件合并完成指令进行记录和存储,供后期数据的追溯。
[0041]
作为一种具体的实施方式,web服务器设有用于与第三方应用系统整合集成的web api接口,第三方应用系统可以通过调用web api接口读取web服务器中的参数和数据等,实
现与第三方应用系统的整合集成,提高第三方应用系统的性能。
[0042]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0043]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1