如何使用 ffmpeg 重新混合选定的音轨和字幕?

如何使用 ffmpeg 重新混合选定的音轨和字幕?

所以我有一个带有多个音轨和多个字幕(不同语言)的视频(可以是 MKV 或 MP4)。

我想要的是将其重新混合成一个新的视频并且:

  1. 仅选择 1 或 2 个音轨
  2. 仅选择 1 或 2 个字幕轨道
  3. 将 1 个音轨和 1 个字幕轨(如果可用)设为默认值,以便在使用 VLC 播放视频时自动选择它们。

我搜索了网络,但找不到我想要的东西。我也查看了“man ffmpeg”。我想我可能必须使用 -map 参数,但给出的示例似乎仅限于复制音频。

多谢! :)

在此处输入图片描述

答案1

假设您的输入有 3 个音频和字幕轨道以及一个视频轨道,那么要将视频、第 2 个音频轨道和第 1 + 3 个字幕轨道混合在一起,您可以使用

ffmpeg -i in.mkv -c copy -map 0:v -map 0:a:1 -map 0:s:0 -map 0:s:2 out.mkv

据我所知,FFmpeg 无法正确设置流的默认标志,因此最好的办法是先对您想要的默认轨道进行多路复用。假设在上面的例子中,您希望将第三个字幕流设为默认流,则可以使用

ffmpeg -i in.mkv -c copy -map 0:v -map 0:a:1 -map 0:s:2 -map 0:s:0 out.mkv

(映射参数的顺序设置了输出中流的顺序)

相关内容