我正在尝试找到一种方法来设置 ffmpeg 进程优先级。服务器将传入的视频转换为不同的分辨率,新视频应该比现有进程具有更高的优先级,并且转换速度更快。
它的工作方式应该类似于 SJF(最短作业优先)或 LIFO(后进先出)算法。
有没有办法用 ffmpeg 来做到这一点?
我生成这样的进程
ffmpeg -i "${video_path}" -strict experimental -movflags faststart -vf "${resolution}" "${output_path}" >> "${ffmpeg_log}" 2>&1
笔记:
我已经测试过nice
基于解决方案。看起来它不起作用。我生成了 2 个优先级分别为 10 和 -10 的 ffmpeg 进程,较早生成的进程较早完成
答案1
你只需拨打nice
在调用该过程之前,以及niceness值。
的手册页将向nice
您展示如何准确确定一个进程的“好”程度,即较低的值==不太好,优先级较高。
nice --5 "ffmpeg -i...."
将使用 -5 的 nice 值启动 ffmpeg,使其优先级高于使用 -1 的 nice 值。
0 通常是默认值,高于此值意味着您的优先级低于默认优先级。