一种直播任务管理调度方法及其系统与流程

文档序号:11181041阅读:596来源:国知局
一种直播任务管理调度方法及其系统与流程

本发明涉及网络技术领域,特别涉及一种直播任务管理调度方法及其系统。



背景技术:

随着互联网的快速发展,各种各样的直播业务也呈井喷之势涌现,为了适应不同的带宽下用户播放的流畅性,同一个直播频道需要支持具有不同的分辨率和视频码率。

一般地,一个频道的直播源的码率是不变的。直播流的音频格式一般为h264,音频一般为mpga,而在某些场景下,需要将音频转为aac等其他格式。为了满足用户不同码率的使用情况,需要能够进行直播任务处理。同时为了保证直播的不间断性,需要对直播的切片做主备的处理。然而,当直播频道数量较多时,会存在如下的情况:

1)为了保证在异常情况下直播服务不中断,同一个直播频道需要同时有两台服务器做直播切流处理;

2)一个直播源可能需要按照要求同时转成几个不同码率的直播流切片,对服务器的配置和性能要求非常高,比如对cpu、内存等都有较高要求,这种配置的cpu价格一般是普通cpu的4倍,甚至10倍的价格,这种高配置的服务器价格都异常昂贵;

3)一个1080p(高清)的直播源转码成720p的直播,在高配置下的服务器最多也只能同时处理20多个这样的码率转换,而当高清转成480p甚至更低码率时,相同配置的服务器可以同时处理的数量更多;

目前,现有的调度策略是采用按照每台服务器处理的任务数进行调度,因而,有可能相同配置的有些服务器的性能已经达到极限,甚至超过极限,而另外有些服务器却依然很空闲,这样一来,为了保证所有的直播任务都能正常处理,可能需要比理想中更多的服务器,这样可能造成成本会大大地超过项目的预期。

因此,如何在有限设备的情况下能够保质保量地完成直播任务一直是业界亟需解决的问题。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种直播任务管理调度方法及其系统。所述技术方案如下:

一方面,一种直播任务管理调度方法,其中,所述方法包括以下步骤:

获取所述直播任务的转码需求;

根据所述转码需求及预先配置的任务权重对应表,确定所述直播任务的任务权重;

查询任务权重记录表,确定当前承载的任务权重最小的任务服务器组;

判断所述任务服务器组是否可以承载所述直播任务,若可以,则下发所述直播任务给所述任务服务器组,并更新所述任务权重记录表中所述任务服务器组的记录。

进一步的,所述转码需求包含所述直播任务中源文件的原始分辨率,原始码率,目标分辨率和目标码率。

进一步的,所述任务权重对应表包含原始分辨率,原始码率,目标分辨率,目标码率及由所述原始分辨率和所述原始码率转换成所述目标分辨率和所述目标码率的任务权重。

进一步的,所述任务权重记录表包含各任务服务器组识别信息,及每个所述任务服务器组承载的任务权重。

进一步的,所述判断所述任务服务器组是否可以承载所述直播任务方法包含,判断所述任务服务器组当前承载的任务权重与所述直播任务的任务权重之和是否大于将所述任务服务器组的任务权重最大承载量,若大于,则判定所述任务服务器组不可以承载所述直播任务,若不大于,则判定所述任务服务器组可以承载所述直播任务。

进一步的,若判定所述任务服务器组不可以承载所述直播任务,则新建任务服务器组,将所述直播任务下发至新建的所述任务服务器组,并在所述任务权重记录表中新增相应记录。

进一步的,所述任务服务器组中包含至少一台任务服务器。

进一步的,所述任务服务器组中的所述任务服务器处理相同的直播任务。

另一方面,一种直播任务管理调度系统,其中,所述直播任务管理调度系统与多个任务服务器通信,其中,所述直播任务管理调度系统包括:

任务接收模块,用于接收直播任务;

文件管理模块,用于存储和更新任务权重对应表和任务权重记录表;

任务服务器管理模块,用于对所述多个任务服务器进行组别的划分和管理;

任务调度模块,其中,所述任务调度模块从所述任务接收模块获取所述直播任务,根据所述直播任务的转码需求查询所述文件管理模块中的所述任务权重对应表,确定所述直播任务的任务权重;通过所述任务权重记录表确定当前承载任务权重最小的任务服务器组,并判断所述任务服务器组是否可以承载所述直播任务,若可以,则下发所述直播任务给所述任务服务器组,并请求所述文件管理模块更新所述任务权重记录表中所述任务服务器组的记录。

进一步的,所述转码需求包含所述直播任务中源文件的原始分辨率,原始码率,目标分辨率和目标码率。

进一步的,所述任务权重对应表包含原始分辨率,原始码率,目标分辨率,目标码率及由所述原始分辨率和所述原始码率转换成所述目标分辨率和所述目标码率的任务权重。

进一步的,所述任务权重记录表包含各任务服务器组识别信息,及每个所述任务服务器组承载的任务权重。

进一步的,所述任务调度模块判断所述任务服务器组是否可以承载所述直播任务方法包含,判断所述任务服务器组当前承载的任务权重与所述直播任务的任务权重之和是否大于将所述任务服务器组的任务权重最大承载量,若大于,则判定所述任务服务器组不可以承载所述直播任务,若不大于,则判定所述任务服务器组可以承载所述直播任务。

进一步的,若判定所述任务服务器组不可以承载所述直播任务,所述任务调度模块向所述任务服务器管理模块发送新建任务服务器组请求;所述任务服务器管理模块接收所述请求后,新建任务服务器组,并返回所述新建任务服务器组的识别信息至所述文件管理模块和所述任务调度模块,所述任务调度模块将所述直播任务下发至新建的所述任务服务器组,所述文件管理模块在所述任务权重记录表中新增相应记录。

进一步的,所述任务服务器管理模块根据预先设置的备份数设置所述任务服务器组中包含的任务服务器数。

进一步的,所述任务服务器管理模块根据预先设置的直播频道数设置初始的任务服务器分组数。

本发明实施例提供的技术方案带来的有益效果是:能够根据服务器的性能和负载等情况,智能地将直播任务处理的任务均衡地分配给所有直播任务的任务服务器来进行处理,在保证直播服务正常的情况下,有效地解决了在有限的设备情况下也能够保质保量地完成直播任务的问题,能最大限度地使用设备的性能。

附图说明

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

图1为本发明一实施方式中直播任务管理调度方法流程图;

图2为本发明一实施方式中直播任务管理调度系统10的内部结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下将对本发明所提供的一种直播任务管理调度方法进行详细说明。

请参阅图1,为本发明一实施方式中直播任务管理调度方法流程图。

在一实施方式中,该直播任务管理调度方法应用于直播任务管理调度系统,其中,该直播任务管理调度系统与多个任务服务器进行通信,每一个任务服务器都能够进行直播任务处理。

在步骤s1中,获取直播任务的转码需求。

在一实施方式中,所述转码需求包含所述直播任务中源文件的原始分辨率,原始码率,目标分辨率和目标码率。

在步骤s2中,根据转码需求及预先配置的任务权重对应表,确定直播任务的任务权重。

在一实施方式中,所述任务权重对应表包含原始分辨率,原始码率,目标分辨率,目标码率及由所述原始分辨率和所述原始码率转换成所述目标分辨率和所述目标码率的任务权重。

在一实施方式中,根据各个任务服务器的cpu的性能和不同分辨率对直播任务处理的能力来预先配置直播任务的任务权重对应表,并确定直播任务的转码需求,其中,将一个原始分辨率码率转化成指定分辨率码率对应一个权重系数。

在一实施方式中,每一个任务服务器的cpu的性能可能各不相同,例如有的cpu的主频为1.4ghz,有的cpu的主频为2.3ghz,不同分辨率对直播任务处理的能力有高有低,例如分辨率为1080p对直播任务处理能力强,分辨率为480p对直播任务处理能力弱,利用任务服务器的cpu的性能和不同分辨率对直播任务处理的能力这两个因素来制定直播任务的任务权重表。

在一实施方式中,所述直播频道的转码需求包括原始分辨率、原始码率,需要转码成的目标分辨率、目标码率,例如,原始分辨率为1920*1080p、原始码率为8000kbps、需要转码的目标分辨率为1280*720p、需要转码的目标码率为1600kbps。

在一实施方式中,将一个原始分辨率/码率转化成指定目标分辨率码率对应一个权重系数,例如将原始分辨率/码率为1920*1080p/8000kbps转化成指定分辨率/码率为1280*720p/1600kbps,对应的权重系数为1.2,将原始分辨率/码率为640*480p/6000kbps转化成指定分辨率/码率为1280*720p/1600kbps,对应的权重系数为0.8,不同的权重系数可以根据不同的转化方式进行设定,在此不做限定。

在一实施方式中,还可以根据项目情况确定直播频道的备份数,通常情况下每一个直播频道至少需要有2份拷贝作为备份。本发明利用这种备份方式在保证原有的直播频道的主备功能的同时,具备容灾能力。

在一实施方式中,将与所述直播任务管理调度系统通信的多个任务服务器进行分组。

在一实施方式中,与所述直播任务管理调度系统通信的多个任务服务器可以分成多个分组,每一个分组可以包括多个任务服务器,在本发明的直播任务管理调度方法中,直播处理任务会被均衡的分配到部分分组或者全部分组中,分到直播处理任务的分组中所包括的所有任务服务器将处理相同的任务。

在一实施方式中,主要是利用第三方系统以直播处理请求的方式下发直播处理任务到所述直播任务管理调度系统,所述直播任务管理调度系统从第三方系统接收其下发的直播处理任务。

在一实施方式中,第三方系统所下发的直播处理请求中包括原始分辨率、原始码率、频道数,以及各频道需要转码成的目标分辨率和目标码率。本发明根据频道数及各频道的目标分辨率和目标码率将第三方系统下发的直播处理请求具化为各个直播处理任务,每个处理任务的原始分辨率和原始码率相同,但目标分辨率和目标码率取决于各频道的实际需求,依据频道数选择任务服务器组进行处理。

在一实施方式中,根据所述直播频道的转码需求以及所述直播任务的任务权重表确定所述直播处理任务的权重。

在一实施方式中,直播频道的转码需求,例如可以包括一个直播频道,原始分辨率/原始码率分别为1920*1080p/8000kbps,需要转码的目标分辨率/目标码率分别为1280*720p/1600kbps等,并结合步骤s2中的直播任务的任务权重表确定所述直播处理任务的权重。

在步骤s3中,查询任务权重记录表,确定当前承载的任务权重最小的任务服务器组。

在一实施方式中,所述任务权重记录表包含各任务服务器组识别信息,及每个所述任务服务器组承载的任务权重。其中,任务服务器组中包含至少一台任务服务器,同一任务服务器组中的任务服务器处理相同的直播任务。一般而言,一个任务服务器组中包含两台任务服务器,以实现安全备份。其中,组别的任务权重可等于该组中所有任务服务器正在处理的直播任务的任务权重之和,也可以是该组中任一台任务服务器正在处理的直播任务的任务权重之和。

在一实施方式中,根据任务服务器与直播任务管理调度系统之间的通讯状态确定各个分组的当前状态,并根据各个分组的当前状态确定当前处理直播任务最轻的分组作为目标分组。

在一实施方式中,所述当前状态包括存活状态和非存活状态,其中,所述存活状态为任务服务器组中的所有任务服务器与直播任务管理调度系统之间的通讯正常连接,表示正在通信连接,而所述非存活状态为任务服务器组中的至少有一台任务服务器与直播任务管理调度系统之间的通讯失联,表示已断开通信连接。

在一实施方式中,直播任务管理调度系统将定期监测与每一个任务服务器之间的通信链路的畅通情况,判断是正常连接还是已断开连接,如果有任务服务器与直播任务管理调度系统断开连接,则该任务服务器所属的任务服务器组会被直播任务管理调度系统记录为“不存活状态”,否则如果任务服务器与直播任务管理调度系统是正常连接,则该任务服务器所属的任务服务器组会被直播任务管理调度系统记录为“存活状态”,也就是说,只有当分组中所包括的所有任务服务器均被记录为“存活状态”时,该分组才被确定为“存活分组”,否则该分组被确定为“非存活分组”。在一实施方式中,只有“存活分组”才能接收到直播处理任务,而“非存活分组”将无法接收到直播处理任务。

在一实施方式中,根据组别的当前状态,从任务权重记录表中获取每个处于存活状态的组别的任务权重,并确定当前任务权重最小的组别。

在步骤s4中,判断所述任务服务器组是否可以承载所述直播任务。

在一实施方式中,所述判断所述任务服务器组是否可以承载所述直播任务方法包含:

判断所述任务服务器组当前承载的任务权重与所述直播任务的任务权重之和是否大于将所述任务服务器组的任务权重最大承载量,若大于,则判定所述任务服务器组不可以承载所述直播任务,若不大于,则判定所述任务服务器组可以承载所述直播任务。

在一实施方式中,若任务服务器组可以承载直播任务,则在步骤s5中,下发所述直播任务给所述任务服务器组,并更新所述任务权重记录表中所述任务服务器组的任务权重记录。

在一实施方式中,若任务服务器组不可以承载直播任务,则在步骤s6中,则新建任务服务器组,将所述直播任务下发至新建的所述任务服务器组,并在所述任务权重记录表中新增相应记录。

在一实施方式中,假设分配之前,目标分组的任务权重为a,而所述直播处理任务的权重为b,则更新后的目标分组的任务权重为a+b。

在一实施方式中,当有新的直播处理任务从第三方系统下发到直播任务管理调度系统时,将采用步骤s1-s6进行处理,使得本发明在保证直播的容灾情况下,依然能够对外提供正常的且为无扰切换的直播服务,本发明最大程度地利用了服务器资源,每台服务器均能够得到最大程度地使用。

在一实施方式中,当直播任务管理调度系统监测到空闲的任务服务器组时,将及时对其释放,已保证当前正在工作的任务服务器组的工作量尽量趋于饱和。

在一实施方式中,当有更多的直播处理任务时,可通过新增组别和服务器来进行扩容,扩容后,新的组别加入到组别群中,在直播任务分配时,依然采用本发明的步骤s1-s6来进行处理。本发明通过这种方式支持平滑扩容功能,保证在服务器处理能力达到上限的情况下,依然能够让整个服务器群处理新增的直播任务。

以下将对本发明所提供的一种直播任务管理调度系统进行详细说明。

请参阅图2,所示为本发明一实施方式中直播任务管理调度系统10的内部结构示意图。

在一实施方式中,该直播任务管理调度系统10与多个任务服务器(图未示)进行通信,每一个任务服务器都能够进行直播任务处理。其中,该直播任务管理调度系统10包括任务接收模块11、文件管理模块12、任务服务器管理模块13、任务调度模块14。

任务接收模块11,用于接收直播任务,并其中所述直播任务包含转码需求。

在一实施方式中,所述转码需求包含所述直播任务中源文件的原始分辨率,原始码率,目标分辨率和目标码率。

文件管理模块12,用于存储和更新任务权重对应表和任务权重记录表。

在一实施方式中,所述任务权重对应表包含原始分辨率,原始码率,目标分辨率,目标码率及由所述原始分辨率和所述原始码率转换成所述目标分辨率和所述目标码率的任务权重。

在一实施方式中,根据各个任务服务器的cpu的性能和不同分辨率对直播任务处理的能力来预先配置直播任务的任务权重对应表,并确定直播任务的转码需求,其中,将一个原始分辨率码率转化成指定分辨率码率对应一个权重系数。

在一实施方式中,每一个任务服务器的cpu的性能可能各不相同,例如有的cpu的主频为1.4ghz,有的cpu的主频为2.3ghz,不同分辨率对直播任务处理的能力有高有低,例如分辨率为1080p对直播任务处理能力强,分辨率为480p对直播任务处理能力弱,利用任务服务器的cpu的性能和不同分辨率对直播任务处理的能力这两个因素来制定直播任务的任务权重表。

在一实施方式中,所述直播频道的转码需求包括原始分辨率、原始码率、需要转码成的目标分辨率和目标码率,例如,原始分辨率为1920*1080p、原始码率为8000kbps、需要转码的目标分辨率为1280*720p、需要转码的目标码率为1600kbps。

在一实施方式中,将一个原始分辨率/码率转化成指定目标分辨率码率对应一个权重系数,例如将原始分辨率/码率为1920*1080p/8000kbps转化成指定分辨率/码率为1280*720p/1600kbps,对应的权重系数为1.2,将原始分辨率/码率为640*480p/6000kbps转化成指定分辨率/码率为1280*720p/1600kbps,对应的权重系数为0.8,不同的权重系数可以根据不同的转化方式进行设定,在此不做限定。

在一实施方式中,还可以根据项目情况确定直播频道的备份数,通常情况下每一个直播频道至少需要有1份拷贝作为备份。本发明利用这种备份方式在保证原有的直播频道的主备功能的同时,具备容灾能力。

任务服务器管理模块13,用于对所述多个任务服务器进行组别的划分和管理。

在一实施方式中,任务服务器管理模块将与所述直播任务管理调度系统通信的多个任务服务器进行分组。

在一实施方式中,与所述直播任务管理调度系统通信的多个任务服务器可以分成多个分组,每一个分组可以包括多个任务服务器,在本发明的直播任务管理调度方法中,直播处理任务会被均衡的分配到部分分组或者全部分组中,分到直播处理任务的分组中所包括的所有任务服务器将处理相同的任务。

在一实施方式中,主要是利用第三方系统以直播处理请求的方式下发直播处理任务到所述直播任务管理调度系统,所述直播任务管理调度系统从第三方系统接收其下发的直播处理任务。其中,所述第三方系统包含直播平台、主播等提供直播视频源的服务端。

在一实施方式中,第三方系统所下发的直播处理请求中包括原始分辨率、原始码率、频道数,以及各频道需要转码成的目标分辨率和目标码率。本发明根据频道数及各频道的目标分辨率和目标码率将第三方系统下发的直播处理请求具化为各个直播处理任务,每个处理任务的原始分辨率和原始码率相同,但目标分辨率和目标码率取决于各频道的实际需求,依据频道数选择任务服务器组进行处理。

在一实施方式中,初始状态下,任务服务器管理模块13根据频道数创建数量相同的任务服务器组,已处理该些直播任务。

任务调度模块14,基于直播任务权重任务分配相应的任务服务器组。

在一实施方式中,调度模块14从任务接收模块11获取直播任务,根据直播任务的转码需求查询文件管理模块12中的任务权重对应表,确定直播任务的任务权重;通过任务权重记录表确定当前承载任务权重最小的任务服务器组,并判断任务服务器组是否可以承载所述直播任务,若可以,则下发所述直播任务给所述任务服务器组,并请求所述文件管理模块更新所述任务权重记录表中所述任务服务器组的记录。

在一实施方式中,直播频道的转码需求,例如可以包括一个直播频道,原始分辨率/原始码率分别为1920*1080p/8000kbps,需要转码的目标分辨率/目标码率分别为1280*720p/1600kbps等,并结合文件管理模块12中的直播任务的任务权重表确定所述直播处理任务的权重。

在一实施方式中,所述任务权重记录表包含各任务服务器组识别信息,及每个所述任务服务器组承载的任务权重。其中,任务服务器组中包含至少一台任务服务器,同一任务服务器组中的任务服务器处理相同的直播任务。一般而言,一个任务服务器组中包含两台任务服务器,以实现安全备份。任务服务器管理模块13根据预先设定的备份数设置每个分组所包含的任务服务器数。其中,组别的任务权重可等于该组中所有任务服务器正在处理的直播任务的任务权重之和,也可以是该组中任一台任务服务器正在处理的直播任务的任务权重之和。

在一实施方式中,任务服务器管理模块13根据任务服务器与直播任务管理调度系统之间的通讯状态确定各个分组的当前状态,并根据各个分组的当前状态确定当前处理直播任务权重最轻的分组作为目标分组。

在一实施方式中,所述当前状态包括存活状态和非存活状态,其中,所述存活状态为任务服务器组中的所有任务服务器与直播任务管理调度系统之间的通讯正常连接,表示正在通信连接,而所述非存活状态为任务服务器组中的至少有一台任务服务器与直播任务管理调度系统之间的通讯失联,表示已断开通信连接。

在一实施方式中,直播任务管理调度系统的任务服务器管理模块13将定期监测与每一个任务服务器之间的通信链路的畅通情况,判断是正常连接还是已断开连接,如果有任务服务器与直播任务管理调度系统断开连接,则该任务服务器所属的任务服务器组会被直播任务管理调度系统记录为“不存活状态”,否则如果任务服务器与直播任务管理调度系统是正常连接,则该任务服务器所属的任务服务器组会被直播任务管理调度系统记录为“存活状态”,只有当分组中所包括的所有任务服务器均被记录为“存活状态”时,也就是说,该分组才被确定为“存活分组”,否则该分组被确定为“非存活分组”。在一实施方式中,只有“存活分组”才能接收到直播处理任务,而“非存活分组”将无法接收到直播处理任务。

在一实施方式中,任务服务器管理模块13根据组别的当前状态,从任务权重记录表中获取每个处于存活状态的组别的任务权重,并确定当前任务权重最小的组别。

在一实施方式中,任务调度模块14判断所述当前任务权重最小的任务服务器组是否可以承载所述直播任务方法包含,判断所述任务服务器组当前承载的任务权重与所述直播任务的任务权重之和是否大于将所述任务服务器组的任务权重最大承载量,若大于,则判定所述任务服务器组不可以承载所述直播任务,若不大于,则判定所述任务服务器组可以承载所述直播任务,并下发所述直播任务给所述任务服务器组,并更新所述任务权重记录表中所述任务服务器组的任务权重记录。。

在一实施方式中,若判定所述任务服务器组不可以承载所述直播任务,所述任务调度模块向所述任务服务器管理模块发送新建任务服务器组请求;所述任务服务器管理模块接收所述请求后,新建任务服务器组,并返回所述新建任务服务器组的识别信息至所述文件管理模块和所述任务调度模块,所述任务调度模块将所述直播任务下发至新建的所述任务服务器组,所述文件管理模块在所述任务权重记录表中新增相应记录。

在一实施方式中,当直播任务管理调度系统的任务服务器管理模块监测到空闲的任务服务器组时,将及时对其释放,已保证当前正在工作的任务服务器组的工作量尽量趋于饱和。

本发明提供的直播任务管理调度系统10,能够根据服务器的性能和负载等情况,智能地将直播任务处理的任务均衡地分配给所有直播任务的任务服务器来进行处理,在保证直播服务正常的情况下,有效地解决了在有限的设备情况下也能够保质保量地完成直播任务的问题,能最大限度地使用设备的性能。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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