基于Kubernetes实现文件转码POD调度方法、系统、设备及存储介质与流程

文档序号:31776244发布日期:2022-10-12 08:31阅读:125来源:国知局
基于Kubernetes实现文件转码POD调度方法、系统、设备及存储介质与流程
基于kubernetes实现文件转码pod调度方法、系统、设备及存储介质
技术领域
1.本发明属于视频转码技术领域,尤其涉及一种基于kubernetes实现文件转码pod调度方法、系统、设备及存储介质。


背景技术:

2.视频转码技术是用于一种将点播文件按照不同的编码要求转码为不同的点播文件,应用于不同的场景。在实际应用中,需要在有限的服务器资源情况下处理大量的点播文件。传统实现视频转码的方式包括以下2种。
3.1.采用非容器编排方式,直接在服务器上运行视频转码任务,采用控制每台服务器运行转码任务个数或者通过监控每台服务器的资源剩余数量控制运行转码任务的个数。这种方法对资源计算方法比较简单,不能对集群中每个服务器剩余资源进行优先级排序,将转码任务调度到更合适的服务器上,导致集群整体资源利用率不高。
4.2.基于kubernetes的容器编排方式。目前较为普遍的方案是利用kubernetes的容器编排能力进行视频切片并行转码,实现视频的快速转码。kubernetes用于管理云平台中多个主机上的容器化的应用。pod(pod资源对象是一种集合了一到多个应用容器、存储资源、专用ip及支撑容器运行的其他选项的逻辑组件)作为kubernetes系统最小的调度单位,是容器的集合,kubernetes通过对pod的调度实现容器的编排。基于kubernetes系统中资源调度策略,能够为pod分配相同的资源大小,并将pod快速调度到最优的服务器上,实现服务器资源较高的利用率。
5.针对视频转码任务周期短、数量大,需要不同编码策略的特点,需要频繁的调度pod时会出现以下不足的地方。
6.(1)使用的pod优先级相同,当多个视频转码任务的多个pod处于等待资源的情况下,会出现pod插队的情况,导致转码任务不能顺序处理;pod可以设置优先级或者抢占式的方式,会出现低优先级的pod资源被回收的问题,这样会出现转码中的任务被强制停止的问题,不利于用户体验。
7.(2)不同的编码策略使用相同资源,不能保证不同编码策略的转码任务达到最大的转码速度。


技术实现要素:

8.为解决上述问题,本发明的目的是提供一种基于kubernetes实现文件转码pod调度方法、系统、设备及存储介质,该方法、系统、设备及存储介质能够实现转码pod顺序执行,保证转码任务速度的同时,充分利用服务器资源。
9.为实现上述目的,本发明的技术方案为:
10.一种基于kubernetes实现文件转码pod调度方法,包括:
11.获取多个视频文件并进行切片处理以获取多个第一切片片段;根据所述多个视频
文件转码任务的编码策略确定每个视频文件需要分配的pod资源数量,并将所述pod资源数量存入缓存;获取所述pod资源数量信息,将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存;针对所述多个第一切片片段进行顺序解码、编码运算以获取多个第二切片片段,并将转码后的每个视频文件的所有第二切片片段合成后输出目标视频文件。
12.在本发明一个实施例中,所述获取多个视频文件并进行切片处理以获取多个第一切片片段包括:确定每个视频文件每个切片的开始和结束时间,预设切片长度,并根据实际关键帧的时间点,逐段确定符合预设切片长度的关键帧位置,并将信息放入缓存中。
13.在本发明一个实施例中,所述根据所述多个视频文件转码任务的编码策略确定每个视频文件需要分配的pod资源数量,并将所述pod资源数量存入缓存包括:获取每个视频文件的包括编码器和分辨率在内参数的编码策略,针对每个视频的所述多个第一切片片段匹配pod资源;其中,针对不同编码策略的多个视频文件分配各自类型预设的pod资源;根据每个视频文件的第一切片片段数量分配相同数量的pod以组成所述每个视频文件对应的pod组。
14.在本发明一个实施例中,所述获取所述pod资源数量信息,将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存包括:获取所述pod资源数量信息和所述多个视频文件信息;按照预设的多个视频文件转码任务的优先级顺序将其对应的所述pod组按照对应顺序存入缓存。
15.在本发明一个实施例中,,在需要调整所述多个视频文件转码优先级的情况下,通过调整所述pod组的顺序以实现调整视频文件转码顺序。
16.在本发明一个实施例中,所述获取所述pod资源数量信息,将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存之后还包括:通过轮询的方式,监控并计算转码集群中的总资源和剩余资源,剩余资源为m;根据缓存中的pod组的顺序计算实现所述多个视频文件转码所需的资源大小为n;当n大于等于m时,通过调用kubernetes将对应的pod组调度到服务器上,保证集群中至多有一个pod组的pod处于资源待调度的状态;当n小于m时,通过调用kubernetes将所有pod组的pod调度到服务器上。
17.基于相同的构思,本发明还提供一种基于kubernetes实现文件转码pod调度系统,包括:预处理模块,用于获取多个视频文件并进行切片处理以获取多个第一切片片段;资源匹配模块,用于根据所述多个视频文件转码任务的编码策略确定每个视频文件需要分配的pod资源数量,并将所述pod资源数量存入缓存;调度模块,用于获取所述pod资源数量信息,将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存;转码模块,用于针对所述多个第一切片片段进行顺序解码、编码运算以获取多个第二切片片段,并将转码后的每个视频文件的所有第二切片片段合成后输出目标视频文件。
18.在本发明一个实施例中,所述的基于kubernetes实现文件转码pod调度系统,还包括:轮询模块,用于通过轮询的方式,监控并计算转码集群中的总资源和剩余资源。
19.基于相同的构思,本发明还提供一种计算机设备,包括:存储器,所述存储器用于存储处理程序;处理器,所述处理器执行所述处理程序时实现所述的基于kubernetes实现文件转码pod调度方法。
20.基于相同的构思,本发明还提供一种可读存储介质,所述可读存储介质上存储有
处理程序,所述处理程序被处理器执行时实现所述的基于kubernetes实现文件转码pod调度方法。
21.采用上述技术方案后,与现有技术相比,本发明的有益之处在于:
22.1、本发明针对每个视频文件的编码策略,分配与其匹配的pod资源数量,能够充分利用kubernetes内的所有资源,保证不同编码策略的转码任务达到最大的转码速度。
23.2、通过将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存,能够很好的控制视频文件的转码顺序,不会出现插队或者调整优先级时使得当前正在进行的低优先级的pod资源被回收,有利于提高用户体验。
24.3、通过轮询的方式,实时对kubernetes系统的资源进行自检和监控,当出现pod资源空闲的情况下,能够及时的将空闲资源及时调用,提高系统资源的利用率。
附图说明
25.下面结合附图对本发明的具体实施方式作进一步详细说明,其中:
26.图1为本发明基于kubernetes实现文件转码pod调度方法示意图;
27.图2为本发明基于kubernetes实现文件转码pod调度方法流程图;
具体实施方式
28.以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。
29.需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
30.实施例一
31.请参阅图1-图2,其为一种基于kubernetes实现文件转码pod调度方法,包括:
32.s100:获取多个视频文件并进行切片处理以获取多个第一切片片段;
33.s200:根据所述多个视频文件转码任务的编码策略确定每个视频文件需要分配的pod资源数量,并将所述pod资源数量存入缓存;
34.s300:获取所述pod资源数量信息,将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存;
35.s400:针对所述多个第一切片片段进行顺序解码、编码运算以获取多个第二切片片段,并将转码后的每个视频文件的所有第二切片片段合成后输出目标视频文件。
36.针对每个视频文件的编码策略,分配与其匹配的pod资源数量,能够充分利用kubernetes内的所有资源,保证不同编码策略的转码任务达到最大的转码速度。通过将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存,能够很好的控制视频文件的转码顺序,不会出现插队或者调整优先级时使得当前正在进行的低优先级的pod资源被回收,有利于提高用户体验。
37.在本发明的一个实施例中,所述获取多个视频文件并进行切片处理以获取多个第一切片片段包括:确定每个视频文件每个切片的开始和结束时间,预设切片长度,并根据实
际关键帧的时间点,逐段确定符合预设切片长度的关键帧位置,并将信息放入缓存中。
38.在本发明的一个实施例中,所述根据所述多个视频文件转码任务的编码策略确定每个视频文件需要分配的pod资源数量,并将所述pod资源数量存入缓存包括:
39.获取每个视频文件的包括编码器和分辨率在内参数的编码策略,针对每个视频的所述多个第一切片片段匹配pod资源;其中,针对不同编码策略的多个视频文件分配各自类型预设的pod资源;
40.根据每个视频文件的第一切片片段数量分配相同数量的pod以组成所述每个视频文件对应的pod组。
41.针对每个视频文件的编码策略,分配与其匹配的pod资源数量,能够充分利用kubernetes内的所有资源,保证不同编码策略的转码任务达到最大的转码速度。通过将同一视频文件的多个pod组合成一个pod组,便于实现不同视频转码任务的顺序控制。
42.在本发明的一个实施例中,所述获取所述pod资源数量信息,将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存包括:
43.获取所述pod资源数量信息和所述多个视频文件信息;
44.按照预设的多个视频文件转码任务的优先级顺序将其对应的所述pod组按照对应顺序存入缓存。
45.优选的,在需要调整所述多个视频文件转码优先级的情况下,通过调整所述pod组的顺序以实现调整视频文件转码顺序。
46.通过将一个视频文件所对应的pod组按照顺序存放,可以实现,当需要调整视频转码顺序时,只需调整对应的pod组的顺序即可,简单,便于操作,避免pod资源被回收,降低客户体验的问题。
47.在本发明的一个实施例中,所述获取所述pod资源数量信息,将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存之后还包括:
48.通过轮询的方式,监控并计算转码集群中的总资源和剩余资源,剩余资源为m;
49.根据缓存中的pod组的顺序计算实现所述多个视频文件转码所需的资源大小为n;
50.当n大于等于m时,通过调用kubernetes将对应的pod组调度到服务器上,保证集群中至多有一个pod组的pod处于资源待调度的状态;
51.当n小于m时,通过调用kubernetes将所有pod组的pod调度到服务器上。
52.需要具体说明的是,通过轮询的方式,实时对kubernetes系统的资源进行自检和监控,当出现pod资源空闲的情况下,能够及时的将空闲资源及时调用,提高系统资源的利用率。
53.实施例二
54.基于相同的构思,本发明还提供一种基于kubernetes实现文件转码pod调度系统,用于实现上述调度方法,包括:
55.预处理模块,用于获取多个视频文件并进行切片处理以获取多个第一切片片段;资源匹配模块,用于根据所述多个视频文件转码任务的编码策略确定每个视频文件需要分配的pod资源数量,并将所述pod资源数量存入缓存;调度模块,用于获取所述pod资源数量信息,将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存;转码模块,用于针对所述多个第一切片片段进行顺序解码、编码运算以获取多个第二切片片
段,并将转码后的每个视频文件的所有第二切片片段合成后输出目标视频文件。
56.针对每个视频文件的编码策略,分配与其匹配的pod资源数量,能够充分利用kubernetes内的所有资源,保证不同编码策略的转码任务达到最大的转码速度。通过将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存,能够很好的控制视频文件的转码顺序,不会出现插队或者调整优先级时使得当前正在进行的低优先级的pod资源被回收,有利于提高用户体验。
57.优选的,所述基于kubernetes实现文件转码pod调度系统,还包括:轮询模块,用于通过轮询的方式,监控并计算转码集群中的总资源和剩余资源。
58.通过轮询的方式,实时对kubernetes系统的资源进行自检和监控,当出现pod资源空闲的情况下,能够及时的将空闲资源及时调用,提高系统资源的利用率。
59.第三实施例
60.本发明还提供一种计算机设备,包括:存储器,所述存储器用于存储处理程序;处理器,所述处理器执行所述处理程序时实现所述的基于kubernetes实现文件转码pod调度方法。
61.本领域技术人员可以理解,计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件或者组合某些部件,或者不同的部件布置。
62.在一个实施例中,提出了一种可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于kubernetes实现文件转码pod调度方法,具体步骤在此不再赘述。
63.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
64.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
65.采用上述技术方案后,与现有技术相比,本发明的有益之处在于:
66.1、本发明针对每个视频文件的编码策略,分配与其匹配的pod资源数量,能够充分利用kubernetes内的所有资源,保证不同编码策略的转码任务达到最大的转码速度。
67.2、通过将每个视频文件的多个第一切片片段对应的pod作为一组按照预设顺序存入缓存,能够很好的控制视频文件的转码顺序,不会出现插队或者调整优先级时使得当前正在进行的低优先级的pod资源被回收,有利于提高用户体验。
68.3、通过轮询的方式,实时对kubernetes系统的资源进行自检和监控,当出现pod资源空闲的情况下,能够及时的将空闲资源及时调用,提高系统资源的利用率。
69.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前
述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1