System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于ffmpeg的分布式调度方法及系统技术方案_技高网

一种基于ffmpeg的分布式调度方法及系统技术方案

技术编号:40540690 阅读:4 留言:0更新日期:2024-03-05 18:56
本发明专利技术涉及视频处理技术领域,特别是涉及一种基于ffmpeg的分布式调度方法,本发明专利技术的方法在面对大规模的视频处理任务时,会根据待需处理的视频总数量N在中心节点划分为对应的N个子任务;每个子任务会有独立的线程来处理,每个线程任务之间互不干扰,能够快速高效的完成视频处理任务,降低用户的等待时间以及防止内存溢出导致的服务器瘫痪等风险;可以灵活地扩展,根据需求增加或减少工作节点数量,以适应不同规模的视频处理任务;提供更高的系统可靠性和容错性,即使某个节点发生故障或网络中断,其他节点仍然可以继续处理任务,确保任务的顺利完成;此外,系统还支持任务重试,提高处理的稳定性。

【技术实现步骤摘要】

本专利技术涉及视频处理,特别是涉及一种基于ffmpeg的分布式调度方法及系统


技术介绍

1、在视频处理过程中,经常会用到ffmpeg来处理视频,常规的方法可以实现小视频的处理,但是当遇到大规模视频处理的需求时,传统的单节点视频处理方式会造成处理速度慢效率低下严重的会导致内存溢出;同时传统的单节点视频处理方式存在单点故障的风险,一旦节点发生故障,整个视频处理任务就会中断严重影响生产效率。

2、为了解决如上问题,一种高效的基于ffmpeg的分布式调度方法及系统就显得尤为重要。


技术实现思路

1、本专利技术目的是针对
技术介绍
中存在的问题,提出一种基于ffmpeg的分布式调度方法及系统。

2、本专利技术的技术方案,一种基于ffmpeg的分布式调度方法,包括以下具体步骤:

3、s1、用户提交了视频处理请求,中央控制器接收处理请求;

4、s2、中央控制器对视频处理请求打上批次标记,之后将此批次标记发送至中心节点;

5、s3、中心节点收到中央控制器下发的批次标记任务后,将批次标记拆分为与视频总数量相等的子任务;任务拆分好后将所有子任务添加至任务队列中;

6、s4、每个工作节点上设有定时任务,每隔30s去任务队列中拉取一个处理任务;拉取到了则进入s5,同时在任务队列中将此任务删除,没有拉取到则继续等待;

7、s5、工作节点拉取到任务后,先根据拉取到的子任务标记去中心节点更新对应的状态值,中心节点更新成功后会通知对应的工作节点;

8、s6、工作节点在收到中心节点对应的状态更新成功响应后,则开始执行ffmpeg处理视频任务;执行成功后会进入s7;若执行失败则会进入s8;

9、s7、工作节点通知中心节点任务执行成功,中心节点在收到工作节点执行成功的请求后会更新status值;将工作节点执行成功的结果文件保存至存储模块,然后释放内存;此时,该工作节点任务到此就全部完成,返回s4等待拉取下一个处理任务;

10、s8、进入重试模块,重试模块会根据自定义的重试策略去进行重试任务,重试策略为用户自定义;

11、s9、重试成功则通知中心节点更新状态值;重试失败在更新状态值后,通知异常处理模块工作;

12、s10、异常处理模块记录任务执行失败的原因,当所有任务都执行结束后汇总所有任务失败的具体原因。

13、s3中每个子任务有独立的转态值status,起始status都为0,表示未开始。

14、优选的,每个子任务之间互不干扰,且总控制权归中心节点batch1。

15、优选的,s5中将状态值更新status为1,表示进行中。

16、优选的,s7中执行成功的请求后会更新status值为2,表示执行成功。

17、优选的,s8中用户可自定义重试的间隔以及重试的次数。

18、优选的,s9中,重试成功,则更新状态值status值为2,重试失败则更新状态值status值为3标识失败。

19、一种基于ffmpeg的分布式调度系统,执行上述的方法,包括可交互的输入模块和中央控制器;

20、用户通过可交互的输入模块提交视频处理请求至中央控制器;

21、中央控制器接受视频处理请求并打上批次标记;

22、中央控制器还包括中心节点、工作节点、任务队列、重试模块、异常处理模块和存储模块;

23、其中,中心节点用于将任务批次拆分为与视频总数量相等的子任务;

24、工作节点用于执行ffmpeg处理视频任务;

25、任务队列对待处理的任务进行排序,按顺序进行任务处理;

26、重试模块对工作节点中执行ffmpeg处理视频任务失败的任务进行重试,并可自定义重试策略;

27、异常处理模块记录任务失败的原因并进行汇总;

28、存储模块用于存储输出文件以及异常处理模块汇总的失败原因文件。

29、与现有技术相比,本专利技术具有如下有益的技术效果:

30、1、大规模的视频处理任务会根据待需处理的视频总数量n在中心节点划分为对应的n个子任务;

31、2、每个子任务会有独立的线程来处理,每个线程任务之间互不干扰;

32、3、每个工作节点任务处理完成后会立即释放内存资源,避免内存溢出的关键问题;

33、4、工作节点数量可以根据需求灵活的扩展,以适应不同规模的视频处理任务。

本文档来自技高网...

【技术保护点】

1.一种基于ffmpeg的分布式调度方法,其特征在于,包括以下具体步骤:

2.根据权利要求1所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,S3中每个子任务有独立的转态值status,起始status都为0,表示未开始。

3.根据权利要求2所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,每个子任务之间互不干扰,且总控制权归中心节点Batch1。

4.根据权利要求2所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,S5中将状态值更新status为1,表示进行中。

5.根据权利要求2所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,S7中执行成功的请求后会更新status值为2,表示执行成功。

6.根据权利要求1所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,S8中用户可自定义重试的间隔以及重试的次数。

7.根据权利要求1所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,S9中,重试成功,则更新状态值status值为2,重试失败则更新状态值status值为3标识失败。

8.一种基于ffmpeg的分布式调度系统,执行如权利要求1-7任一项所述的方法,其特征在于,包括可交互的输入模块和中央控制器;

...

【技术特征摘要】

1.一种基于ffmpeg的分布式调度方法,其特征在于,包括以下具体步骤:

2.根据权利要求1所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,s3中每个子任务有独立的转态值status,起始status都为0,表示未开始。

3.根据权利要求2所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,每个子任务之间互不干扰,且总控制权归中心节点batch1。

4.根据权利要求2所述的一种基于ffmpeg的分布式调度方法及系统,其特征在于,s5中将状态值更新status为1,表示进行中。

5.根据权利要求2所述的一种基...

【专利技术属性】
技术研发人员:杨帆徐昕
申请(专利权)人:小视科技江苏股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1