使用 FFMPEG 处理 MKV 中的所有音频流

使用 FFMPEG 处理 MKV 中的所有音频流

我想在包含两种语言音频流的 MKV 文件中进行动态音频规范化

ffmpeg -i "Source.mkv" -vcodec copy -af "dynaudnorm=f=50:p=0.9" "Target.mkv"

执行此命令后,结果仅包含第一个音频流。

如何让 FFMPEG 保持视频原样并处理所有音频流(无论它们有多少个)?

更新

-map 0以错误“输出流 0:1 缓冲的数据包太多”结束。

-map 0:a以错误“为输出流 0:0 缓冲的数据包太多”结束。

-map 0:2导致 FFMPEG 在目标文件中仅留下一个流,并且该流是第二个音频。(并且我需要一个通用命令,它能够处理所有流而不在命令行中更改任何内容)

答案1

您可以使用-map标志来选择特定的流,如下所述这里。

如果要选择所有流·添加-map 0 如果要选择所有音频流,请添加-map 0:a

对于你来说,情况是: ffmpeg -i "Source.mkv" -map 0:a -vcodec copy -af "dynaudnorm=f=50:p=0.9" "Target.mkv"

相关内容