一种基于云平台的视频转码方法和装置的制造方法

文档序号:10555943阅读:166来源:国知局
一种基于云平台的视频转码方法和装置的制造方法
【专利摘要】本发明提供一种基于云平台的视频转码方法和装置,所述方法包括:将视频数据进行分割以获得转码任务队列;向转码子系统广播转码任务,等待响应,其中,所述转码子系统在云平台注册;在接收到转码任务之后,转码子系统评估自身状态,并确定是否响应;如果存在一个或多个响应的转码子系统,则根据优选策略选择转码子系统,并向选择的转码子系统分配转码任务;被选择的转码子系统执行转码,继续轮询转码任务队列,发起下一轮广播;如果没有转码子系统响应,则等待,直到等待超时,重复广播转码任务队列,完成转码任务后,组成转码后的完整视频。
【专利说明】
一种基于云平台的视频转码方法和装置
技术领域
[0001 ]本发明涉及视频转码领域,更具体地,涉及一种基于云平台的视频转码方法和装置。
【背景技术】
[0002]随着互联网和多媒体技术的不断发展,视频作为信息的主要载体,正在被应用到各种设备和领域。视频转码技术作为视频应用系统的必要组成部分,越来越受到人们的重视,为此人们创造了转码工厂的概念,来形容专门进行海量视频离线转码的系统,有的采用工作流的方式,有的采用分布式系统,有的采用GPU(Graphic Processing Unit,图形处理单元)转码集群等,这些系统往往耗费了巨大的成本,计算单元的同质化程度高,计算单元之间紧耦合,扩展性和可维护性受限。

【发明内容】

[0003]本发明是为了解决上述问题而提出的,其目的在于提供一种基于云平台的视频转码方法和装置。
[0004]根据本发明的一方面,提供一种基于云平台的视频转码方法,所述方法包括步骤:将视频数据进行分割以获得转码任务队列;向转码子系统广播转码任务,等待响应,其中,所述转码子系统在云平台注册;在接收到转码任务之后,转码子系统评估自身状态,并确定是否响应;如果存在一个或多个响应的转码子系统,则根据优选策略选择转码子系统,并向选择的转码子系统分配转码任务;被选择的转码子系统执行转码,继续轮询转码任务队列,发起下一轮广播;如果没有转码子系统响应,则等待,直到等待超时,重复广播转码任务队列,完成转码后,组成转码后的完整视频。
[0005]将视频数据以图像组为单位进行分割以获得转码任务队列。
[0006]转码任务可以包括任务编号、图像组的文件偏移位置、文件名、输入/输出视频编码格式、输入/输出分辨率、输入/输出码率、输入/输出帧率和视频的长度中的至少一个。
[0007]转码子系统可以评估自身状态包括:评估自身的CPU负载、内存利用率、空闲磁盘空间、网络带宽利用率、转码类型是否支持中的至少一个,如果评估的任何一个条件超过预定阈值,则转码子系统确定不响应转码任务。
[0008]所述优选策略认为优先响应转码任务的转码子系统是计算速度最快,网络路径最短的转码子系统,并且抛弃其他转码子系统。
[0009]在选择转码子系统时,可以不用考虑资源负载情况,一个原因是因为待处理的任务已经分的足够小;另一个原因是因为计算子节点通过了自身的阈值检测。每个转码子系统可以根据自身条件调整阈值。
[0010]转码子系统是一个有转码能力的计算节点。
[0011]根据本发明的另一方面,提供一种基于云平台的视频转码装置,所述装置包括:任务模块,将视频数据进行分割以获得转码任务队列,向转码子系统广播转码任务,等待响应,如果存在一个或多个响应的转码子系统,则根据优选策略选择转码子系统,向选择的转码子系统分配转码任务,任务模块轮询转码任务队列,发起下一轮广播,如果没有转码子系统响应,则任务模块等待,直到等待超时,重复广播转码任务队列;合并完成后的转码任务,组成转码后的完整视频;网络模块,用于协助任务模块和转码子系统之间的通信;以及转码子系统,接收转码任务,评估自身状态,确定是否响应,执行转码,其中,所述转码子系统已经在云平台注册。
[0012]本发明基于云平台中计算资源动态变化的特性,提出了一种基于云平台的视频转码方法和装置,能够包容异构计算环境,优选计算节点,提升转码的效率,更主要的,系统能够实现计算节点的优胜劣汰,在性能、成本、扩展性、可维护性之间保持最佳的状态。
【附图说明】
[0013]通过参照附图描述特定示例性实施例,上述和其它方面将会变得更加明显,其中:
[0014]图1是基于云平台的视频转码方法的流程示意图;
[0015]图2是基于云平台的视频转码装置的示意框图。
【具体实施方式】
[0016]将参照附图更加全面地描述示例性实施例,以使本发明概念的方面、其他方面、特征和优点清楚。然而,示例性实施例可以以许多不同形式体现,并且不应被理解为限制到本文阐述的示例性实施例。而是,提供示例性实施例使得本公开将是彻底和完整的,并且向本领域的技术人员充分地传达本申请的范围。
[0017]在本发明的实施例中,将视频数据进行分割以获得转码任务队列;将转码任务广播到已经在云平台中注册的转码子系统;转码子系统评估自身负载情况,决定是否响应;任务模块根据优选策略选定完成转码任务的子系统,将转码任务分配到相应的转码子系统;在转码子系统完成转码任务之后,依序合并完成后的转码任务。
[0018]由于在转码任务的选择中是按照优选策略的结果选择转码子系统,因此能够保证兼容异构计算环境,能够保证性能优异的系统总是能满负荷地工作,实现计算环境的优胜劣汰,而且不会因为资源负载表的计算错误引发系统性风险,在性能、成本、扩展性、可维护性之间保持最佳的状态。
[0019]图1是基于云平台的视频转码方法的流程示意图。现参照图1对根据本发明的实施例的视频转码方法进行描述,具体包括以下步骤:
[0020]在步骤SlOl,任务模块将视频数据进行分割以获得转码任务队列。
[0021]将视频文件分割成多个分离段,即转码任务的数据部分。分割的动作是记录每个分离段的起始时间,对文件分割的长度应该是一个图像组(GOP)的整数倍。
[0022]一个GOP就是一组连续的画面(即帧)。在视频编码中,图像的帧类型分为I帧、P帧和B帧,其中,I帧是帧内编码,是一个完整的画面;P帧是基于前向预测的编码,参考帧可以是I帧或者P帧,它比较与它前面的P帧或者I帧之间的相同数据;B帧是双向预测帧,它根据相邻的前一帧、本帧以及后一帧数据的不同来压缩本帧。
[0023]以GOP为单位分割视频数据包括:遍历视频数据,标识每一个闭环GOP中I帧的起始时间;根据标识的起始时间,记录所述GOP的文件偏移位置并编号;以及依次得到包括N个转码任务的队列。
[0024]在步骤S102,任务模块通过网络模块向转码子系统广播转码任务,并等待响应。
[0025]具体地,将转码任务广播到已经在云平台中注册的转码子系统。广播可以使用消息中间件,或者多线程并发也是替代方案,关键在于不能顺序发送消息,顺序意味着人为的排序,这样会影响解码子系统的选择。
[0026]广播转码任务的对象是已经在云平台中注册的转码子系统,其可以是异构计算环境,包含物理集群、分布式系统和GPU集群等,它们实现同一套通信协议与任务模块通信,在资源上,它们同属一个计算资源池,节点之间松耦合,计算资源、存储资源可实现动态变化,它们组成了云平台的一部分。
[0027]转码任务包含任务编号、GOP的文件偏移位置、文件名、输入/输出视频编码格式、输入/输出分辨率、输入/输出码率、输入/输出帧率、视频的长度等。
[0028]在步骤S103,在接收到转码任务之后,转码子系统评估自身状态,确定是否响应。
[0029]转码子系统评估自身状态包括评估自身的CPU负载、内存利用率、空闲磁盘空间、网络带宽利用率、转码类型是否支持等。根据短板效应,任一个条件超过预设阈值即为不满足转码条件,转码子系统确定不响应转码任务。每个转码子系统的标准可能不同,并且可以根据自身条件调整阈值。只要满足所有条件即可响应,请求转码任务。
[0030]在步骤S104,如果存在一个或多个响应的转码子系统,则任务模块根据策略,选择转码子系统,并且向选择的转码子系统分配转码任务。
[0031]具体地,如果存在一个或多个响应的转码子系统,则任务模块负责执行策略,选择转码子系统,并分配转码任务。将策略制定为优选策略,即选择第一个接收到的响应消息,抛弃其后接收的消息。
[0032]优选策略认为发送的响应消息能第一个到达任务模块的转码子系统无论在计算速度和网络路径上应该都是最优的。优选策略相信优先响应转码任务的转码子系统必然是计算速度更快,网络路径最短的系统,因此选择第一个响应转码任务的节点即可。一旦选定转码子系统,其他响应消息可即时抛弃。
[0033]如果存在计算能力不强但是网络路径短的转码子系统,短时间内会获得任务,很快因为自己计算能力的限制,无法通过下一次任务的自身阈值的检测,任务还是会流向更优的转码子系统;经过统计分析,这样的转码子系统完成的任务数必然不高,因此可以人为优化。
[0034]在选择转码子系统时,可以不考虑资源负载情况,一个原因是因为待处理的任务已经分的足够小;另一个原因是因为转码子系统通过了自身的阈值检测。
[0035]如果没有转码子系统响应,则任务模块等待,直至当前转码任务等待超时,重复发送转码任务。
[0036]在步骤S105,被选择的转码子系统执行转码,任务模块轮询转码任务队列,发起下一轮广播。
[0037]任务模块只有在有转码子系统响应转码任务的情况下才会发起下一轮转码任务。
[0038]在步骤S106,任务模块合并完成后的转码任务。
[0039]具体地,在转码任务队列的逻辑单元完成后,合并成单一视频源。
[0040]转码任务队列的逻辑单元是指一个原视频被分割后的一个转码任务。
[0041]合并成单一视频源是指合并一个逻辑单元转码后的GOP图像组,组成一个转码后的完整视频。
[0042]视频文件合并需要等待所有的转码任务完成之后,根据每个转码任务的序号进行视频的合并,再根据编码任务的需要写入视频格式。
[0043]从上述技术方案中可以看出,在本发明实施例中优秀的转码子系统总是有足够负荷的工作量,而且不会因为资源负载表的计算错误引发系统性风险。
[0044]图2示出基于云平台的视频转码装置的示意框图。
[0045]下面结合附图2详细说明根据本发明实施例的视频转码装置,视频转码装置至少包括:任务模块201、一个或多个转码子系统202和网络模块203。其中,每个转码子系统202的功能相同,下文中转码子系统202代表至少一个转码子系统。
[0046]任务模块201可以通过网络模块203与一个或多个转码子系统202进行通信。
[0047]任务模块201将视频数据进行分割以获得转码任务队列,向转码子系统广播转码任务,等待响应,如果存在一个或多个响应的转码子系统,则根据策略选择转码子系统,向选择的转码子系统分配转码任务,轮询转码任务队列,发起下一轮广播,合并完成后的转码任务,组成转码后的完整视频
[0048]转码子系统202执行相同的通信协议,接收转码任务,评估自身状态,确定是否响应,执行转码,其中,所述转码子系统已经在云平台注册。
[0049]任务模块201包括将视频数据进行分割,广播任务及接收响应,执行优选策略选择转码子系统,分配转码任务和合并转码任务五个主要的功能。
[0050]将视频文件分割成多个分离段,即转码任务的数据部分。分割的动作是记录每个分离段的起始时间,对文件分割的长度应该是一个图像组(GOP)的整数倍。
[0051]—个GOP就是一组连续的画面(即帧)。在视频编码中,图像的帧类型分为I帧、P帧和B帧,其中,I帧是帧内编码,是一个完整的画面;P帧是基于前向预测的编码,参考帧可以是I帧或者P帧,它比较与它前面的P帧或者I帧之间的相同数据;B帧是双向预测帧,它根据相邻的前一帧、本帧以及后一帧数据的不同来压缩本帧。
[0052]以GOP为单位分割视频数据包括:遍历视频数据,标识每一个闭环GOP中I帧的起始时间;根据标识的起始时间,记录所述GOP的文件偏移位置并编号;以及依次得到包括N个转码任务的队列。
[0053]广播可以使用消息中间件,或者多线程并发也是替代方案,关键在于不能顺序发送消息,顺序意味着人为的排序,这样会影响解码子系统的选择。
[0054]广播转码任务的对象可以是已经在云平台中注册的转码子系统,其可以是异构计算环境,包含物理集群、分布式系统和GPU集群等,它们实现同一套通信协议与任务模块通信,在资源上,它们同属一个计算资源池,节点之间松耦合,计算资源、存储资源可实现动态变化,它们组成了云平台的一部分。
[0055]转码任务包含任务编号、GOP的文件偏移位置、文件名、输入/输出视频编码格式、输入/输出分辨率、输入/输出码率、输入/输出帧率、视频的长度等。
[0056]转码子系统评估自身状态包括评估自身的CPU负载、内存利用率、空闲磁盘空间、网络带宽利用率等。任一个条件超过预设阈值即为不满足转码条件,确定不响应转码任务。每个转码子系统的标准可能不同,并且可以根据自身条件调整阈值。只要满足所有条件即可响应消息,请求转码任务。
[0057]如果存在一个或多个响应的转码子系统,则任务模块负责执行策略,选择转码子系统,并分配转码任务。将策略制定为优选策略,即选择第一个接收到的响应消息,抛弃其后接收的消息。
[0058]优选策略认为发送的响应消息能第一个到达任务模块的转码子系统无论在计算速度和网络路径上应该都是最优的。优选策略相?目优先响应任务的转码子系统必然是计算速度更快,网络路径最短的系统,因此选择第一个响应转码任务的节点即可。一旦选定转码子系统,其他响应消息可即时抛弃。
[0059]如果存在计算能力不强但是网络路径短的转码子系统,短时间内会获得任务,很快因为自己计算能力的限制,无法通过下一次任务的自身阈值的检测,任务还是会流向更优的转码子系统;经过统计分析,这样的转码子系统完成的任务数必然不高,因此可以人为优化。
[0060]在选择转码子系统时,可以不考虑资源负载情况,一个原因是因为待处理的任务已经分的足够小;另一个原因是因为转码子系统通过了自身的阈值检测。
[0061]如果没有转码子系统响应,则任务模块等待,直至当前转码任务等待超时,重复发送转码任务。
[0062]任务模块只有在有转码子系统响应转码任务的情况下才会发起下一轮转码任务。
[0063]视频文件合并需要等待所有的转码任务完成之后,根据每个转码任务的序号进行视频的合并,再根据编码任务的需要写入视频格式。
[0064]根据本发明的基于云平台的视频转码方法和装置,能够包容异构计算环境,优选计算节点,提升转码的效率,更主要的,系统能够实现计算节点的优胜劣汰,在性能、成本、扩展性、可维护性之间保持最佳的状态。
[0065]尽管已经参照各种实施例示出和描述了本发明,但是本领域技术人员将理解,在不脱离由所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。
【主权项】
1.一种基于云平台的视频转码方法,其特征在于,所述方法包括步骤: 将视频数据进行分割以获得转码任务队列; 向转码子系统广播转码任务,等待响应,其中,所述转码子系统在云平台注册; 在接收到转码任务之后,转码子系统评估自身状态,并确定是否响应; 如果存在一个或多个响应的转码子系统,则根据优选策略选择转码子系统,并向选择的转码子系统分配转码任务,被选择的转码子系统执行转码; 继续轮询转码任务队列,发起下一轮广播;如果没有转码子系统响应,则等待,直到等待超时,重复广播转码任务; 完成转码后,组成转码后的完整视频。2.根据权利要求1所述的基于云平台的视频转码方法,其特征在于,将视频数据以图像组为单位进行分割以获得转码任务队列。3.根据权利要求1所述的基于云平台的视频转码方法,其特征在于,转码子系统评估自身状态包括:评估自身的CPU负载、内存利用率、空闲磁盘空间、网络带宽利用率、转码类型中的至少一个,如果评估的任何一个条件超过预定阈值,则转码子系统不响应转码任务。4.根据权利要求1所述的基于云平台的视频转码方法,其特征在于,所述优选策略认为优先响应转码任务的转码子系统是计算速度最快,网络路径最短的转码子系统。5.根据权利要求1所述的基于云平台的视频转码方法,其特征在于,每个转码子系统根据自身条件调整阈值。6.根据权利要求1所述的基于云平台的视频转码方法,其特征在于,转码子系统是有转码能力的计算节点。7.一种基于云平台的视频转码装置,其特征在于,所述装置包括: 任务模块,将视频数据进行分割以获得转码任务队列,向转码子系统广播转码任务,等待响应,如果存在一个或多个响应的转码子系统,则根据优选策略选择转码子系统,向选择的转码子系统分配转码任务,任务模块继续轮询转码任务队列,发起下一轮广播,如果没有转码子系统响应,则任务模块等待,直到等待超时,重复广播转码任务队列;完成转码后,组成转码后的完整视频; 网络模块,用于协助任务模块和转码子系统之间的通信;以及 转码子系统,接收转码任务,评估自身状态,确定是否响应,执行转码,其中,所述转码子系统已经在云平台注册。8.根据权利要求7所述的基于云平台的视频转码装置,其特征在于,任务模块将视频数据以图像组为单位进行分割以获得转码任务队列。9.根据权利要求7所述的基于云平台的视频转码装置,其特征在于,转码任务包括任务编号、图像组的文件偏移位置、文件名、输入/输出视频编码格式、输入/输出分辨率、输入/输出码率、输入/输出帧率和视频的长度中的至少一个。10.根据权利要求7所述的基于云平台的视频转码装置,其特征在于,转码子系统评估自身的CPU负载、内存利用率、空闲磁盘空间、网络带宽利用率、转码类型中的至少一个,如果评估的任何一个条件超过预定阈值,则转码子系统不响应转码任务。11.根据权利要求7所述的基于云平台的视频转码装置,其特征在于,所述优选策略认为优先响应转码任务的转码子系统是计算速度最快,网络路径最短的转码子系统。12.根据权利要求7所述的基于云平台的视频转码装置,其特征在于,每个转码子系统根据自身条件调整阈值。13.根据权利要求7所述的基于云平台的视频转码装置,其特征在于,转码子系统是有转码能力的计算节点。
【文档编号】H04L29/08GK105915910SQ201610405428
【公开日】2016年8月31日
【申请日】2016年6月8日
【发明人】霍兆坤
【申请人】上海增容数据科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1