Почему перекодированное видео в несколько раз больше входного файла?
Вы заставляете кодировщик использовать настройку качества видео без потерь с -crf 0
. Это приводит к тому, что ваше выходное видео будет намного больше входного (при условии, что ваше входное видео закодировано с настройкой с потерями).
Настройка без потерь сильно ограничивает возможности сжатия кодера. Говоря простым языком: высокая производительность сжатия, достигаемая большинством видеокодеков, таких как x264, достигается за счет кодирования видео с потерями, которое пытается сохранить «воспринимаемое» качество, одновременно избавляясь от незначительно воспринимаемых данных.
Как кодировать MP4 видео без потери качества и увеличения размера файла?
Из-за того, как работает кодирование с потерями, буквально невозможно перекодировать ранее закодированное видео с потерями без потери качества, если только вы не используете настройку без потерь, которая, как вы столкнулись, увеличивает размер файла.
Скорее, вы можете попробовать поэкспериментировать с различными -crf
значениями, чтобы увидеть, какое качество / размер файла вы получаете в выходном видео. С кодированием с потерями это всегда будет компромиссом между качеством и размером файла. Вы можете прочитать о контроле битрейта кодирования здесь .