我试图将 mp4 文件中的第二个音频流的一部分静音,但似乎没有任何反应。
我现在有的是:
ffmpeg -i "2020-02-26 17-57-26.mp4" -filter_complex "[0:2]volume=enable='between(t,1,13)':volume=0[0:2]" -map 0:0 -map 0:1 -map 0:2 -c:v copy -c:a aac -b:a 320k "output.mp4"
我完全不知道它有什么问题
答案1
您的映射需要更改:
ffmpeg -i "2020-02-26 17-57-26.mp4" -filter_complex "[0:a:1]volume=enable='between(t,1,13)':volume=0[a1]" -map 0:v -map 0:a:0 -map "[a1]" -c:v copy -c:a:0 copy -c:a:1 aac -b:a 320k "output.mp4"
用一个流说明符会更准确。使用
[0:a:1]
只会选择第二个音频流,而使用[0:2]
则会选择文件中的第三个流,无论类型如何(视频、音频、字幕、数据)。对过滤器输出使用自定义标签(
[a1]
在示例中),这样它就不会与通用file index:stream index
方案冲突。
查看-map
选项以获取更多信息。