复用空闲计算资源的云转码方法及系统、分布式文件装置制造方法

文档序号:6491776阅读:203来源:国知局
复用空闲计算资源的云转码方法及系统、分布式文件装置制造方法
【专利摘要】本发明提出一种复用空闲计算资源的云转码方法及系统、分布式文件装置,其复用空闲计算资源的云转码方法包括:接收转码任务,并提交任务信息;根据所述任务信息生成任务分配信息;根据所述分配信息,从分布式磁盘中分别获取相应媒体片段的源数据,通过分布式处理器并行转码成目标格式的数据后保存到分布式磁盘;根据所述任务信息以及所述任务分配信息,将转码后的数据进行合并,形成转码后的媒体文件,并保存到分布式磁盘。本发明利用存储服务器空闲的CPU完成分布式转码,不仅节省了硬件成本,充分利用了现有资源,而且大大加快了数据的传输和拷贝,提高了转码效率。
【专利说明】复用空闲计算资源的云转码方法及系统、分布式文件装置
【技术领域】
[0001]本发明涉及分布式多媒体编解码领域,特别涉及一种复用空闲计算资源的云转码方法及系统、分布式文件装置。
【背景技术】
[0002]邮箱文件中转站、离线下载等业务有大量的各种格式的视频等媒体文件,当用户需要在线使用个人计算机或手机等终端播放时,需要先下载文件,然后将下载的文件转码成手机终端或者播放器等支持的格式才可以观看。
[0003]为了让用户端无需转码而直接可以在线播放,各大视频业务公司的做法是购置专用的视频转码服务器以及专用的存储服务器,服务端将数据传送到视频转码服务器进行转码,再把转码后的视频文件传送到存储服务器储存,以供用户下载。这种离线转码的方式让用户端下载视频文件后无需进行转码,可以直接通过终端或页面进行播放。
[0004]但是上述方式中,视频转码服务器一般是采取串行转码,转码一部影片往往需要数十分钟,而且期间的多次文件传输(先由服务端传输给视频转码服务器,再由视频转码服务器传输给存储服务器,最后由存储服务器传输给用户端)也会付出较长的时间代价。
[0005]为此,业界提出了一些提高转码效率的方式:
[0006]US 2012/0101254A1美国专利申请提出了一种基于云的转码系统和方法,侧重在边上传边转码,从而节约文件的传输时间,但是其仍然采用串行转码,且需要在用户端增加分析媒体文件的开销。
[0007]2011年全国高性能计算学术年会(HPC China 2011)论文集中《基于云架构的视频转码技术研究》一文提出了两种不同的分布式转码方案,但需要对视频进行预处理,以及需要分离、合并、同步音视频,转码过程复杂。
[0008]CN 200810236508.6中国专利公开了一种分布式多格式数字视频转码结构设计方法,其同样需要事先切割文件,并对音视频分解复用,此阶段完全变成串行且代价巨大。原始、转码后、中间结果均在NFS (Network FileSystem,网络文件系统)上,受其最大挂载磁盘数限制,系统不可能具有处理PB (1PB = 1024TB)级海量数据的能力。
[0009]可见,以往所有的设计均未考虑转码和存储之间的关系,均需要专门的硬件来做分割、转码与合并操作,增加了硬件成本,也增加了转码复杂程度。此外,许多现有分布式转码系统均是基于C/S (Client/server,用户端/服务器)模式,只要稍稍改变系统中机器数目,分布式程序就要重新编码部署,可扩展性差。转码和合并机器上的CPU、I/0负载难以控制。
[0010]综上所述,现有的网络音视频转码方式存在耗时多、效率低、硬件成本高、拓展能力差等问题。

【发明内容】

[0011]本发明的目的是提供一种复用空闲计算资源的云转码方法及系统,以解决现有的网络音视频转码方式存在耗时多、效率低、硬件成本高、拓展能力差等问题。
[0012]本发明提出一种复用空闲计算资源的云转码方法,包括:
[0013]接收转码任务,并提交任务信息;
[0014]根据所述任务信息生成任务分配信息;
[0015]根据所述分配信息,从分布式磁盘中分别获取相应媒体片段的源数据,通过分布式处理器并行转码成目标格式的数据后保存到分布式磁盘;
[0016]根据所述任务信息以及所述任务分配信息,将转码后的数据进行合并,形成转码后的媒体文件,并保存到分布式磁盘。
[0017]本发明还提出一种复用空闲计算资源的云转码系统,包括:
[0018]任务管理器,用于接收转码任务;
[0019]任务提交客户端,用于根据所述任务管理器发送来的任务信息,提交任务信息;
[0020]调度管理器,用于接收所述任务提交客户端发出的任务信息,输出任务分配信息;
[0021]分布式文件子系统,用于统一对数据进行管理,其又进一步包括:
[0022]源数据存储模组,用于存放源数据;
[0023]上传数据存储模组,用于存放转码后的数据;
[0024]多个转码器,用于根据接收到的所述任务管理器输出的任务信息以及所述调度管理器输出的任务分配信息,分别从所述源数据存储模组中获取相应媒体片段的源数据,并转码成目标格式的数据,存入所述上传数据存储模组;
[0025]至少一个合成器,且至少一个合成器与多个转码器形成一个进程工作模组,所述合成器用于根据接收到的所述调度管理器输出的分配信息,将所在进程工作模组中的转码器转码后的数据进行合并,形成转码后的媒体文件,并存入所述上传数据存储模组。
[0026]本发明还提出一种分布式文件装置,包括:
[0027]源数据存储模组,用于存放源数据;
[0028]上传数据存储模组,用于存放转码后的数据;
[0029]多个转码器,用于根据接收到的任务信息以及任务分配信息,分别从所述源数据存储模组中获取相应媒体片段的源数据,并转码成目标格式的数据,存入所述上传数据存储模组;
[0030]至少一个合成器,且至少一个合成器与多个转码器形成一个进程工作模组,所述合成器用于根据接收到的任务分配信息,将所在进程工作模组中的转码器转码后的数据进行合并,形成转码后的媒体文件,并存入所述上传数据存储模组。
[0031]相对于现有技术,本发明的有益效果是:
[0032](I)本发明将转码的工作构建在具有空闲计算资源的音视频存储服务器上,充分利用了现有资源,大大节约了硬件成本。
[0033](2)本发明不需要对媒体文件进行预切片,而是把切片放在了转码任务执行的同时时完成,这样提高了并行度,能有效降低转码时间。
[0034](3)本发明在分片转码和分片合成阶段,分别实现对CPU占用和硬盘/内存的精确控制,防止影响现网机器的原有服务。
[0035](4)本发明对于特定业务场景,还可较容易地通过修改参数,满足传统MapReduce系统不能满足的一定实时性的要求。
[0036](5)本发明的系统具有良好的可扩展行,通过分布式文件系统和/或网络协议,理论上可处理无限量的视频数据,现有系统已证实可以处理PB级别的音视频资源。
[0037](6)本发明的转码工作在存储机器上完成,避免了大部分数据传输/拷贝,效果接近于本地计算,实现了 “计算向存储迁移”这个云计算的理想目的。
[0038](7)本发明可以对转码任务、每个转码器获得的分片任务、每个转码器分片任务里的各个工作线程实现精确控制,可以有效避免影响存储服务器的现网服务。
[0039]当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
[0040]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
【专利附图】

【附图说明】
[0041]图1为本发明实施例的一种复用空闲计算资源的云转码系统的架构图;
[0042]图2为本发明实施例的一种进程工作模组的工作示意图;
[0043]图3为本发明实施例的一种复用空闲计算资源的云转码方法的流程图。
【具体实施方式】
[0044]为更进一步阐述本发明达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的复用空闲计算资源的云转码方法及系统、分布式文件装置其【具体实施方式】、方法、步骤及功效,详细说明如后。
[0045]有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过【具体实施方式】的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
[0046]I/O (硬盘/内存)密集型机器指的是系统的CPU效能相对硬盘/内存的效能要好很多,即系统运作的大部分的状况是CPU在等待I/O的读/写,CPU占用率较低。本发明主要思想的出发点是考虑到转码后的音视频文件的存储所在地一存储服务器(通常由大量存储机器的集群构成)—由于只起到存储数据的作用,因而有大量CPU空闲的存储机器,这些机器因为是I/o密集型机器,其CPU利用率一般低于20%,如果使用这些空闲CPU进行转码,可以节约大量成本,还可以在文件的存储点就近转码,减少异地拉取的时间、带宽消耗。不仅可以节省硬件成本,充分利用现有资源,还可以实现云计算的理想目标一“计算向存储迁移”。
[0047]此外,本发明涉及的分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。从内部实现来看,分布式的系统不再和普通文件系统一样负责管理本地磁盘,它的文件内容和目录结构都不是存储在本地磁盘上,而是通过网络传输到远端系统上。并且,同一个文件存储不只是在一台机器上,而是在一簇机器上分布式存储,协同提供服务,正所谓分布式。与单机的文件系统不同,分布式文件系统不是将这些数据放在一块磁盘上,由上层操作系统来管理。而是存放在一个服务器集群上,由集群中的服务器,各尽其责,通力合作,提供整个文件系统的服务。因此,使用分布式转码,可以近似线性的降低转码耗时,提高用户体验,并且分布式计算框架的资源管理、调度方案能有效的利用硬件资源,降低故障的影响。本发明中所述的分布式文件子系统及相应的管理方法优选采用申请号为200710307132.9的中国专利“分布式系统、分布式业务处理方法及相关装置”中所揭示的的分布式系统及相应的处理方法。
[0048]请参见图1,其为本发明实施例的一种复用空闲计算资源的云转码系统的架构图,其包括:任务管理器101、任务提交客户端102、调度管理器104、流化媒体服务器109以及分布式文件子系统。任务提交客户端102与任务管理器101连接,任务管理器101、调度管理器104和流化媒体服务器109均与分布式文件子系统连接。其中分布式文件子系统又进一步包括:源数据存储模组110、上传数据存储模组111、多个转码器106以及至少一个合成器 107。
[0049]任务管理器101接到转码任务(Transcoding Job)后,首先把任务信息发给任务提交客户端102,由任务提交客户端102来提交任务。任务提交客户端102将任务信息提交给调度管理器104。调度管理器104根据接收到的任务信息生成任务分配信息(dispatch “tasks”),并发送给各个转码器106和合成器107。
[0050]转码器106、合成器107以及调度管理器104形成了一个云计算框架103,其优选采用MapReduce框架(如专利号为US7650331B1的美国专利中公开的Map/Reduce分布式处理框架)及其变种实现,或者也可以采用开源的Hadoop框架、Sector/Sphere框架、Typhoon框架等。其中所有的转码器106和合成器107都分布在分布式文件子系统的计算机机群上。
[0051]请结合参见图2,调度管理器104是负责云计算框架103的任务、资源的调度和管理,其作用是根据接收到的任务信息中待转码源文件,确定需要并行执行的工作数(优选通过源文件的时间长度来划分工作数),并形成任务分配信息(dispatch “tasks”)发送给各个转码器106和合成器107。也即是说,转码器106和合成器107通过接收到的任务分配信息获知自身负责的工作,从而形成进程工作模组105,一个进程工作模组105中包括多个转码器106和至少一个合成器107(为便于描述,本实施例的图示中一个进程工作模组105仅绘示了一个合成器107,一个进程工作模组105通常情况下仅包含一个合成器107即可,特殊时候如任务控制不精确的情况下,一个进程工作模组105也可以包含多个合成器107)。
[0052]转码器106的工作是负责转码一个个媒体片段。在根据任务分配信息形成工作模组105之后,转码器106会从任务管理器101处获取任务信息(obtain real tasks)。表I为一种任务信息的结构示意,任务信息包括任务的类型、文件的位置(如源文件的url地址,Universal ResourceLocator,统一资源定位符)、音视频的起始位置、时长等。
[0053]
【权利要求】
1.一种复用空闲计算资源的云转码方法,其特征在于,包括: 接收转码任务,并提交任务信息; 根据所述任务信息生成任务分配信息; 根据所述分配信息,从分布式磁盘中分别获取相应媒体片段的源数据,通过分布式处理器并行转码成目标格式的数据后保存到分布式磁盘; 根据所述任务信息以及所述任务分配信息,将转码后的数据进行合并,形成转码后的媒体文件,并保存到分布式磁盘。
2.如权利要求1所述的复用空闲计算资源的云转码方法,其特征在于,所述将转码后的数据进行合并的步骤包括: 获取转码后的数据在分布式磁盘中的存储地址信息; 根据所述存储地址信息获取分布式磁盘中相应的转码后的数据; 将转码后的数据进行合并。
3.如权利要求1所述的复用空闲计算资源的云转码方法,其特征在于,分布式磁盘中数据的上传与下载的通讯采用http协议。
4.如权利要求1所述的复用空闲计算资源的云转码方法,其特征在于,所述根据所述任务信息生成任务分配信息的步骤包括: 根据任务信息中源文件的时间长度确定需要执行的并行工作数,并形成所述任务分配信息。
5.如权利要求1所述的复用空闲计算资源的云转码方法,其特征在于,转码任务信息的传递采用ans协议。
6.如权利要求1所述的复用空闲计算资源的云转码方法,其特征在于,将媒体片段的源数据进行转码之后,实时将转码完成的媒体片段发送给用户端。
7.如权利要求1所述的复用空闲计算资源的云转码方法,其特征在于,在进行转码时,将CPU占用率控制在预设范围内。
8.如权利要求7所述的复用空闲计算资源的云转码方法,其特征在于,所述将CPU占用率控制在预设范围内的步骤包括:对各个CPU核心上运行的转码线程周期性的发送停止进程信号和恢复进程信号,并通过控制所述停止进程信号和所述恢复进程信号之间的时间长度,将CPU占用率控制在预设范围内。
9.如权利要求1所述的复用空闲计算资源的云转码方法,其特征在于,在进行数据合并时,对硬盘/内存的读写进行控制。
10.如权利要求9所述的复用空闲计算资源的云转码方法,其特征在于,采用单独的计算机进行数据的合并。
11.一种复用空闲计算资源的云转码系统,其特征在于,包括: 任务管理器,用于接收转码任务; 任务提交客户端,用于根据所述任务管理器发送来的任务信息,提交任务信息; 调度管理器,用于接收所述任务提交客户端发出的任务信息,输出任务分配信息; 分布式文件子系统,用于统一对数据进行管理,其又进一步包括: 源数据存储模组,用于存放源数据; 上传数据存储模组,用于存放转码后的数据;多个转码器,用于根据接收到的所述任务管理器输出的任务信息以及所述调度管理器输出的任务分配信息,分别从所述源数据存储模组中获取相应媒体片段的源数据,并转码成目标格式的数据,存入所述上传数据存储模组;
至少一个合成器,且至少一个合成器与多个转码器形成一个进程工作模组,所述合成器用于根据接收到的所述调度管理器输出的分配信息,将所在进程工作模组中的转码器转码后的数据进行合并,形成转码后的媒体文件,并存入所述上传数据存储模组。
12.如权利要求11所述的复用空闲计算资源的云转码系统,其特征在于,所述转码器将转码后的数据存入所述上传数据存储模组后,将相应的存储地址信息发送给同一进程工作模组的合成器,所述合成器通过所述存储地址信息从所述上传数据存储模组中获取相应的转码后的数据,并进行合成。
13.如权利要求11所述的复用空闲计算资源的云转码系统,其特征在于,所述转码器与所述上传数据存储模组之间的通讯、所述转码器与所述源数据存储模组之间的通讯、以及所述合成器与所述上传数据存储模组之间的通讯均采用http协议。
14.如权利要求11所述的复用空闲计算资源的云转码系统,其特征在于,所述调度管理器根据任务信息中源文件的时间长度确定需要执行的并行工作数,并形成所述任务分配信息后发送给相应的转码器和合成器。
15.如权利要求11所述的复用空闲计算资源的云转码系统,其特征在于,所述转码器和所述任务管理器之间的通讯均采用ans协议。
16.如权利要求11所述的复用空闲计算资源的云转码系统,其特征在于,还包括: 流化媒体服务器,用于实时接收所述转码器转码完成的媒体片段,并发送给用户端。
17.如权利要求11所述的复用空闲计算资源的云转码系统,其特征在于,所述转码器在进行转码时,将CPU占用率控制在预设范围内。
18.如权利要求17所述的复用空闲计算资源的云转码系统,其特征在于,所述转码器利用周期性的中断程序控制CPU占用率。
19.如权利要求11所述的复用空闲计算资源的云转码系统,其特征在于,所述合成器在进行数据合并时,对硬盘/内存的读写进行控制。
20.如权利要求19所述的复用空闲计算资源的云转码系统,其特征在于,所述合成器为所述分布式文件子系统中单独的计算机。
21.—种分布式文件装置,其特征在于,包括: 源数据存储模组,用于存放源数据; 上传数据存储模组,用于存放转码后的数据; 多个转码器,用于根据接收到的任务信息以及任务分配信息,分别从所述源数据存储模组中获取相应媒体片段的源数据,并转码成目标格式的数据,存入所述上传数据存储模组; 至少一个合成器,且至少一个合成器与多个转码器形成一个进程工作模组,所述合成器用于根据接收到的任务分配信息,将所在进程工作模组中的转码器转码后的数据进行合并,形成转码后的媒体文件,并存入所述上传数据存储模组。
22.如权利要求21所述的分布式文件装置,其特征在于,所述转码器将转码后的数据存入所述上传数据存储模组后,将相应的存储地址信息发送给同一进程工作模组的合成器,所述合成器通过所述存储地址信息从所述上传数据存储模组中获取相应的转码后的数据,并进行合成。
23.如权利要求21所述的分布式文件装置,其特征在于,所述转码器与所述上传数据存储模组之间的通讯、所述转码器与所述源数据存储模组之间的通讯、以及所述合成器与所述上传数据存储模组之间的通讯均采用http协议。
24.如权利要求21所述的分布式文件装置,其特征在于,根据任务信息中源文件的时间长度确定需要执行的并行工作数,并形成所述任务分配信息。
25.如权利要求21所述的分布式文件装置,其特征在于,所述转码器在进行转码时,将CPU占用率控制在预设范围内。
26.如权利要求25所述的分布式文件装置,其特征在于,所述转码器利用周期性的中断程序控制CPU占用率。
27.如权利要求21所述的分布式文件装置,其特征在于,所述合成器在进行数据合并时,对硬盘/内存的读写进行控制。
28.如权利要求27所述的分布式文件装置,其特征在于,所述合成器为所述分布式文件装置中单独的计算机。
【文档编号】G06F17/30GK103838779SQ201210490708
【公开日】2014年6月4日 申请日期:2012年11月27日 优先权日:2012年11月27日
【发明者】庄奇东, 何春晓, 苏元朋 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1