5

Я хочу спросить, поддерживает ли ffmpeg кодирование VP9, а если нет: как я могу кодировать видео VP9? Я пытаюсь использовать команду:

./ffmpeg-vp9 -y -i /home/mc/test.mkv -t 00:00:30 -c:v libvpx-vp9 -strict -2 -quality good -b:v 600k -speed 16 -rc_lookahead 25 -pass 1 2.webm

но это показывает ошибку в разделении появившейся команды (для vp9). Это вывод команды ffmpeg -codecs | grep vpx:

 ./ffmpeg -codecs|grep vpx
ffmpeg version N-51352-g81e85bc Copyright (c) 2000-2013 the FFmpeg developers
  built on Mar 27 2013 19:22:53 with gcc 4.8.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 22.101 / 52. 22.101
  libavcodec     55.  2.100 / 55.  2.100
  libavformat    55.  0.100 / 55.  0.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 48.105 /  3. 48.105
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
 DEV.L. vp8                  On2 VP8 (decoders: vp8 libvpx ) (encoders: libvpx )

Я пытался использовать vpxenc но точно не знаю значения его параметров.

Заранее спасибо.

3 ответа3

6

В основном ffmpeg поддерживает кодирование и декодирование VP9. Похоже, ваша сборка libvpx не поддерживает VP9. Для поддержки VP9 вы должны использовать экспериментальную ветку:

$ git clone -b experimental http://git.chromium.org/webm/libvpx.git
$ cd libvpx
$ ./configure --enable-vp9 --enable-shared
$ make && make install

Это должно включить VP9 для ffmpeg , который вы должны скомпилировать как обычно, с опцией конфигурации --enable-libvpx .

2

Что касается комментария ОП о скорости. Используйте двухпроходное кодирование. Это значительно быстрее, чем за один проход, а также качество изображения заметно лучше.

С моей версией 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 -c:a opus -b:a 64k -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

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

1

FFMPEG поддерживает VP9, пока связанный libvpx был скомпилирован с включенным VP9. Но кодирование ужасно медленное, даже для короткого клипа 1080p потребуется целая вечность.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .