如何在ffmpeg中使用可以为空的音频流?

如何在ffmpeg中使用可以为空的音频流?

我想从视频中获取音频,设置其音量,然后将它们重新合并(使用更多过滤器,但我认为它们与问题无关。)

我可以用以下方法做:

ffmpeg -i vid.mp4 -i input2.mp3 -filter_complex "[0:a]volume=0.5[a0];[a0][1:a]amix=inputs=2:duration=longest[audio]" -map v:0 -map "[audio]" -shortest out.mp4

但是,视频没有音频流,然后出现错误:Stream specifier ':a' in filtergraph description [0:a]volume=0.5[a0] matches no streams.

如果不为空,如何有条件地使用流?(如果它为空,我想要空的音频)。

答案1

还有一些过滤器,但我认为它们与问题无关

由于您没有显示实际的完整命令,我只能在下面回答您发布的命令,这可能不适用于完整命令。


切换到具有条件映射的简单音频过滤器图。

ffmpeg -i vid.mp4 -map 0:v -map 0:a? -filter:a:0 "volume=0.5" -shortest out.mp4

相关内容