В чем причина уменьшения размера после конвертации из mkv в mp4 с помощью ffmpeg

Я конвертировал большую группу mkvs в mp4 (с помощью командной строки:

      for i in $(ls *.mkv); do ffmpeg -i $i ${i/mkv/mp4}; done

но и некоторые с

      ffmpeg -i video.mkv video.mp4

Результат отличается по размеру от входных данных, хотя я не вижу никакой разницы (в моем видеоплеере), и MediInfo подтверждает, что формат/соотношение и кодеки одинаковы, только битрейт меньше. В большинстве случаев файл намного меньше.

Какова причина? Избавляет ли ffmpeg от слишком большого битрейта без информации?

(извините за нубскую гипотезу)

2 ответа

Каждый раз, когда вы указываете ffmpeg конвертировать файлы без опций, вы теряете качество.

Большая разница указывает на то, что «стандартные» настройки качества по умолчанию, выбранные ffmpeg, значительно отличаются от оригинала. Возможно , ffmpeg использует лучшие методы сжатия, которые обеспечивают аналогичное качество при более низком битрейте, но это также может означать, что он просто отбрасывает много мелких деталей, которые вы можете увидеть, если сравните каждый пиксель в одном кадре изображения. источник и пункт назначения.

Даже если ffmpeg использует параметры кодирования более высокого качества, по крайней мере некоторое «качество» или данные будут потеряны.

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

Если все, что вам нужно сделать, это изменить контейнер видео с mkv на mp4 и сохранить все данные в оригинале, вам понадобится команда типа

      ffmpeg -i input.mkv -vcodec copy -acodec copy output.mp4

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

Спасибо. Я только что провел дополнительные тесты с парой файлов mp4 в кодировке GOP1, и действительно, результат сжимается и перемещается труднее. Тем не менее мне интересно, что такое сжатие по умолчанию. Должен сказать, что выбор сжатия не так уж и плох.

Другие вопросы по тегам