【发布时间】:2018-07-17 06:20:17
【问题描述】:
我正在尝试在多个文件的循环中执行ffmpeg。我只希望一次运行一个实例,并且只使用 50% 的 cpu。我一直在尝试cpulimit,但循环播放效果不佳。
for i in {1..9}; do cpulimit -l 50 -- ffmpeg <all the options>; done
这会同时产生所有九个工作,它们都归init 所有,所以我必须打开htop 才能杀死它们。
for i in {1..9}; do ffmpeg <all the options> & cpulimit -p $! -l 50; done
这挂了,ctrl+c 继续下一个循环迭代。这些实例只能被SIGKILL杀死。
【问题讨论】:
-
我遇到了同样的问题,我使用以下方法修复了它,只需将 ffmpeg 命令写入
txt文件,并且每次我在 CPU 不忙时读取并执行命令时,也会从 @ 中删除已执行的命令987654330@文件,如果CPU忙于其他进程则跳过命令执行,一段时间后再次读取txt文件, -
你尝试过一种不错的/renice 的方法吗?
-
@Allan 不,我的问题是热量积聚,而不是资源争用。
-
@harishsharma 听起来您已经实现了 UltrasoundJelly 建议的任务调度程序。
-
是的,但是我从基本方法创建了调度程序,没有使用任何库/存储库,
标签: bash loops ubuntu ffmpeg cpu-usage