18

У меня есть файл MKV (vidui.mkv) с 6 треками в нем.

Track 1 - video - xvid - 1920x1080
Track 2 - video - xvid - 720x576
Track 3 - audio -  AAC - 1240kbps - English
Track 4 - audio -  AAC - 648kbps - Spanish
Track 5 - audio -  AAC - 648kbps - Commentary 1
Track 6 - audio -  AAC - 648kbps - Commentary 2

Я хочу преобразовать вышеуказанный файл в формат mp4 с одним видео h264 и одним аудио AC3. Также я хочу конвертировать трек 1 (видео) и трек 5 (аудио).

Если я использую

ffmpeg.exe -i vidui.mkv -f mp4 -vcodec libx264 -acodec ac3 -crf 20 -sn -n vidui.mp4

он преобразует первую видео дорожку и первую звуковую дорожку, но я бы хотел, чтобы она преобразовала дорожку 1 и дорожку 5.

1 ответ1

32

Вы можете использовать опцию -map (полная документация), чтобы выбрать определенные входные потоки и сопоставить их с вашими выходными данными .

Самый простой синтаксис map вы можете использовать, это -map i:s , где i - идентификатор входного файла, а s - идентификатор потока, оба начинаются с 0 . В вашем случае это означает, что мы выбираем треки 0 и 4:

ffmpeg -i vidui.mkv -c:v libx264 -c:a ac3 -crf 20 -map 0:0 -map 0:4 vidui.mp4

Если вы хотите выбрать видео, аудио или субтитры, вы также можете использовать спецификаторы потока:

ffmpeg -i vidui.mkv -c:v libx264 -c:a ac3 -crf 20 -map 0:v:0 -map 0:a:1 vidui.mp4

Здесь 0:v:0 является первым видеопотоком, а 0:a:1 является вторым аудиопотоком.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .