例如:我有 2 个 MKV 视频,其中有 3 个音频流(英语、法语和普通话)和 2 个字幕流(英语和普通话)
音频流可以按任意顺序出现。例如,在第一个视频中,普通话是第一个音频流,但在第二个视频中,它使用的是法语。字幕的情况也一样。
我想自动选择普通话音频和英文字幕,而不必指定流号(也许使用-map?)。
这可能吗?如果可以,怎么做?
谢谢!
答案1
目前无法通过单个命令完成此操作。但是,可以使用多个命令来解决。
ffmpeg -i in.mkv -map 0:m:language=chi? -c copy chi.mkv
ffmpeg -i in.mkv -map 0:m:language=eng? -map -0:v -c copy eng.mkv
ffmpeg -i in.mkv -i chi.mkv -i eng.mkv -map 0:v -map 1:a? -map 2:s? -c copy final.mkv
第一个命令将所有中文流(如果有)提取到临时 MKV 中。
第二条命令将除视频之外的所有英语语言流(如果有)提取到临时 MKV 中。
最后的命令映射原始文件中的视频、中文临时文件中的音频以及英文临时文件中的字幕。