Конвертируйте видео с помощью кодека vp9, используя ffmpeg

22953
Pavel Binar

Я пытаюсь конвертировать input.mp4видео с output.mkvиспользованием кодека vp9. У меня есть установить версию развития FFmpeg через: brew install ffmpeg --devel.

ffmpeg -i input.mp4 -vcodec vp9 output.mkv

Но я получаю ошибку: Unknown encoder 'vp9'даже vp9 включен:ffmpeg -codecs

7
Вы всегда должны включать полный вывод консоли `ffmpeg`. LordNeckbeard 10 лет назад 0
`brew install ffmpeg --with-libvpx --with-opus` Joel Purra 9 лет назад 0

2 ответа на вопрос

8
LordNeckbeard

The most basic command is:

ffmpeg -i input.mp4 -vcodec libvpx-vp9 -strict experimental output.webm 
  • FFmpeg currently considers this encoder to be experimental. The default settings will probably not provide a great looking output. This is currently a very slow encoder but optimization development is continuing.

  • Following the recommendations in the FFmpeg VPx Encoding Guide produces a more acceptable output, but I believe the guide was written for VP8 in mind and I'm unsure how much VP8 differs from VP9 in terms of options, etc.

  • Default audio encoder will be libvorbis. Refer to the Vorbis specific information on the FFmpeg Theora and Vorbis Encoding Guide for more info.

  • For a list of currently supported encoders refer to ffmpeg -encoders:

    $ ffmpeg -encoders | grep -i vp … V..... libvpx libvpx VP8 (codec vp8) V..... libvpx-vp9 libvpx VP9 (codec vp9) 
Спасибо, но команда не работает. Вот журнал: https://gist.github.com/pavelbinar/8236408 Проблема, вероятно, заключается в том, что у меня не установлен / включен кодер vp9 (я думал, что это в ffmpeg 2.x) https: // gist.github.com/pavelbinar/8236426 Pavel Binar 10 лет назад 0
Я установил ffmpeg и все его компоненты через это руководство, и теперь оно работает! https://sites.google.com/a/webmproject.org/wiki/ffmpeg/building-with-libvpx Pavel Binar 10 лет назад 0
2
user7610

С моей версией ffmpeg,

$ ffmpeg -version ffmpeg version 2.3.3 Copyright (c) 2000-2014 the FFmpeg developers 

команда выглядит так

ffmpeg -y -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 1 -an -f webm /dev/null ffmpeg -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 2 -c:a opus -b:a 64k -f webm output.webm 

т.е.

  • опустить экспериментальные флаги
  • сделать двухпроходное кодирование, потому что первые две секунды выходных данных будут размытыми в противном случае. Выполнение двухпроходного кодирования также выполняется быстрее, чем однопроходное.
  • при выполнении 2 прохода вам не нужно кодировать звук в первом проходе, как @FrankGalligan отметил в комментарии

Один проход был / был нарушен, согласно http://wiki.webmproject.org/vp9/known-issues

Не устанавливайте `-strict экспериментальный`. Это было для старшего FFmpeg. При выполнении 2 прохода вам не нужно кодировать звук в первом проходе. `ffmpeg -y -i input.mkv -c: v libvpx-vp9 -b: v 2000k -pass 1 -an -f webm / dev / null`` ffmpeg -i input.mkv -c: v libvpx-vp9 -b : v 2000k -pass 2 -c: опус -b: 64k -f webm output.webm` FrankGalligan 9 лет назад 0

Похожие вопросы