多媒体文件处理方法、装置及系统与流程

文档序号:12039174阅读:175来源:国知局
多媒体文件处理方法、装置及系统与流程
本发明实施例涉及计算机技术,尤其涉及一种多媒体文件处理方法、装置及系统。

背景技术:
随着计算机技术和多媒体技术的发展,音频和视频等多媒体文件的文件格式也日趋多样化。通过对多媒体文件进行转码,可以将多媒体文件的文件格式在多种文件格式之间进行转换,以适应不同的播放要求。在需要将多媒体文件的文件格式转换为目标格式时,若对多媒体文件整体进行转码。则需要耗费较长的时间和占用较多的资源。为了提高转码效率,可以将多媒体文件分割为若干个较小的数据块,利用云计算(cloudcomputing)平台中的多个节点分别对这些数据块进行转码,然后将经过转码的各数据块进行合并,从而获得文件格式为目标格式的多媒体文件。目前,云计算平台以各节点中待处理的数据块队列的长度,作为对各节点负载大小的判断依据,即数据块队列的长度较短的节点被作为负载较轻的节点,数据块队列的长度较长的节点被作为负载较重的节点。从而,云计算平台据此将数据块发送给负载较轻的节点进行处理。但是,若长度较短的数据块队列中各数据块的转码所需要的时间较长,而长度较长的数据块队列中各数据块的转码所需要的时间较短,则可能出现数据块队列较短的节点的负载反而较重的情况,从而会使得发送至该节点的数据块的等待时间将较长,从而降低了对该数据块所属的整个多媒体文件进行转码的效率。

技术实现要素:
本发明实施例提供一种多媒体文件处理方法、装置及系统,用于提高对数据块所属的整个多媒体文件进行转码的效率。本发明实施例的第一个方面是提供一种多媒体文件处理方法,包括:根据集群中节点的数据块队列中至少一个数据块的预估时间,获得所述数据块队列的预估剩余时间;根据所述数据块队列的预估剩余时间,获得所述节点的负载;其中,所述数据块是正在所述集群中被处理的多媒体文件中的数据块,所述数据块的预估时间是根据所述数据块的数据量以及所述数据块所属的多媒体文件的预估处理速率获得的,所述多媒体文件的预估处理速率是与所述多媒体文件的类型对应的。结合第一个方面提供的多媒体文件处理方法,在第一种可能的实现方式中,所述数据块队列包括正在转码的数据块和/或等待转码的数据块;相应地,所述根据集群中节点的数据块队列中至少一个数据块的预估时间,获得所述数据块队列的预估剩余时间包括:根据所述正在转码的数据块的预估时间,以及所述正在转码的数据块已被处理的时间,获得所述正在转码的数据块的预估剩余时间;和/或,将所述等待转码的数据块的预估时间,作为所述等待转码的数据块的预估剩余时间;将所述正在转码的数据块的预估剩余时间和/或所述等待转码的数据块的预估剩余时间,计入所述数据块队列的预估剩余时间中。结合第一个方面或第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:根据所述节点的可用存储空间,以及所述节点中各数据块转码前的实际数据量、转码前预估的转码后的数据量和/或转码后的实际数据量,获得所述节点的剩余存储空间。结合第一个方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:根据所述集群中各节点的剩余存储空间和/或负载,为目标多媒体文件选择用于分割、转码和合并的节点。结合第一个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:根据所述目标多媒体文件的时长或源数据量,获得对所述目标多媒体文件进行分割的数量。结合第一个方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述目标多媒体文件的时长或源数据量,获得对所述目标多媒体文件进行分割的数量包括:所述分割的数量为第一数量count1和第二数量count2中的最小值;其中,count1=length/lengthLimit,length为所述目标多媒体文件的时长,lengthLimit为对每个数据块的数据量大小的限定值;count2=(sourceFileSize×ETR)/(timeLimit×sizeUnit),sourceFileSize为所述目标多媒体文件被转码前的源数据量,sizeUnit为与所述目标多媒体文件的类型对应的基准数据量,timeLimit为对所述目标多媒体文件被转码时间的限定值;ETR为所述基准数据量在主频为所述基准主频值的处理器中,转码为目标格式的数据的处理速率,作为所述目标多媒体文件的预估处理速率,该速率是基于频率表示的。结合第一个方面或第一种可能的实现方式,在第六种可能的实现方式中,所述节点中的每个所述数据块的预估时间evTime为:evTime=(SliceFileSize×freq)/(sizeUnit×freqUnit×ETR);其中,SliceFileSize为所述数据块的数据量,sizeUnit为与所述数据块所属的多媒体文件的类型对应的基准数据量,freqUnit为基准主频值,freq为实际的主频值;ETR为所述基准数据量在主频为所述基准主频值的处理器中,转码为目标格式的数据的处理速率,作为所述数据块所属的多媒体文件的预估处理速率,该速率是基于频率表示的。结合第一个方面的第六种可能的实现方式,在第七种可能的实现方式中,所述方法还包括:在所述数据块所属的多媒体文件在所述集群中被转码为所述目标格式的文件之后,利用所述数据块所属的多媒体文件在所述集群的各节点中分别实际占用的时间execTime,对所述ETR进行更新,获得更新后的ETRnew。结合第一个方面的第七种可能的实现方式,在第八种可能的实现方式中,所述更新后的ETRnew为:ETRnew=α×ETR+(1-α)×ExTR;其中,α为权重因子,0<α<1;ExTR为所述数据块所属的多媒体文件实际的处理速率,ExTR=(sourceFileSize×freq)/(execTime×sizeUnit×freqUnit),sourceFileSize为所述数据块所属的多媒体文件被转码前的源数据量。结合第一个方面的第二种可能的实现方式,在第九种可能的实现方式中,所述节点中每个所述数据块转码前预估的转码后的数据量evSliceFileSize为:evSliceFileSize=ESR×SliceFileSize/sizeUnit;其中,ESR为基准数据量SizeUnit在转码为目标格式后的数据量,所述sizeUnit为与所述数据块所属的多媒体文件的类型对应的基准数据量,SliceFileSize为所述数据块被转码前的源数据量。结合第一个方面提供的第九种可能的实现方式,在第十种可能的实现方式中,所述方法还包括:在所述数据块所属的多媒体文件在所述集群中被转码为所述目标格式的文件之后,利用所述数据块所属的多媒体文件在转码后的数据量tarFileSize与转码前的源数据量sourceFileSize的比值,对所述ESR进行更新,获得更新后的ESRnew。结合第一方面提供的第十种可能的实现方式,在第十一种可能的实现方式中,所述更新后的ESRnew为:ESRnew=β×ESR+(1-β)×tarFileSize/sourceFileSize,β为权重因子,0<β<1。本发明实施例的第二个方面是提供一种多媒体文件处理装置,包括:第一处理单元,用于根据集群中节点的数据块队列中至少一个数据块的预估时间,获得所述数据块队列的预估剩余时间;第二处理单元,用于根据所述数据块队列的预估剩余时间,获得所述节点的负载;其中,所述数据块是正在所述集群中被处理的多媒体文件中的数据块,所述数据块的预估时间是根据所述数据块的数据量以及所述数据块所属的多媒体文件的预估处理速率获得的,所述多媒体文件的预估处理速率是与所述多媒体文件的类型对应的。结合第二个方面提供的多媒体文件处理装置,在第一种可能的实现方式中,所述数据块队列包括正在转码的数据块和/或等待转码的数据块;相应地,所述第一处理单元还用于:根据所述正在转码的数据块的预估时间,以及所述正在转码的数据块已被处理的时间,获得所述正在转码的数据块的预估剩余时间;和/或,将所述等待转码的数据块的预估时间,作为所述等待转码的数据块的预估剩余时间;将所述正在转码的数据块的预估剩余时间和/或所述等待转码的数据块的预估剩余时间,计入所述数据块队列的预估剩余时间中;其中,所述节点中的每个所述数据块的预估时间evTime为:evTime=(SliceFileSize×freq)/(sizeUnit×freqUnit×ETR);其中,SliceFileSize为所述数据块的数据量,sizeUnit为与所述数据块所属的多媒体文件的类型对应的基准数据量,freqUnit为基准主频值,freq为实际的主频值;ETR为所述基准数据量在主频为所述基准主频值的处理器中,转码为目标格式的数据的处理速率,作为所述数据块所属的多媒体文件的预估处理速率,该速率是基于频率表示的。结合第二个方面或第一种可能的实现方式,在第二种可能的实现方式中,所述多媒体文件处理装置还包括:第三处理单元,用于根据所述节点的可用存储空间,以及所述节点中各数据块转码前的实际数据量、转码前预估的转码后的数据量和/或转码后的实际数据量,获得所述节点的剩余存储空间;其中,所述节点中每个所述数据块转码前预估的转码后的数据量evSliceFileSize为:evSliceFileSize=ESR×SliceFileSize/sizeUnit;其中,ESR为基准数据量SizeUnit在转码为目标格式后的数据量,所述sizeUnit为与所述数据块所属的多媒体文件的类型对应的基准数据量,SliceFileSize为所述数据块被转码前的源数据量。结合第二个方面的第二种可能的实现方式,在第三种可能的实现方式中,所述多媒体文件处理装置还包括:第四处理单元,用于根据所述集群中各节点的剩余存储空间和/或负载,为目标多媒体文件选择用于分割、转码和合并的节点。结合第二个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第四处理单元还用于:根据所述目标多媒体文件的时长或源数据量,获得对所述目标多媒体文件进行分割的数量;所述分割的数量为第一数量count1和第二数量count2中的最小值;其中,count1=length/lengthLimit,length为所述目标多媒体文件的时长,lengthLimit为对每个数据块的数据量大小的限定值;count2=(sourceFileSize×ETR)/(timeLimit×sizeUnit),sourceFileSize为所述目标多媒体文件被转码前的源数据量,sizeUnit为与所述目标多媒体文件的类型对应的基准数据量,timeLimit为对所述目标多媒体文件被转码时间的限定值;ETR为所述基准数据量在主频为所述基准主频值的处理器中,转码为目标格式的数据的处理速率,作为所述目标多媒体文件的预估处理速率,该速率是基于频率表示的。结合第二个方面提供的第四种可能的实现方式,在第五种可能的实现方式中,所述多媒体文件处理装置还包括:更新单元,用于在所述数据块所属的多媒体文件在所述集群中被转码为所述目标格式的文件之后,利用各所述数据块在所述集群中的各节点中分别实际占用的处理时间之和execTime,对所述ETR进行更新,获得更新后的ETRnew;所述更新后的ETRnew为:ETRnew=α×ETR+(1-α)×ExTR;其中,α为权重因子,0<α<1;ExTR为所述数据块所属的多媒体文件实际的处理速率,ExTR=(sourceFileSize×freq)/(execTime×sizeUnit×freqUnit),sourceFileSize为所述数据块所属的多媒体文件被转码前的源数据量。结合第二个方面的第五种可能的实现方式,在第六种可能的实现方式中,所述更新单元还用于:在所述数据块所属的多媒体文件在所述集群中被转码为所述目标格式的文件之后,利用所述数据块所属的多媒体文件在转码后的数据量tarFileSize与转码前的源数据量sourceFileSize的比值,对所述ESR进行更新,获得更新后的ESRnew;所述更新后的ESRnew为:ESRnew=β×ESR+(1-β)×tarFileSize/sourceFileSize,β为权重因子,0<β<1。本发明实施例的第三个方面是提供一种服务器,包括上述多媒体文件处理装置。本发明实施例的第四个方面是提供一种多媒体文件处理系统,包括管理器和至少一个集群;每个集群包括上述的多媒体文件处理装置或服务器以及至少一个节点,所述多媒体文件处理装置或所述服务器与所述至少一个节点通信连接;所述管理器与每个集群中的多媒体文件处理装置或服务器通信连接,用于在存在平均负载大于或等于重载阈值的重载集群时,通过所述重载集群的多媒体文件处理装置或服务器为所述重载集群增加节点;或者,在存在平均负载小于或等于轻载阈值的轻载集群时,通过所述轻载集群的多媒体文件处理装置或服务器为所述轻载集群减少节点;或者,将在预设时间长度内持续处于空闲状态的集群删除;其中,所述平均负载为在检测时刻集群中各节点的负载的平均值。本发明实施例提供的多媒体文件处理方法、装置及系统,通过根据集群中节点的数据块队列中至少一个数据块的预估时间,获得所述数据块队列的预估剩余时间;根据所述数据块队列的预估剩余时间,获得所述节点的负载;根据数据块队列中当前的任务被处理完所需的时间,对节点的负载轻重进行判断,更为合理,能够避免将数据块队列较短而所需的处理时间较长的节点作为轻负载节点,从而能够有效地减少不必要的等待时间,有效地提高了对多媒体文件进行转码的效率。附图说明图1为本发明实施例提供的多媒体文件处理方法的流程图;图2为本发明实施例提供的另一多媒体文件处理方法的流程图;图3为本发明实施例提供的多媒体文件处理装置的结构示意图;图4为本发明实施例提供的另一多媒体文件处理装置的结构示意图;图5为本发明实施例提供的又一多媒体文件处理装置的结构示意图;图6为本发明实施例提供的服务器的结构示意图;图7为本发明实施例提供的多媒体文件处理系统的结构示意图。具体实施方式由于以节点中数据块队列的长度为依据,对节点负载大小进行判断的方法,会降低多媒体文件在云计算平台中被转码的效率,因此本发明各实施例不再单纯地以数据块队列的长度为判断依据,而是以数据块队列中各数据块处理完成所需要的时间长度为判断依据。利用本发明各实施例中的方法,能够避免出现利用数据块队列虽然较短,但是需要等待的时间较长的节点,将多媒体文件进行处理,从而有效地提高了多媒体文件在云计算平台中被转码的效率。本发明各实施例中所述的对多媒体文件进行处理的方法,可以应用在云计算平台或多种集群系统中。所述的多媒体文件可以为音频文件或视频文件。本发明各实施例中所述的多媒体文件处理装置可以为独立的控制设备,例如服务器;也可以为控制设备中的功能模块。图1为本发明实施例提供的多媒体文件处理方法的流程图,如图1所示,该方法包括:101、根据集群中节点的数据块队列中至少一个数据块的预估时间,获得所述数据块队列的预估剩余时间。其中,所述数据块是正在所述集群中被处理的多媒体文件中的数据块,所述数据块的预估时间是根据所述数据块的数据量以及所述数据块所属的多媒体文件的预估处理速率获得的,所述多媒体文件的预估处理速率是与所述多媒体文件的类型对应的。多媒体文件的类型可以为音频文件或视频文件中的各种文件类型。具体的,集群中可以包括一个或多个节点,这些节点可以分别用于对多媒体文件进行分割、转码以及合并。用于分割的节点,将多媒体文件拆分为两个或多个数据块;用于转码的节点可以为一个或多个,分别将各数据块转码为所需要的数据格式;用于合并的节点,将各转码后的数据块进行合并,获得数据格式为所需格式的多媒体文件。其中,数据块的数量可以大于或等于用于转码的节点的数量,也可以小于用于转码的节点的数量,为每个用于转码的节点分配的数据块的数量,取决于该节点的负载情况。即若该节点的负载较轻,则可以被分配较多的数据块;若该节点的负载较重,则可以被分配较少的数据块。用于分割、转码以及合并的节点可以不是专用的节点。也就是说,用于对某个多媒体文件进行分割的节点,也可以用于对其他多媒体文件进行转码或者合并;用于对某个多媒体文件进行转码的节点,也可以用于对其他多媒体文件进行分割或合并;用于对某个多媒体文件进行合并的节点,也可以用于对其他多媒体文件进行分割或转码。该集群可以由一台或多台服务器构成,集群中的各节点可以不是实体设备,可以是虚拟机。一个集群中构造多个虚拟机作为多个节点,一个集群中的多个节点可以属于同一台服务器或者不同的服务器。集群中每个节点的负载就是当前其所需要处理的任务量。在本发明各实施例中将新的需要处理的多媒体文件称为目标多媒体文件。当接收到目标多媒体文件时,需要为该目标多媒体文件选择用于进行分割、转码和合并的节点,因此,需要对当前各节点的负载大小进行判断。以下以对单个节点为例,对判断负载的方法进行说明。节点中的任务量通常以数据块队列的形式体现。由于节点对多媒体文件进行分割时所需的时间,以及节点对数据块进行合并所需的时间仅占分割、转码和合并整个过程用时的5%-10%,与节点对数据块进行转码所需的时间相比较短,因此本发明各实施例中将这两部分时间进行忽略,仅计算节点对数据块进行转码的时间。数据块队列中可能包括正在转码的数据块或等待转码的数据块,也可能同时包括正在转码的数据块和等待转码的数据块。对于正在转码的数据块,获取其距离转码完成还需要的时间。即正在转码的数据块的预估时间与已处理时间的差值,作为正在转码的数据块的剩余预估时间。对于等待转码的数据块,获取其预估时间,作为等待转码的数据块的剩余预估时间。数据块队列中如果仅有正在转码的数据块,则将正在转码的数据块的剩余预估时间作为数据块队列的预估剩余时间;数据块队列中如果仅有等待转码的数据块,则将各等待转码的数据块的剩余预估时间作为数据块队列的预估剩余时间;数据块队列中如果既包括正在转码的数据块,又包括等待转码的数据块,则将正在转码的数据块的剩余预估时间以及各等待转码的数据块的剩余预估时间之和,作为数据块队列的预估剩余时间。其中,正在转码的数据块和等待转码的数据块为数据块当前所处的状态,即数据块是正在被转码还是等待被转码。因此,对正在转码的数据块和等待转码的数据块计算预估时间的方法是相同的。本发明中引入了多媒体文件的类型与多媒体文件的预估处理速率之间的对应关系。该对应关系可以存储在单独的数据库中,也可以存储在多媒体文件处理装置中。预估处理速率是根据对多媒体文件进行处理的历史记录,设置的基准数据量在主频为基准主频值的处理器中,转码为目标格式时所需的时间。根据不同类型多媒体文件的特征,建立多媒体文件类型与预估处理速率之间的对应关系。从而,多媒体文件处理装置根据多媒体文件的类型,能够查询到该多媒体文件对应的预估处理速率。多媒体文件处理装置获得每个数据块的预估时间的方法为,根据数据块的实际数据量,以及数据块所属的多媒体文件的预估处理速率获得。由于预估处理速率表征的是基准数据量进行转码所需的时间,因此,多媒体文件处理装置根据数据块的实际数据量和预估处理速率,能够获得数据块的预估时间。102、根据所述数据块队列的预估剩余时间,获得所述节点的负载。具体的,多媒体文件处理装置在获得节点的数据块队列的预估剩余时间之后,可以将预估剩余时间的数值作为该节点的负载大小。如果数据块队列的预估剩余时间的数值较大,表示该节点尚需要较长的时间才能够完成对已有任务的处理,即该节点的负载较重,再接收到的新的数据块需要在队列中等待的时间将较长;如果数据块队列的预估剩余时间的数值较小,表示该节点需要较短的时间就能够完成对已有任务的处理,再接收到的新的数据块需要在队列中等待的时间将较短。通过这样的方法对节点的负载轻重进行判断,与简单地根据数据块队列的长度进行判断相比,更为合理,更能体现节点实际的负载轻重。本发明实施例提供的多媒体文件处理方法,通过根据集群中节点的数据块队列中至少一个数据块的预估时间,获得所述数据块队列的预估剩余时间;根据所述数据块队列的预估剩余时间,获得所述节点的负载;根据数据块队列中当前的任务被处理完所需的时间,对节点的负载轻重进行判断,更为合理,能够避免将数据块队列较短而所需的处理时间较长的节点作为轻负载节点,从而能够有效地减少不必要的等待时间,有效地提高了对多媒体文件进行转码的效率。图2为本发明实施例提供的另一多媒体文件处理方法的流程图,如图2所示,该方法包括:201、根据集群中节点的数据块队列中正在转码的数据块和/或等待转码的数据块的预估时间,获得所述数据块队列的预估剩余时间。具体的,根据所述正在转码的数据块的预估时间,以及所述正在转码的数据块已被处理的时间,获得所述正在转码的数据块的预估剩余时间;和/或,将所述等待转码的数据块的预估时间,作为所述等待转码的数据块的预估剩余时间;将所述正在转码的数据块的预估剩余时间和/或所述等待转码的数据块的预估剩余时间,计入所述数据块队列的预估剩余时间中。每个节点在其数据块队列所包括的数据块的数量和/或状态发生变化时,及时地向多媒体文件处理装置更新其数据块队列的信息,以使多媒体文件处理装置能够根据更新的数据块队列的信息,计算出更新的数据块队列的预估剩余时间。当有新的多媒体文件,即目标多媒体文件,需要在集群中进行转码时,多媒体文件处理装置会根据当前最近一次计算出的各节点数据块队列的预估剩余时间,以确定当前各节点的负载。在步骤101所述实现方式的基础上,所述节点中的每个所述数据块的预估时间evTime为:evTime=(SliceFileSize×freq)/(sizeUnit×freqUnit×ETR);其中,SliceFileSize为所述数据块的数据量,sizeUnit为与所述数据块所属的多媒体文件的类型对应的基准数据量,freqUnit为基准主频值,freq为实际的主频值;ETR为所述基准数据量在主频为所述基准主频值的处理器中,转码为目标格式的数据的处理速率,作为所述数据块所属的多媒体文件的预估处理速率,该速率是基于频率表示的。202、根据所述数据块队列的预估剩余时间,获得所述节点的负载。具体的,在步骤102所述实现方式的基础上,节点的负载(workload)为其数据块队列中已有的任务,被处理完成还需要的时间。其中,evTime是指单个数据块的预估时间;curTime和starTime分别是当前时刻和该数据块开始进行处理的时刻;上式中的第一项,即下标为processing的求和项,是对数据块队列中正在转码的数据块剩余预估时间进行求和;上式中的第二项,即下标为preceding的求和项,是对数据块队列中等待转码的数据块的预估时间进行求和。进一步地,与各多媒体文件的类型对应的ETR可以不是固定设置的数值,可以在初始数值的基础上,通过迭代运算的方式动态地进行更新,以使对数据块的预估时间的计算更准确。在所述数据块所属的多媒体文件在所述集群中被转码为所述目标格式的文件之后,利用各所述数据块在所述集群中的各节点中分别实际占用的处理时间之和execTime,对所述ETR进行更新,获得更新后的ETRnew。所述更新后的ETRnew为:ETRnew=α×ETR+(1-α)×ExTR;其中,α为权重因子,0<α<1;ExTR为所述数据块所属的多媒体文件实际的处理速率,ExTR=(sourceFileSize×freq)/(execTime×sizeUnit×freqUnit),sourceFileSize为所述数据块所属的多媒体文件被转码前的源数据量。ExTR与execTime成反比,与sourceFileSize和sizeUnit的比值成正比,与freq和freqUnit的比值成正比。β的取值越大,则迭代运算的速率越小。优选的,α的取值可以为,0.3≤α≤0.7。203、根据所述节点的可用存储空间,以及所述节点中各数据块转码前的实际数据量、转码前预估的转码后的数据量和/或转码后的实际数据量,获得所述节点的剩余存储空间。具体的,多媒体文件处理装置在为目标多媒体文件选择用于分割、转码和合并的节点时,不仅需要考虑节点的负载,还需要考虑节点中的剩余存储空间的大小。由于同一个数据块在不同的处理阶段,所占用的存储空间的大小是不相同的,因此在对节点的剩余存储空间进行预估时,需要对处于不同处理阶段的数据块分别采用相应的算法进行预估。对于分割节点而言,分割节点接收到的目标多媒体文件之后,目标多媒体文件在未被分割完成之前,由于在分割过程中目标多媒体文件作为中间文件会被暂时保存,因此对尚未被分割完成的目标多媒体文件,预估其所占用的存储空间的大小为其源数据量的两倍;目标多媒体文件在被分割为若干个数据块之后,将目标多媒体文件的源数据量所占用的存储进行释放,若干个数据块所占用的存储空间,即为这些数据块实际数据量所需要占用的存储空间;当这些数据块被发送给相应的转码节点之后,其在分割节点中所占用的存储空间将释放。对于转码节点而言,对于其中已接收到,而尚未进行转码的数据块,由于在转码过程中,转码前的数据块将作为中间文件暂时被保存,因此对尚未被转码完成的数据块,预估其所占用的存储空间的大小为,数据块实际数据量占用的存储空间与预估其在转码后的数据量将占用的存储空间之和;数据块被转码完成之后,删除将被转码前数据块,被转码后的数据块所占用的存储空间即为其实际数据量所占用的存储空间。转码节点将数据块进行转码完成后,发送给合并节点。如果转码节点不是后续的合并节点,则其在将数据块发送给合并节点之后,将这些数据块所占用的存储空间进行释放。如果转码节点继续作为合并节点进行使用,则不需要将转码完成的数据块进行释放。由于在合并完成之前,各数据块会被作为中间文件暂时保存在合并节点中,在接收到其他各需要进行合并的数据块之后,对尚未被合并完成的数据块时,预估其所占用的存储空间的大小为该合并节点这些数据块所占用的存储空间即为其实际数据量所占存储空间,与预估合并后的文件将占用的存储空间之和;在合并完成后,合并前的各数据块可以被释放,从而,合并后的文件所占用的存储空间即为其实际数据量所占用的存储空间的大小。根据上述对节点的存储空间的占用原则,多媒体文件处理装置可以根据节点数据块队列中各数据块所处的状态,分别计算出各节点的剩余存储空间。其中,节点的剩余存储空间即为节点所配置的可用存储空间与数据块所占用的存储空间的差值。进一步地,所述节点中每个所述数据块转码前预估的转码后的数据量evSliceFileSize为:evSliceFileSize=ESR×SliceFileSize/sizeUnit;其中,ESR为基准数据量SizeUnit在转码为目标格式后的数据量,所述sizeUnit为与所述数据块所属的多媒体文件的类型对应的基准数据量,SliceFileSize为所述数据块被转码前的源数据量。进一步地,与各多媒体文件的类型对应的ESR可以不是固定设置的数值,可以在初始数值的基础上,通过迭代运算的方式动态地进行更新,以使对节点的剩余存储空间的计算更准确。在所述数据块所属的多媒体文件在所述集群中被转码为所述目标格式的文件之后,利用所述数据块所属的多媒体文件在转码后的数据量tarFileSize与转码前的源数据量sourceFileSize的比值,对所述ESR进行更新,获得更新后的ESRnew。所述更新后的ESRnew为:ESRnew=β×ESR+(1-β)×tarFileSize/sourceFileSize,β为权重因子,0<β<1。β的取值越大,则迭代运算的速率越小。优选的,β的取值可以为,0.3≤β≤0.7。204、根据所述集群中各节点的剩余存储空间和/或负载,为目标多媒体文件选择用于分割、转码和合并的节点。具体的,多媒体文件处理装置在为目标多媒体文件选择分割节点时,可以选择剩余存储空间大于或等于目标多媒体文件的实际数据量与分割成的若干数据块的数据量之和的节点中,负载最轻的节点。多媒体文件处理装置在为目标多媒体文件选择转码节点时,可以依次为每个数据块进行选择。在为每个数据块选择转码节点时,选择剩余存储空间大于或等于该数据块的实际数据量与预估转码后的数据量之和的节点中,负载最轻的节点。在依次为每个数据块选择转码节点的过程中,可能出现将两个或多个数据块分配的转码节点是同一个节点的情况。在各转码节点在分别完成对目标多媒体文件的数据块的转码之后,可以选择剩余存储空间大于或等于各数据块的数据量与预估转码后文件的数据量之和的节点中,包括该多媒体文件的数据块最多的节点,作为合并节点。将其他转码节点上的属于该目标多媒体文件的数据块均发送给该合并节点。这样处理的好处在于,有利于提高合并操作的效率,减少不必要的通信开销。需要说明的是,本发明各实施例中的各节点均与多媒体处理装置通信连接,并将各自的信息发送给多媒体处理装置,并在各自的状态发生变化时,及时地将更新的信息发送给多媒体处理装置。从而,多媒体处理装置能够获知各节点中的数据块的数量和状态等多种信息。用于对目标多媒体文件进行分割的分割节点,用于对目标多媒体文件的各数据块进行转码的转码节点,以及用于对各数据块进行合并的合并节点,具体进行分割、转码和合并的方法可以采用与现有技术中类似的实现方式。进一步地,由于如果分割的数据块越多,相应地处理开销将较大,还可能出现由于分割的数据块过小,导致分割失败的情况;如果分割的数据块越少,则难以发挥出集群中各节点并行处理的效率。因此,多媒体处理装置可以通过如下方式获得对目标多媒体文件进行分割的数据块的数量。多媒体处理装置根据所述目标多媒体文件的时长或源数据量,获得对所述目标多媒体文件进行分割的数量。所述分割的数量为第一数量count1和第二数量count2中的最小值;其中,count1=length/lengthLimit,length为所述目标多媒体文件的时长,lengthLimit为对每个数据块的数据量大小的限定值;count2=(sourceFileSize×ETR)/(timeLimit×sizeUnit),sourceFileSize为所述目标多媒体文件被转码前的源数据量,sizeUnit为与所述目标多媒体文件的类型对应的基准数据量,timeLimit为对所述目标多媒体文件被转码时间的限定值;ETR为所述基准数据量在主频为所述基准主频值的处理器中,转码为目标格式的数据的处理速率,作为所述目标多媒体文件的预估处理速率,该速率是基于频率表示的。图3为本发明实施例提供的多媒体文件处理装置的结构示意图,如图3所示,该装置包括:第一处理单元11和第二处理单元12。第一处理单元11,用于根据集群中节点的数据块队列中至少一个数据块的预估时间,获得所述数据块队列的预估剩余时间;第二处理单元12,用于根据所述数据块队列的预估剩余时间,获得所述节点的负载;其中,所述数据块是正在所述集群中被处理的多媒体文件中的数据块,所述数据块的预估时间是根据所述数据块的数据量以及所述数据块所属的多媒体文件的预估处理速率获得的,所述多媒体文件的预估处理速率是与所述多媒体文件的类型对应的。进一步地,所述数据块队列包括正在转码的数据块和/或等待转码的数据块;相应地,所述第一处理单元11还用于:根据所述正在转码的数据块的预估时间,以及所述正在转码的数据块已被处理的时间,获得所述正在转码的数据块的预估剩余时间;和/或,将所述等待转码的数据块的预估时间,作为所述等待转码的数据块的预估剩余时间;将所述正在转码的数据块的预估剩余时间和/或所述等待转码的数据块的预估剩余时间,计入所述数据块队列的预估剩余时间中;其中,所述节点中的每个所述数据块的预估时间evTime为:evTime=(SliceFileSize×freq)/(sizeUnit×freqUnit×ETR);其中,SliceFileSize为所述数据块的数据量,sizeUnit为与所述数据块所属的多媒体文件的类型对应的基准数据量,freqUnit为基准主频值,freq为实际的主频值;ETR为所述基准数据量在主频为所述基准主频值的处理器中,转码为目标格式的数据的处理速率,作为所述数据块所属的多媒体文件的预估处理速率,该速率是基于频率表示的。图4为本发明实施例提供的另一多媒体文件处理装置的结构示意图,如图4所示,该装置还可以包括:第三处理单元13。第三处理单元13,用于根据所述节点的可用存储空间,以及所述节点中各数据块转码前的实际数据量、转码前预估的转码后的数据量和/或转码后的实际数据量,获得所述节点的剩余存储空间;其中,所述节点中每个所述数据块转码前预估的转码后的数据量evSliceFileSize为:evSliceFileSize=ESR×SliceFileSize/sizeUnit;其中,ESR为基准数据量SizeUnit在转码为目标格式后的数据量,所述sizeUnit为与所述数据块所属的多媒体文件的类型对应的基准数据量,SliceFileSize为所述数据块被转码前的源数据量。进一步地,所述多媒体文件处理装置还可以包括:第四处理单元14。第四处理单元14,用于根据所述集群中各节点的剩余存储空间和/或负载,为目标多媒体文件选择用于分割、转码和合并的节点。进一步地,所述第四处理单元14还用于:根据所述目标多媒体文件的时长或源数据量,获得对所述目标多媒体文件进行分割的数量;所述分割的数量为第一数量count1和第二数量count2中的最小值;其中,count1=length/lengthLimit,length为所述目标多媒体文件的时长,lengthLimit为对每个数据块的数据量大小的限定值;count2=(sourceFileSize×ETR)/(timeLimit×sizeUnit),sourceFileSize为所述目标多媒体文件被转码前的源数据量,sizeUnit为与所述目标多媒体文件的类型对应的基准数据量,timeLimit为对所述目标多媒体文件被转码时间的限定值;ETR为所述基准数据量在主频为所述基准主频值的处理器中,转码为目标格式的数据的处理速率,作为所述目标多媒体文件的预估处理速率,该速率是基于频率表示的。进一步地,所述多媒体文件处理装置还可以包括:更新单元15。更新单元15,用于在所述数据块所属的多媒体文件在所述集群中被转码为所述目标格式的文件之后,利用各所述数据块在所述集群中的各节点中分别实际占用的处理时间之和execTime,对所述ETR进行更新,获得更新后的ETRnew;所述更新后的ETRnew为:ETRnew=α×ETR+(1-α)×ExTR;其中,α为权重因子,0<α<1;ExTR为所述数据块所属的多媒体文件实际的处理速率,ExTR=(sourceFileSize×freq)/(execTime×sizeUnit×freqUnit),sourceFileSize为所述数据块所属的多媒体文件被转码前的源数据量。进一步地,所述更新单元15还用于:在所述数据块所属的多媒体文件在所述集群中被转码为所述目标格式的文件之后,利用所述数据块所属的多媒体文件在转码后的数据量tarFileSize与转码前的源数据量sourceFileSize的比值,对所述ESR进行更新,获得更新后的ESRnew;所述更新后的ESRnew为:ESRnew=β×ESR+(1-β)×tarFileSize/sourceFileSize,β为权重因子,0<β<1。具体的,本发明实施例中所述的多媒体文件处理装置对多媒体文件进行处理的方法,可以参见上述对应的方法实施例中所述的操作步骤,此处不再赘述。图5为本发明实施例提供的又一多媒体文件处理装置的结构示意图,如图5所示,该装置包括:处理器21、存储器22、总线23和通信接口24。处理器21、存储器22和通信接口24之间通过总线23连接并完成相互间的通信。处理器21可能为单核或多核中央处理单元(CentralProcessingUnit,CPU),或者为特定集成电路(ApplicationSpecificIntegratedCircuit,ASIC),或者为被配置成实施本发明实施例的一个或多个集成电路。存储器22可以为高速RAM存储器,也可以为非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。存储器22用于存放程序221。具体的,程序221中可以包括程序代码,所述程序代码包括计算机操作指令。处理器21运行程序221,以执行:根据集群中节点的数据块队列中至少一个数据块的预估时间,获得所述数据块队列的预估剩余时间;根据所述数据块队列的预估剩余时间,获得所述节点的负载;其中,所述数据块是正在所述集群中被处理的多媒体文件中的数据块,所述数据块的预估时间是根据所述数据块的数据量以及所述数据块所属的多媒体文件的预估处理速率获得的,所述多媒体文件的预估处理速率是与所述多媒体文件的类型对应的。具体的,本发明实施例中所述的多媒体文件处理装置对多媒体文件进行处理的方法,可以参见上述对应的方法实施例中所述的操作步骤,此处不再赘述。图6为本发明实施例提供的服务器的结构示意图,如图6所示,该服务器2包括如图3、图4或图5所示的多媒体文件处理装置1。具体的,本发明实施例中所述的服务器对多媒体文件进行处理的方法,可以参见上述对应的方法实施例中所述的操作步骤,此处不再赘述。图7为本发明实施例提供的多媒体文件处理系统的结构示意图,如图7所示,该多媒体文件处理系统包括:管理器3和至少一个集群4;每个集群4包括如图3、图4或图5所示的多媒体文件处理装置1,或者如图6所示的服务器2以及至少一个节点5,所述多媒体文件处理装置1或所述服务器2与所述至少一个节点5通信连接;需要说明的是,图7中仅示出了集群中包括多媒体文件处理装置3的情况。所述管理器3与每个集群4中的多媒体文件处理装置1或服务器2通信连接,用于在存在平均负载大于或等于重载阈值的重载集群时,通过所述重载集群的多媒体文件处理装置1或服务器2为所述重载集群增加节点;或者,在存在平均负载小于或等于轻载阈值的轻载集群时,通过所述轻载集群的多媒体文件处理装置1或服务器2为所述轻载集群减少节点;或者,将在预设时间长度内持续处于空闲状态的集群删除;其中,所述平均负载为在检测时刻集群中各节点的负载的平均值。具体的,多媒体文件处理系统可以包括一个或多个集群,各集群的多媒体文件处理装置或服务器分别与管理器通信连接。由该管理器对各集群和各集群中的节点的数量进行动态调整。多媒体文件处理系统中的多个集群均为虚拟机的形式,也就是说,多个集群可以由多个服务器构成,一个集群可以存在于单独的服务器上,也可以存在于多个服务器上。正是由于集群和节点均为虚拟形式,因此可以在管理器的控制下进行增加或减少。管理器在各服务器所组成的多媒体文件处理系统的处理能力的范围内,通过定期或不定期地调整各集群和集群中节点的规模,能够有效地提高对各集群中资源的利用率。以下通过多媒体文件处理系统进行举例说明,在本实施例中的多媒体文件为视频文件,对视频文件的视频转码(videotrans-coding)过程和调度策略(schedulingpolicies)进行说明。在上述实施例的基础上,管理器可以为用于将程序连接到有用系统的弹性功用计算架构(ElasticUtilityComputingArchitectureforLinkingYourProgramsToUsefulSystems,Eucalyptus)管理器,多媒体文件处理系统还可以包括网络(Web)服务器。在本实施例中将多媒体文件处理装置称为调度器(Scheduler)。在多媒体文件处理系统中,Web服务器和Eucalyptus管理器均只有一个,每个集群中有一个调度器和至少一个节点。调度器和节点运行在Eucalyptus云计算系统的虚拟机上,由Eucalyptus管理器动态创建、停止并依据实际负载实现处理资源的调整。Web服务器为用户提供友好的交互接口。用户连接到Web服务器,在需要将目标多媒体文件转码为目标格式时,通过网页提交任务,设置任务优先级、转码信息,如视频格式、视频帧率、分辨率、输出结果文件名等。Web服务器响应用户提交的任务,为每一个任务分配唯一的任务号,新建任务专用的目录,并创建对应的可扩展标记语言(extensiblemarkuplanguage,XML)描述文件。用户提交新任务时,Web接收用户上传原始视频文件,将文件保存到任务的专用目录;根据各集群的动态负载信息和剩余存储空间选择合适的集群及节点运行此任务,并向此集群的调度器发出指令。Web服务器选择用于对该任务进行处理的集群时,可以根据各集群的平均负载进行选择。调度器接收Web服务器创建的任务XML描述文件后,解析来自Web服务器的XML任务描述文件,提取用户设置的参数及原始视频文件的信息,结合调度器所在集群的动态负载信息,确定任务的调度,即确定对视频文件进行分割的数量,以及用于分割、转码和合并的节点。节点接收调度器视频处理指令以及输入文件,按照指令的要求处理视频文件,然后将结果传递给后续节点。视频分割完成后,分割节点将结果传递给转码节点,转码完成后,转码节点传递给合并节点。作业运行完成后,节点向调度器报告完成此作业所耗费的实际时间及存储空间的消耗。合并完毕后将结果视频上传给Web服务器,以供用户下载,然后报告调度器此任务的合并操作完成。调度器接收节点作业运行状态的信息报告,如数据传输完成、转码完毕、合并完毕以及实际执行时间及存储空间的消耗等;并将此集群的负载信息定时地上报给Web服务器和Eucalyptus管理器,作为预估新任务运行时间以及存储空间的依据。目标多媒体文件经过节点分割、转码、合并完成后,Web服务器接收合并节点的结果文件;在Web页面上,将输出文件提供给用户下载。Eucalyptus管理器管理所有集群,依据实际负载的变动,自适应地扩展、减少集群中的节点,从而合理使用资源并提高系统效率。当集群中节点的平均负载超过最大负载阈值,Eucalyptus管理器创建新的节点,并添加到集群中;当集群中节点的平均负载低于最小负载阈值时,Eucalyptus管理器减少集群中的节点来减少资源开销。具体的,本发明实施例中所述的多媒体文件处理系统对多媒体文件进行处理的方法,可以参见上述对应的方法实施例中所述的操作步骤,此处不再赘述。本发明实施例提供的多媒体文件处理方法、装置及系统,能够发挥云计算平台的资源管理优势,考虑了对多媒体文件进行转码过程中的计算及存储的成本开销,具有较低的时间复杂度,实现了系统负载均衡,提高了对一个或多个多媒体文件进行转码的效率;通过采用浏览器/服务器(Browser/Server,B/S)结构,各功能单元独立且协同工作,以简单方便的服务方式为更多的用户提供多媒体文件的转码服务。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1