Как определить оптимизированное количество параллельно выполняемых заданий кодирования с помощью библиотеки кодировщика x264 - PullRequest
0 голосов
/ 08 января 2020

Я пакетно конвертирую сотни видео в mp4 и пытаюсь оптимизировать мой метод.

Я написал скрипт узла, который порождает процессы FFMPEG для конвертации видео.

Из моего понимание как FFMPEG, так и кодера libx264 уже оптимизировано для многопоточной поддержки. Я использую опцию потоков по умолчанию в кодировщике.

Я пытаюсь найти оптимальное количество порожденных процессов FFMPEG, которое я должен выполнить. Похоже, существует баланс между слишком большим количеством и замедлением кодирования всех заданий по сравнению с слишком малым числом процессов, проходящих через очередь заданий слишком медленно.

Мне также интересно, если выделять определенное число c Потоки для каждого задания кодирования могут помочь, а не использовать настройку по умолчанию?

Для моей установки я использую устаревшую 12-ядерную Ma c Pro с 24 потоками, хотя этот вопрос касается поиска оптимального баланс в целом.

1 Ответ

1 голос
/ 09 января 2020

При кодировании потоков видео всегда идет в ущерб качеству. libx264 очень хорош в многопоточности, но он не застрахован от этого эффекта. В моем тестировании около 4 потоков вы можете увидеть визуальную разницу при низких битрейтах. Обычно это нормально и стоит компромисса для ускорения кодирования.

Но вы этого не делаете. Вы кодируете много видео на одном процессоре. Поэтому оптимально было бы использовать 1 поток на кодирование и столько параллельных кодов, сколько имеется ядер.

Это не ускорит кодирование, это займет столько же времени, но приведет к повышению качества видео после завершения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...