Я предоставлю простой и общий ответ, который работает с любым количеством аудио, и srt субтитры и учитывают метаданные, которые могут включать контейнер mkv . Таким образом, он даже добавит изображения, которые matroska может включать в качестве вложений (но не других типов AFAIK), и преобразует их в дорожки; Вы не сможете смотреть, но они будут там (вы можете демультиплексировать их). Ах, а если у mkv есть главы, то и mp4 тоже.
ffmpeg -i <mkv-input> -c copy -map 0 -c:s mov_text <mp4-output>
Как видите, все дело в -map 0
, который говорит FFmpeg добавить все дорожки, включая метаданные, главы, вложения и т. Д. Если существует нераспознанная "дорожка" ( mkv позволяет прикрепить файл любого типа ), это закончится с ошибкой.
Вы можете создать простой пакет mkv2mp4.bat
, если вы обычно делаете это, чтобы создать mp4 с тем же именем, что и mkv . Было бы лучше с контролем ошибок, другим именем выхода и т. Д., Но вы поняли.
@ffmpeg -i %1 -c copy -map 0 -c:s mov_text "%~n1.mp4"
Теперь вы можете просто запустить
mkv2mp4 "Video with subtitles etc.mkv"
И он создаст «Видео с субтитрами и т. Д .mp4» с максимальным количеством информации.