FFmpeg 复制多个流并将一个音频流转换为 ac3

FFmpeg 复制多个流并将一个音频流转换为 ac3

我有文件 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

相关内容