我正在嘗試找到一種方法來設定 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
在呼叫進程之前,以及好感值。
的手冊頁將向nice
您展示如何準確地確定一個進程有多“好”,即較低的值==不太好,較高的優先級。
nice --5 "ffmpeg -i...."
將啟動 ffmpeg,其nice值為-5,使其優先權高於nice值為-1的內容。
0 通常是預設值,高於此值表示您的優先順序低於預設值。