我有一个 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
您可以使用-map
选项(完整文档)选择特定的输入流并将其映射到您的输出。
您可以使用的最简单的map
语法是-map i:s
,其中i
是输入文件 ID,s
是流 ID,均以 开头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
是第二个音频流。