Сколько потоков использует ffmpeg по умолчанию?

Я вижу, что есть -threads <count> параметр командной строки в ffmpeg. Каково значение этого параметра по умолчанию?

18
задан studiohack
22.01.2023 16:51 Количество просмотров материала 2786
Распечатать страницу

5 ответов

Это зависит от используемого кодека, версии ffmpeg и количества ядер процессора. Иногда это просто один поток на ядро. Иногда это сложнее, как:

с libx264 это ядра x 1.5 для фреймовых потоков и ядра x 1 для слайсовых потоков.

20
отвечен mOlind 2023-01-24 00:39

по состоянию на 2014 год, он использует оптимальное число.

вы можете проверить это на многоядерном компьютере, изучив загрузку процессора (Linux:top, Windows: диспетчер задач) с различными параметрами для ffmpeg:

  • -threads 0 (оптимальный);

  • -threads 1 (однопоточный);

  • -threads 2 (2 потока, например, для Intel Core 2 Duo);

  • none (по умолчанию, также оптимальный.)

2015 редактировать: на 12-ядерном процессоре некоторые команды ffmpeg имеют Linux top показывает не более 200% cpu (только 2 ядра), независимо от того, какое число дано -threads. Таким образом, значение по умолчанию все еще может быть оптимальным в смысле "так хорошо, как этот двоичный файл ffmpeg может получить", но не оптимальным в смысле "полного использования моего процессора leet."

16
отвечен Camille Goudeseune 2023-01-24 02:56

в 2015 году на Ubuntu 14.04 с ffmpeg 0.8.10-6, он использовал 1 ядро на 4 ядра системы. htop показал это; только одно ядро было использовано, и я получил коэффициент конверсии 16 кадров в секунду для видео FullHD.

используя -threads 4 сделал все мои ядра процессора идут на 100%, и я получил коэффициент конверсии 47 кадров в секунду.

я использовал следующую команду:

$ ffmpeg -i foo.mp4 -y -target pal-dvd -aspect 16:9 dvd-out.mpg
4
отвечен cweiske 2023-01-24 05:13

Если вы включили резьбы, назначили 1,5 х Количество ядер.

1
отвечен rogerdpack 2023-01-24 07:30

играя с некоторыми преобразования в CentOS 6.5 VM (Ryzen 1700 8c / 16t-vm назначен 12 из 16 ядер) делает некоторые стандартные def (480p) фильмы сетчатой следующее:

вариант потока / конверсионный курс (ФПС @ 60 секс) (нет / по умолчанию) / 130fps -потоки 1/70fps -нити 2/120 кадров в секунду -потоки 4/185fps -нити 6/228fps -нити 8/204fps - темы 10 / 181fps

интересная часть была загрузка процессора (с помощью htop, чтобы посмотреть его). Используя вариант никак-резьб заведенный вверх на ряде 130fps с распределением нагрузки по всем ядрам на низком уровне нагрузки. Используя 1 нить сделал именно это, загрузил одно ядро на 100%. Использование чего - либо еще привело к другой ситуации с распределенной нагрузкой.

Как вы можете видеть, есть также Точка уменьшения отдачи, поэтому вам придется настроить опцию-threads для вашей конкретной машины. Для моей установки, в частности, использование-threads 6 (на 12-ядерном компьютере) привело к лучшему FPS при преобразовании видео (от h264 до x264 с другим битрейтом для принудительного преобразования) и возвращает на самом деле уменьшилось больше потоков, которые я бросил в него.

Это тоже могла быть проблема с памятью - виртуальной машине было назначено только 1 ГБ. Я могу настроить это и посмотреть, изменится ли что-нибудь. Тем не менее, это показывает, что использование опции-threads может увеличить производительность, поэтому запустите некоторые тесты на вашей конкретной машине на разных уровнях, чтобы найти свое сладкое место.

1
отвечен Bill Rookard 2023-01-24 09:47

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх