Можно ли запускать задания на нескольких процессорах или потоках, чтобы ускорить avconv?
Есть ли функция в процессе, если не интересно, почему?
Можно ли запускать задания на нескольких процессорах или потоках, чтобы ускорить avconv?
Есть ли функция в процессе, если не интересно, почему?
Ответы:
Вы выбрали опцию -threads в avconv. Самая безопасная настройка будет:
-threads auto
но вы также можете установить целое число, если хотите немного поэкспериментировать. Современный FFmpeg (теперь стандарт в Ubuntu) устанавливает это auto
по умолчанию, как показано в этом разделе справочных страниц ffmpeg-all:
threads integer (decoding/encoding,video)
Set the number of threads to be used, in case the selected
codec implementation supports multi-threading.
Possible values:
auto, 0
automatically select the number of threads to set
Default value is auto.
Обратите внимание на 2 важных момента:
Если вы выполняете транскодирование аудио для большого количества файлов, посмотрите на использование GNU Parallel. Он будет принимать список файлов в качестве входных данных и обрабатывать их параллельно в зависимости от количества ядер в вашей системе. Например, вот пример bash, который будет конвертировать музыку в аудиоформат opus параллельно, используя ffmpeg.
find ./* -depth -type f -name \*.ogg -o -name \*.flac -o -name \*.m4a -o -name \*.mp3 -o -name \*.ogg | parallel -j+0 --gnu nice -n 19 ffmpeg -i "{}" -acodec libopus "{.}.opus" -loglevel quiet