我有文件 1.mkv,其中包含以下流:
- 0 - 视频
- 1 - 音频 FR - AC3
- 2 - 音频 GER - AC3
- 3 - 音频 EN - DTS
- 4 - 法语字幕
- 5 - 德语字幕
- 6 - 德语字幕
- 7 - 德语字幕
- 8 - 英文字幕
我希望生成的文件包含以下流(顺序不重要):
- 0 - 视频
- 2 - 音频 GER - AC3
- 3 - 音频 EN - AC3
- 5 - 德语字幕
- 6 - 德语字幕
- 7 - 德语字幕
- 8 - 英文字幕
(删除流 2 和 4,并将流 3 从 DTS 转换为 AC3)
我唯一能做的就是将所有音频流转换为 AC3 或删除流 2 和 4。无论我多么努力,我都无法用一个代码实现这两者。谢谢。
答案1
由于我现在无法访问这样的文件,因此没有对此进行测试,但我猜它应该是这样的:
ffmpeg -i input.mkv -map 0 -map -0:a:0 -map -0:s:0 -c copy -c:a:1 ac3 output.mkv
-map 0: 映射一切
-map -0:a:0:删除第一个音频(法语)
-map -0:s:0: 删除第一个字幕(法语)
-c copy:对所有内容使用与原始内容相同的编解码器
-c:a:1 ac3:将第二个音频(英语)转换为 ac3