Я знаю, что это "хромой" вопрос, но: допустим, у меня есть БОЛЬШОЙ файл wmv, avi и т.д. Я хочу преобразовать это в.MP4, с возможным наименьшим размером файла и, конечно, с тем же качеством с аудио / видео. Как? Какой кодек я должен использовать? Я использую FFmpeg
2 ответа
Вы можете попробовать кодировать с помощью libx264 crf 18. Он хорошо известен тем, что дает (возможно) "визуально без потерь" результат.
ffmpeg -i input.avi -vcodec libx264 -x264-params crf=18 -preset veryslow -acodec copy out.mp4
Обратите внимание, что я использовал предустановку veryslow, которая даст вам наименьший возможный файл. Кроме того, я решил скопировать звуковую дорожку, а не перекодировать ее, в основном потому, что я предполагаю, что в вашем примере уже есть стерео AAC/MP3.
Если выходной сигнал слишком велик для вас, попробуйте с более высоким значением crf (до 23), но качество пострадает.
Получение самого маленького видео с наименьшим количеством потерянного качества является более сложной задачей, чем что-либо еще. В Интернете есть руководства, которые порекомендуют вам настройки для использования в FFmpeg для таких вещей, как захваты игр, потоки, DVD-рипы и т.д.
Если вы хотите без потерь, попробуйте это:
ffmpeg -i input.mp4 -c:v libx264 -crf 0 output.mp4
Важной частью является часть -crf 0
которая устанавливает его в без потерь. Однако выходной файл обычно будет очень большим. Вы можете изменить его на -crf 18
что даст вам что-то приемлемое по качеству и лишенное большинства артефактов.