Audio 混合来自不同来源的音频,无论输入视频是否有声音

Audio 混合来自不同来源的音频,无论输入视频是否有声音,audio,video,ffmpeg,Audio,Video,Ffmpeg,以下代码: ffmpeg -i test.png -t 2 -i a.mp3 -t 4 -i video.mp4 -t 1 -i b.mp3 -filter_complex [1]adelay=2000|2000[s1];[3]adelay=5000|5000[s3];[s1][2][s3]amix=inputs=3[outa];[0][2]overlay[outv

以下代码:

ffmpeg -i test.png            
       -t 2 -i a.mp3          
       -t 4 -i video.mp4      
       -t 1 -i b.mp3          
       -filter_complex [1]adelay=2000|2000[s1];[3]adelay=5000|5000[s3];[s1][2][s3]amix=inputs=3[outa];[0][2]overlay[outv]^
       -map [outa] -map [outv]^
       out.mp4 -y
工作,并混合来自MP3(根据需要时移)和MP4视频的音频

但如果MP4没有音频通道(=没有声音视频),则会失败:

filtergraph描述中的流说明符“”。。。不匹配流

如果视频有音频或没有音频,我希望我的脚本在这两种情况下都能工作。

当且仅当此视频有声音时,如何将
[2]
包含在
amix



注意:一个好的方法是能够加载一个始终带有声音流的MP4:如果视频中有声音,则加载原始声音流;如果MP4中没有声音,则加载静音音频曲目。使用
ffmpeg
中的单个命令是否可以实现此功能?

没有此类内置功能。您必须使用
ffprobe
检查文件是否有音频,然后运行相应的命令。如果您有最喜欢的脚本语言,可以使用If语句自动执行


看。

非常感谢。真的没有办法为纯图像(无声音)视频加载默认的空音频吗?它会非常方便,可以像对待普通视频一样对待它们,不需要
ffprobe
,不需要
if
,不需要脚本等等@Basj不,我不相信。如果您正在寻找一个命令行编辑器,也许您应该研究一下。ffmpeg并不是真正设计用来做这类工作的,尽管它确实是可能的。