(адаптировано из комментариев выше)
В зависимости от используемых кодеков (некоторые кодеки несовместимы с некоторыми контейнерами), вы всегда можете просто скопировать streams ( -codec copy
). Это лучший способ избежать качественных изменений, поскольку вы не перекодируете потоки, а просто перепаковываете их в другой контейнер.
При работе с аудио / видео файлами важно помнить, что контейнеры в основном не зависят от используемых кодеков. Люди часто называют файлы «AVI video» или «MP4 video», но они являются контейнерами и мало говорят нам о том, сможет ли проигрыватель воспроизводить потоки, помимо технических ограничений (например, AVI может иметь проблемы с h264 и Ogg Vorbis ), вы можете использовать любой кодек.
-same_quant
Похоже, это способ сказать ffmpeg, чтобы он пытался достичь аналогичного качества, но как только вы перекодируете видео (по крайней мере, с помощью кодеков с потерями), у вас не будет способа получить такое же качество. Если вас интересует качество, хорошее правило - избегать перекодирования потоков, когда это возможно.
Итак, чтобы скопировать потоки с помощью ffmpeg, вы должны сделать:
ffmpeg -i video.mp4 -codec copy video.avi
( Как упоминалось в @ Peter.O , порядок опций важен, так что это то, куда -codec copy
нужно идти. Вы все еще можете сохранить -same_quant
, но это не будет иметь никакого эффекта, поскольку вы не перекодируете потоки.)
-codec copy
). Это лучший способ избежать качественных изменений, поскольку вы не перекодируете потоки, а просто перепаковываете их в другой контейнер.