视频转码方法、装置及系统与流程

文档序号:17728450发布日期:2019-05-22 02:40阅读:207来源:国知局
视频转码方法、装置及系统与流程

本申请涉及视频处理技术领域,尤其涉及视频转码方法、装置及系统。



背景技术:

视频转码是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。

目前主流的视频转码方法是基于hadoop的分布式转码。hadoop是一种开源的分布式处理框架,可以将大量廉价的硬件设备组成分布式集群,并在集群上存储数据和运行程序。在基于hadoop的分布式转码方案中,先对视频分割,然后针对分割后的视频分片创建与各个视频分片对应的转码任务,将转码任务调度到集群中合适的转码服务器上运行,实现分布式转码。

转码过程中,各个转码任务所需的计算资源并不相同,如高清晰度视频在转码时需要的计算资源多,低清晰度视频在转码时需要的计算资源少。然而,hadoop在搭建集群时,需要用户按照各个转码服务器的计算资源,配置每个转码服务器上执行的转码任务数量,从而使得每个转码任务所占用的计算资源被提前分配好,转码过程中不会再重新分配。这就可能会导致集群中部分转码服务器的计算资源闲置,而另一部分转码服务器的计算资源紧张,使得集群的计算资源不能被合理利用,转码效率不高。



技术实现要素:

有鉴于此,本申请的目的在于提供一种视频转码方法、装置及系统,以提高转码效率。

为实现上述目的,一方面,本申请提供了一种视频转码方法,包括:

从至少一个视频转码任务中确定待处理的视频转码任务;

确定所述视频转码任务所需的计算资源;

分别确定集群中各个转码服务器的空闲计算资源;

从所述集群中确定空闲计算资源能够满足所述视频转码任务所需的计算资源的目标转码服务器;

将所述视频转码任务分配给所述目标转码服务器,以使得所述目标转码服务器执行所述视频转码任务。

优选地,所述从所述集群中确定空闲计算资源能够满足所述视频转码任务所需的计算资源的目标转码服务器,包括:

判断所述集群中是否存在空闲计算资源能够满足所述视频转码任务所需的计算资源的至少一个转码服务器;

如果存在所述至少一个转码服务器,从所述至少一个转码服务器中确定目标转码服务器;

如果不存在,则在满足预设条件时,返回执行所述分别确定集群中各个转码服务器的空闲计算资源的操作,以确定出目标转码服务器。

优选地,所述分别确定所述视频转码任务的集群中各个转码服务器的空闲计算资源,包括:

获得所述集群的资源管理服务器发送的所述集群中各个转码服务器的空闲计算资源信息;其中所述资源管理服务器接收并存储所述集群中各个转码服务器上报的空闲计算资源信息。

优选地,所述将所述视频转码任务分配给所述目标转码服务器,包括:

向所述资源管理服务器发送任务分配指示,所述任务分配指示用于指示所述资源管理服务器将所述视频转码任务分配给所述目标转码服务器。

优选地,所述从所述至少一个转码服务器中确定目标转码服务器,包括:

在所述至少一个转码服务器中存在未执行转码任务的转码服务器的情况下,从所述未执行转码任务的转码服务器中确定目标转码服务器;

在所述至少一个转码服务器中不存在未执行转码任务的转码服务器的情况下,则从所述至少一个转码服务器中空闲计算资源最多的转码服务器中确定目标转码服务器。

优选地,所述从至少一个视频转码任务中确定待处理的视频转码任务,包括:

获得至少一个视频转码任务,每个所述视频转码任务对应一个待转码的视频;

确定每个所述视频转码任务对应的视频的视频时长;

将视频时长小于预设时长的视频对应的视频转码任务确定为待处理的视频转码任务。

优选地,所述从至少一个视频转码任务中确定待处理的视频转码任务,包括:

确定所述至少一个视频转码任务的优先级;

将优先级最高的视频转码任务确定为待处理的视频转码任务。

又一方面,本申请还提供了一种视频转码装置,包括:

转码任务确定单元,用于从至少一个视频转码任务中确定待处理的视频转码任务;

所需资源确定单元,用于确定所述转码任务确定单元中确定的视频转码任务所需的计算资源;

空闲资源确定单元,用于分别确定集群中各个转码服务器的空闲计算资源;

目标转码服务器确定单元,用于从所述集群中确定所述空闲资源确定单元确定的所述空闲计算资源能够满足所述所需资源确定单元确定的所述视频转码任务所需的计算资源的目标转码服务器;

转码任务分配单元,用于将所述视频转码任务分配给所述目标转码服务器确定单元确定出的所述目标转码服务器,以使得所述目标转码服务器执行所述视频转码任务。

优选地,所述目标转码服务器确定单元具体用于:

判断集群中是否存在空闲计算资源能够满足所述视频转码任务所需的计算资源的至少一个转码服务器;

如果存在所述至少一个转码服务器,从所述至少一个转码服务器中确定目标转码服务器;

如果不存在,则在满足预设条件时,执行所述空闲资源确定单元的操作,以确定出目标转码服务器。

又一方面,本申请还提供了一种视频转码系统,包括:集群;

所述集群包括资源管理服务器、调度服务器和至少一个转码服务器;

所述资源管理服务器,用于接收并存储所述转码服务器上报的空闲计算资源信息,并将所述至少一个转码服务器的空闲计算资源信息发送给调度服务器;

所述调度服务器,用于按照如上述视频转码方法分配待处理的视频转码任务至目标转码服务器,以使得所述目标转码服务器执行所述视频转码任务;

所述转码服务器,用于执行所述视频转码任务;并向所述资源管理服务器上报自身的空闲计算资源信息。

由以上方案可知,本申请实施例中,在进行视频转码任务调度时,根据待处理的视频转码任务所需的计算资源,在集群中确定空闲计算资源能满足该视频转码任务所需的计算资源的转码服务器,并将该视频转码任务分配至该转码服务器,实现了按需分配资源,从而更为合理的为集群中转码服务器分配视频转码任务,有利于减少集群中的计算资源无法被均衡利用的情况,进而有利于提高集群的计算资源利用率,提高转码效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本申请实施例的视频转码的系统的一种组成架构示意图;

图2是本申请实施例的视频转码方法的一种流程示意图;

图3是本申请实施例的视频转码方法的又一种流程示意图;

图4是本申请实施例的视频转码装置的一种组成示意图。

具体实施方式

相关术语解释:

计算资源:一般指计算机程序运行时所需的cpu资源、内存资源、硬盘资源和网络资源。

mesos:开源分布式资源管理框架,能够对分布式集群做细粒度资源分配,细粒度的资源分配是指直接按照任务实际需求分配资源,这种分配机制可大大提高资源利用率。mesos是主/从结构,其中,主节点,用于协调所有从节点,并确定每个节点的可用资源,然后向注册到主节点的计算框架发出资源邀约。从节点,向主节点汇报自己的空闲资源和任务状态,负责管理本节点上的各个任务,在计算框架成功向主节点申请资源后,收到消息的从节点会启动相应计算框架的执行器。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了便于理解,首先对本申请实施例中的视频转码方法所适用的系统进行介绍。本申请实施例中的视频转码方法可应用于如图1所示的系统中,该系统包括:由至少一个转码服务器101和调度服务器102构成的集群。

其中,转码服务器101上包括执行程序,用于执行具体的视频转码任务。转码服务器会上报自身的空闲计算资源信息以及任务状态。其中,转码服务器上报自身的空闲计算资源信息的方式可以有多种形式,如,以可用资源列表的形式上报,如<2cpu,8gb内存>。其中,转码服务器可以按照多种策略上报自身的空闲计算资源信息,如在任务结束、接收到新任务等任务状态发生变化时上报;又如按照预设周期上报。

调度服务器102上包括调度程序,用于根据各个转码服务器的空闲计算资源信息执行视频转码任务的调度。其中,各个转码服务器的空闲计算资源信息可以由各个转码服务器直接上报给调度服务器。

为了减少调度服务器上的资源消耗,在一种可能的实现中,集群中还可以增设资源管理服务器103。资源管理服务器103上包括资源管理程序,用于对集群的计算资源进行管理。各个转码服务器将自身的空闲计算资源信息以及任务状态上报给资源管理服务器,由资源管理服务器进行信息汇总后发送给调度服务器。

在具体实现时,集群可以基于各种分布式资源管理框架搭建。如,该集群可以基于mesos搭建。在基于mesos搭建的集群中,资源管理服务器作为主节点,以mesos作为资源管理程序,对集群的计算资源进行管控。调度服务器和至少一个转码服务器作为从节点,实现分布式转码。

下面结合流程图对本申请实施例中的视频转码方法进行介绍。如,参见图2,其示出了本申请实施例中视频转码方法的一种流程示意图,该方法由上面提及的调度服务器执行,包括:

s201,从至少一个视频转码任务中确定待处理的视频转码任务。

其中,调度服务器可以获得至少一个视频转码任务。一个视频转码任务对应一个需要执行视频转码的视频。该视频可以是经过视频分割后得到的视频分片,也可以是一段完整的视频。如,对于时长相对较短的短视频而言,由于该视频可以认为是一个视频分片,则可以针对该短视频创建一个视频转码任务;对于时长相对较长的长视频而言,该长视频可以被切分为多个视频分片,针对每个视频分片创建一个视频转码任务。

其中,调度服务器确定当前待处理的视频转码任务的方式可以有多种实现方式。如,在一种可能的实现中,可以按照视频转码任务对应的视频的视频时长确定当前待处理的视频转码任务。具体实现可以是:在调度服务器获得至少一个视频转码任务之后,确定每个视频转码任务对应的视频的视频时长;将视频时长小于预设时长的视频对应的视频转码任务确定为待处理的视频转码任务。其中,预设时长可以根据转码需求设定,优选为5分钟。这种实现中,以短片优先原则确定当前待处理的视频转码任务,实现了优先处理短视频,可以降低等待时间。

又如,在另一种可能的实现中,还可以按照视频转码任务的优先级确定当前待处理的视频转码任务。具体实现可以是:确定至少一个视频转码任务的优先级;将优先级最高的视频转码任务确定为待处理的视频转码任务。这种实现中,按照优先级确定当前待处理的视频转码任务,优先处理优先级高的视频转码任务,满足了集群满载时候优先处理紧急任务的需求。

其中,在优先级最高的视频转码任务多于一个的情况下,可以从优先级最高,且视频时长小于预设时长的视频对应的视频转码任务中,确定当前待处理的视频转码任务。

又如,在另一种可能的实现中,还可以按照调度服务器获得视频的时间先后顺序确定当前待处理的视频转码任务。

s202,确定该待处理的视频转码任务所需的计算资源。

其中,调度服务器在创建视频转码任务时,会指定转码参数,如该视频转码任务对应的视频文件信息、转码后的格式、分辨率、码率信息等。转码参数不同的视频转码任务所需的计算资源不同。视频转码任务所需的计算资源,可以根据指定的转码参数确定。

s203,分别确定集群中各个转码服务器的空闲计算资源。

其中,调度服务器可以确定出集群中各个转码服务器的空闲计算资源。如,在各个转码服务器将自身的空闲计算资源信息上报给资源管理服务器的情况下,资源管理服务器接收并存储各个转码服务器上报的空闲计算资源信息,调度服务器可以通过获得资源管理服务器发送的信息来确定集群中各个转码服务器的空闲计算资源。

又如,在各个转码服务器直接向调度服务器上报空闲计算资源信息的情况下,调度服务器可以通过接收集群中各个转码服务器发送的信息来确定集群中各个转码服务器的空闲计算资源。

s204,从集群中确定空闲计算资源能够满足该视频转码任务所需的计算资源的目标转码服务器。

其中,目标转码服务器是集群中空闲计算资源能够满足该视频转码任务所需的计算资源的转码服务器。在确定待处理的视频转码任务所需的计算资源以及集群中各个转码服务器的空闲计算资源后,可以从集群中确定出目标转码服务器。

s205,将该视频转码任务分配给目标转码服务器,以使得该目标转码服务器执行该视频转码任务。

其中,在确定了目标转码服务器之后,可以生成将该视频转码任务分配给确定的目标转码服务器的任务分配方案,按照该任务分配方案执行任务分配。

在如基于mesos搭建的集群中,调度服务器执行任务分配的方式可以是:向资源管理服务器发送任务分配指示,以指示资源管理服务器按照生成的任务分配方案将视频转码任务分配给目标转码服务器。

本申请实施例中,在进行视频转码任务调度时,根据待处理的视频转码任务所需的计算资源,在集群中确定空闲计算资源能满足该视频转码任务所需的计算资源的转码服务器,并将该视频转码任务分配至该转码服务器,实现了按需分配资源,从而更为合理的为集群中转码服务器分配视频转码任务,有利于减少集群中的计算资源无法被均衡利用的情况,进而有利于提高集群的计算资源利用率,提高转码效率。

为了便于理解,下面对确定目标转码服务器的具体方式进行介绍。如参见图3,其示出了本申请实施例的视频转码方法的又一种流程示意图,该方法应用于上面提及的调度服务器中的调度程序,包括:

s301,从至少一个视频转码任务中确定待处理的视频转码任务。

s302,确定该待处理的视频转码任务所需的计算资源。

s303,分别确定集群中各个转码服务器的空闲计算资源。

s304,判断集群中是否存在空闲计算资源能够满足视频转码任务所需的计算资源的至少一个转码服务器,如果存在,执行步骤s305。如果不存在,则在满足预设条件时,返回到步骤s303执行。

可以理解的是,集群中可能存在空闲计算资源能够满足视频转码任务所需的计算资源的转码服务器,也可能不存在。在集群中不存在空闲计算资源能够满足视频转码任务所需的计算资源的转码服务器时,需等待集群中正在执行的转码任务退出,转码服务器上空闲计算资源增多时,再次确定集群中各个转码服务器的空闲计算资源并确定目标转码服务器。

s305,从该至少一个转码服务器中确定目标转码服务器。

其中,空闲计算资源能够满足该视频转码任务所需的计算资源的转码服务器可能有至少一个。可以从这至少一个转码服务器中确定出目标转码服务器。确定目标转码服务器的方式可以有多种,如在该至少一个转码服务器中存在未执行转码任务的转码服务器的情况下,从未执行转码任务的转码服务器中确定目标转码服务器,如果未执行转码任务的转码服务器有多个,可以从中随机选择一个作为目标转码服务器;在该至少一个转码服务器中不存在未执行转码任务的转码服务器的情况下,则从该至少一个转码服务器中空闲计算资源最多的转码服务器中确定目标转码服务器,如果空闲计算资源最多的转码服务器有多个,可以从中随机选择一个作为目标转码服务器。

其中,预设条件可以是:是否接收到资源管理服务器发送的集群中各个转码服务器的空闲计算资源信息。转码服务器会在其上执行的任务的状态发生变化时向资源管理服务器重新上报空闲计算资源信息,而转码服务器上执行的任务的状态发生变化时,该转码服务器上的空闲计算资源也会发生变化。将是否接收到资源管理服务器发送的集群中各个转码服务器的空闲计算资源作为预设条件,在接收到资源管理服务器发送的集群中各个转码服务器的空闲计算资源信息时,再次执行步骤s303和s304,可以提高确定目标转码服务器的命中率,降低调度服务器的资源消耗。

预设条件还可以是等待时长超过预设时长,如,当前时刻距离最近一次执行步骤s305的时长达到预设时长时满足预设条件。

s306,将该视频转码任务分配给目标转码服务器,以使得该目标转码服务器执行该视频转码任务。

其中,步骤s301~s303、s306可以参见前面的相关介绍,此处不再赘述。

对应于本申请实施例中的视频转码方法,本申请还提供了一种视频转码装置。参见图4,其示出了本申请实施例的视频转码装置的一种组成示意图,应用于上面提及的调度服务器,包括:

转码任务确定单元401,用于从至少一个视频转码任务中确定待处理的视频转码任务;

所需资源确定单元402,用于确定转码任务确定单元401中确定的视频转码任务所需的计算资源;

空闲资源确定单元403,用于分别确定集群中各个转码服务器的空闲计算资源;

目标转码服务器确定单元404,用于从集群中确定空闲资源确定单元403确定的空闲计算资源能够满足所需资源确定单元402确定的视频转码任务所需的计算资源的目标转码服务器;

转码任务分配单元405,用于将视频转码任务分配给目标转码服务器确定单元404确定出的目标转码服务器,以使得该目标转码服务器执行该视频转码任务。

在一种可能的实现中,目标转码服务器确定单元404具体用于:

判断集群中是否存在空闲计算资源能够满足视频转码任务所需的计算资源的至少一个转码服务器;

如果存在,从该至少一个转码服务器中确定目标转码服务器;

其中,从该至少一个转码服务器中确定目标转码服务器包括:在集群中空闲计算资源能够满足视频转码任务所需的计算资源的至少一个转码服务器中存在未执行转码任务的转码服务器的情况下,从未执行转码任务的转码服务器中确定目标转码服务器;在集群中空闲计算资源能够满足视频转码任务所需的计算资源的至少一个转码服务器中不存在未执行转码任务的转码服务器的情况下,则从至少一个转码服务器中空闲计算资源最多的转码服务器中确定目标转码服务器;

如果不存在,则在满足预设条件时,执行空闲资源确定单元的操作,以确定出目标转码服务器。

在一种可能的实现中,空闲资源确定单元403具体用于:

获得资源管理服务器发送的集群中各个转码服务器的空闲计算资源信息;其中资源管理服务器接收并存储集群中各个转码服务器上报的空闲计算资源信息。

在一种可能的实现中,转码任务分配单元405具体用于:

生成将视频转码任务分配给目标转码服务器的分配方案;

向所述资源管理服务器发送任务分配指示,所述任务分配指示用于指示所述资源管理服务器将所述视频转码任务分配给所述目标转码服务器。。

在一种可能的实现中,转码任务确定单元405包括:

视频时长确定子单元,用于获得至少一个视频转码任务,每个视频转码任务对应一个待转码的视频;并确定每个视频转码任务对应的视频的视频时长;

第一转码任务确定子单元,用于将视频时长小于预设时长的视频对应的视频转码任务确定为待处理的视频转码任务。

在一种可能的实现中,转码任务确定单元405包括:

优先级确定子单元,用于确定至少一个视频转码任务的优先级;

第二转码任务确定子单元,用于将优先级最高的视频转码任务确定为待处理的视频转码任务。

又一方面,本申请还提供了一种视频转码系统,该系统包括:由多个服务器构成的集群;

集群包括资源管理服务器、调度服务器和至少一个转码服务器;

资源管理服务器,用于接收并存储转码服务器上报的空闲计算资源,并将至少一个转码服务器的空闲计算资源发送给调度服务器;

调度服务器,用于按照上述实施例中的视频转码方法分配待处理的视频转码任务至目标转码服务器,以使得目标转码服务器执行视频转码任务;

转码服务器,用于执行视频转码任务;并向资源管理服务器上报自身的空闲计算资源。

对于本申请实施例的视频转码装置、视频转码系统而言,由于其与上面实施例中的视频转码方法相对应,所以描述的比较简单,相关相似之处请参见上面实施例中部分的说明即可,此处不再详述。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1