убедитесь, что вы используете последнюю версию FFmpeg. Для Windows и Linux статические сборки доступны на главной странице. Для macOS можно установить FFmpeg через доморощенного.
тогда, в простейшем случае запуск:
ffmpeg -i input.mkv -c:v libx264 -c:a aac out.mp4
качество видео
для контроля качества видео, set crf
параметр, по умолчанию 23. Чем ниже, тем лучше качество, но больше размер файла. Попробовать значения между 19 и 26, чтобы увидеть, что подходит лучше. Вы также можете установить определенную скорость передачи, в зависимости от размера файла, который вы хотите. Вот, например, 500 кбит/с:
ffmpeg -i input.mkv -c:v libx264 -crf 23 …
ffmpeg -i input.mkv -c:v libx264 -b:v 500k …
для аудио, вы можете установить скорость передачи данных тоже, с -b:a
.
многоканальный звук
если ваш аудиопоток использует несколько каналов (например, 5.1 звук), вам необходимо использовать другой кодировщик AAC (libfdk_aac
). Этот кодировщик недоступен в статических сборках, но может быть получен с помощью предварительно упакованные / доморощенные версии ffmpeg.
ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a libfdk_aac -b:a 384k out.mp4
копирование всех потоков
в случае, если ваш входной файл имеет более одного видео, аудио и субтитров поток, ffmpeg по умолчанию не конвертировать все из них.
использовать -map 0
для указания ffmpeg принимать все потоки из входного файла (см. Ffmpeg Wiki для получения дополнительной информации). Это полезно для сохранения различных языков и субтитров, которые могут быть в оригинале.
ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4