Я пытаюсь преобразовать некоторые файлы в webm с ffmpeg использование следующей команды:
# First pass
ffmpeg -i input.mp4 -codec:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 8 -vf -an -pass 1 -f webm /dev/null
# Second pass
ffmpeg -i input.mp4 -codec:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 8 -vf -codec:a libvorbis -b:a 128k -pass 2 -f webm output.webm
Но я получаю это сообщение об ошибке:
[NULL @ 0x55c5d4360220] Unable to find a suitable output format for 'libvorbis'
libvorbis: Invalid argument
Я уже установил libvorbis0a, libvorbisenc2 и libvorbisfile3, таким образом, я искал в репозитории, но не могу найти libvorbis пакет (только libvorbis-dev, что я предполагаю, для компиляции это?)
Таким образом, действительно я должен скомпилировать его, или я делаю что-то не так? (Я нахожусь на Ubuntu 16.10),
Вот то, что было эффективным для меня:
Pass1:
ffmpeg -i input.mp4 -an -c:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 4 -pass 1 -f webm /dev/null
Pass2:
ffmpeg -i input.mp4 -c:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 4 -c:a libvorbis -b:a 128k -pass 2 -f webm output.webm
Примечание: Я изменил потоки на 4, поскольку я не имею 8. Возврат этого для удовлетворения системе не должен быть проблемой. Я также изменил длинный ручной '-кодек: 'к короче -c:
вариант (сила привычки) и перемещенный - (никакой коммутатор аудиосигналов) к передней стороне передачи 1 (я не уверен, что это требуется в этом экземпляре, но это ничего не повреждает). и конечно я разделил побочное - VF (видеофильтр) переключатель, как упомянуто @LordNeckbeard, который вызывал ошибку, которую Вы получали на 2-й передаче, а также невидимая ошибка, переданная по каналу к/dev/null ""Запаздывание опций, были найдены на командной строке". на первичной обработке.
Вы имеете -vf
(видеофильтр) опция в каждой команде, но Вы не обеспечили названий фильтра его. Или добавьте фильтр или удалите ошибочное -vf
из каждой команды.