ffmpeg プロセスの優先度を変更するにはどうすればいいですか?

ffmpeg プロセスの優先度を変更するにはどうすればいいですか?

ffmpeg プロセスの優先順位を設定する方法を探しています。サーバーは受信したビデオをさまざまな解像度に変換しますが、新しいビデオは既存のプロセスよりも優先順位が高く、より速く変換される必要があります。

これは、SJF (Shortest Job First) または LIFO (Last In First Out) アルゴリズムと同様に動作するはずです。

ffmpeg でそれを実行する方法はありますか?

私はこのようなプロセスを生成します ffmpeg -i "${video_path}" -strict experimental -movflags faststart -vf "${resolution}" "${output_path}" >> "${ffmpeg_log}" 2>&1

注記:

すでにテストnice済みのソリューションがあります。うまくいかないようです。優先度10と-10の2つのffmpegプロセスを起動しましたが、先に起動したものの方が早く完了しました。

答え1

電話するだけniceプロセスを呼び出す前に、niceness 値とともに指定します。

のマニュアル ページには、niceプロセスがどの程度「適切」であるかを正確に判断する方法が示されています。つまり、値が低いほど適切性が低く、優先度が高くなります。

nice --5 "ffmpeg -i...."ffmpeg を nice 値 -5 で起動し、nice 値 -1 のものよりも優先度を高くします。

通常、0 がデフォルトです。これより大きい値は、デフォルトよりも優先度が低くなることを意味します。

関連情報