Я пытаюсь найти способ установить приоритет процесса 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
решение на основе. Похоже, оно не работает. Я создал 2 процесса ffmpeg с приоритетом 10 и -10, и тот, что был создан раньше, был завершен раньше
решение1
Вы просто звонитеnice
перед вызовом процесса, вместе со значением любезности.
Страницы руководства nice
покажут вам, как точно определить, насколько «хорош» процесс, т. е. чем ниже значение, тем он менее «хорош», но имеет более высокий приоритет.
nice --5 "ffmpeg -i...."
запустит ffmpeg со значением nice -5, что сделает его более приоритетным, чем что-либо со значением nice -1.
Обычно значение по умолчанию равно 0, более высокое значение означает, что приоритет будет ниже приоритета по умолчанию.