3

Я запускаю следующую команду для преобразования видео mp4 в формат VP8/Webm:

ffmpeg -y -i lists.mp4 -f webm -vcodec libvpx -vb 600k -r 20 -acodec libvorbis -ab 64k -ac 1 lists.webm

Когда я открываю его в VLC и пытаюсь искать различные точки в видео, поиск "квантуется". Под этим я подразумеваю 3 или 4 точки в видео, к которым искатель "привязывается", например, если я нажму на что-нибудь с 06:30 to 10:30 оно будет стремиться к 06:30

Я уверен, что проблема связана с тем, как компилируется ffmpeg. Miro Video Converter под Windows, который поставляется с ffmpeg, использует команду:

ffmpeg -y -i lists.mp4 -f webm -vcodec libvpx -acodec libvorbis -crf lists.webm

Вывод Miro не определяется в VLC, но та же команда в моей установке Linux делает. Следовательно, это должно быть связано с версиями ffmpeg или способом компиляции.

Кто-нибудь знает что-нибудь об этом? Отладочный вывод следует


Отладочная информация для linux ffmpeg:

ffmpeg version N-35110-g0b9a69f, Copyright (c) 2000-2011 the FFmpeg developers
  built on Nov 23 2011 12:51:56 with gcc 4.6.2


configuration: --prefix=/usr --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libx264 --enable-libvpx
--enable-libtheora --enable-libgsm --enable-libspeex --enable-postproc --enable-shared --enable-x11grab
--enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libschroedinger --enable-libopenjpeg --enable-librtmp
--enable-gpl --enable-version3 --enable-runtime-cpudetect --disable-debug --disable-static

  libavutil    51. 26. 0 / 51. 26. 0
  libavcodec   53. 37. 0 / 53. 37. 0
  libavformat  53. 21. 0 / 53. 21. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 49. 0 /  2. 49. 0
  libswscale    2.  1. 0 /  2.  1. 0    
  libpostproc  51.  2. 0 / 51.  2. 0

Для Windows (видео конвертер Miro):

    FFmpeg version SVN-r25762, Copyright (c) 2000-2010 the FFmpeg developers
      built on Nov 18 2010 04:07:17 with gcc 4.4.2
      configuration: --enable-gpl --enable-version3 --enable-libgsm
--enable-pthreads --enable-libvorbis --enable-libtheora --enable-libspeex 
--enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger
--enable-libopencore_amrwb --enable-libopencore_amrnb --enable-libvpx
--disable-decoder=libvpx --arch=x86 --enable-runtime-cpudetect --enable-libxvid
--enable-libx264 --extra-libs='-lx264 -lpthread' --enable-librtmp
--extra-libs='-lrtmp -lpolarssl -lws2_32 -lwinmm' --target-os=mingw32
--enable-avisynth --cross-prefix=i686-mingw32- --cc='ccache i686-mingw32-gcc'
--enable-memalign-hack
      libavutil     50.33. 0 / 50.33. 0
      libavcore      0.13. 0 /  0.13. 0
      libavcodec    52.96. 0 / 52.96. 0
      libavformat   52.84. 0 / 52.84. 0
      libavdevice   52. 2. 2 / 52. 2. 2
      libavfilter    1.62. 0 /  1.62. 0
      libswscale     0.12. 0 /  0.12. 0

1 ответ1

5

В частности, я ничего не знаю о кодировке VP8, но в целом ffmpeg ссылается на ключевые кадры в терминах размера "группы изображений".

Передайте параметр -g с номером, который будет использоваться как максимальный размер группы изображений в кадрах; это будет максимальное количество кадров между ключевыми кадрами (включая ключевой кадр).

Возможно, что разные версии ffmpeg / codec имеют разные значения по умолчанию; тем не менее, вы можете переопределить его, чтобы быть тем, что вы хотите.

Фон:

Сжатые форматы видео часто не хранят полные данные для каждого кадра видео, вместо этого сохраняя большинство кадров в качестве описания того, как построить кадр из фрагментов прошлых кадров (и в более современных системах - фрагментов ближайшего будущего). Чтобы иметь возможность быстрого поиска и начала воспроизведения, программное обеспечение видеопроигрывателя часто позволяет переходить только к кадрам, в которых сохранены полные данные, которые называются "ключевыми кадрами" или I-кадрами.

Как правило, вы можете указать кодировщику, как часто вы хотите, чтобы он помещался в ключевой кадр. Больше ключевых кадров обеспечивает большую гибкость для поиска и редактирования, но делает сжатие видео менее эффективным.

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