Многоядерное кодирование с VP9 FFmpeg

Я хочу начать использовать формат WebM и кодек VP9 для моих видео на YouTube. Я знаю, что с хорошим сжатием идет медленная скорость, но FFmpeg использует только 1 из моих 8 ядер. Я пытался использовать -threads 8 в моей команде, но FFmpeg, кажется, игнорирует это. Из того, что я прочитал, кодировщик VP9 должен поддерживать несколько потоков. Что я могу сделать, чтобы заставить это работать?

FFmpeg version 2.7.2-1build1
libvpx1 version 1.3.0-3ubuntu1
libvpx2 version 1.4.0-4

Используемая команда:

ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 10 -b:v 5000k -c:a libvorbis output.webm

Нужно ли устанавливать оба пакета libvpx? libvpx2 имеет значок Ubuntu рядом с ним в Synaptic, так что я предполагаю, что другой - это обновление от 15.10?

2 ответа

Решение

Спасибо за информацию о порядке опций @bodhi.zazen и @LordNeckbeard. Очевидно кодировщик libvpx немного более требователен к этому. Когда я добавил опцию -threads после -c:v libvpx, он явно использует больше ядер согласно top.

-threads 0 использует только 1 ядро, -threads 8 использует 2 ядра, а -threads 16 использует 4 ядра. Я попытался использовать большее число, но кодировщик говорит, что более 16 потоков не рекомендуется и больше не использует процессор. Сама скорость кодирования сейчас примерно в два раза выше. Спасибо еще раз за помощь!

Для сервера с 16 процессорами вы можете попробовать следующие параметры: -threads 16 -slices 16 -cpu-used -4

Другие вопросы по тегам