仅使用 ffmpeg 转换特定的视频和音轨

仅使用 ffmpeg 转换特定的视频和音轨

我有一个 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。在您的例子中,这意味着我们选择轨道04

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是第二个音频流。

相关内容