FFmpeg / avidemux: исправление упакованных B-кадров

12

Я транскодирую некоторые из моих старых видео mpeg4 (в контейнерах avi) в h.264 с помощью FFmpeg. В принципе

ffmpeg -i input.avi -c:v libx264 [x264 settings] -c:a libfdk_aac [aac settings] output.mp4

При этом mpeg4выдает следующее предупреждение

Видео использует нестандартный и расточительный способ хранения B-кадров («упакованных B-кадров»). Подумайте об использовании такого инструмента, как VirtualDub или avidemux, чтобы исправить это.

Я знаю, что все еще могу успешно транскодировать, но из предупреждения мне не ясно, повлияет ли это на качество полученного видео h.264 .

Так,

  • Учитывая, что меня интересует только качество (и размер, я хочу минимизировать размер для моих мобильных устройств, поэтому я также использую veryslowпредустановку) выходного видео h.264, если мне нужно заботиться о упакованном B- кадры?

  • Если я должен, как я могу исправить их с avidemux? (Я уже пробовал просматривать руководство.)

4ae1e1
источник

Ответы:

15

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

В старых видео в формате DivX обычно используется уродливый метод, называемый упакованным потоком битов, который помещает несколько видеокадров в один блок AVI. Упакованный поток битов не является стандартным MPEG-4, занимает больше места, требует больше ресурсов процессора для кодирования / декодирования и (что наиболее важно) может вызвать проблемы при копировании в контейнер другого типа. Это основная причина предупреждения.

Поскольку вы перекодируете видео, а не просто копируете его, все будет в порядке. Если вы хотите сохранить исходное видео, но скопировать его в контейнер другого типа (скажем, MP4 или MKV), лучше сначала распаковать B-кадры, используя фильтр FFmpeg mpeg4_unpack_bframes.

Вы могли бы распаковать B-кадры с чем-то простым, как

ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
xiii1408
источник