我找到了这些例子,它们都有效。 但是我无法叠加 2 个音频并循环播放最短的音频,直到最长的音频完成为止。
音频与视频长度相匹配
ffmpeg -i VIDEO1.mp4 -stream_loop -1 -i bgmusic.mp3 -shortest -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4
循环音频
ffmpeg -i audio.mp3 -filter_complex "aloop=loop=-1:size=10" output_loop.mp3
叠加 2 个音频
ffmpeg -y -i bgmusic.mp3 -i audio.mp3 -filter_complex "[0:0]volume=1.0[a];[1:0]volume=1.0[b];[a][b]amix=inputs=2:duration=longest" -c:a libmp3lame output.mp3
这是我的尝试。
ffmpeg -y -i audio.mp3 -stream_loop -1 -i bgmusic.mp3 -shortest -filter_complex "[0:0]volume=1.0[a];[1:0]volume=1.0[b];[a][b]amix=inputs=2:duration=longest" -c:a libmp3lame output.mp3
但是这个例子永远循环 bgmusic.mp3 ...而 audio.mp3 在歌曲结束后停止
我怎样才能让音频一起播放,但最短的音频会循环播放,直到最长的音频播放完毕?
谢谢你,我偶然发现了解决方案!
ffmpeg -y -i audio.mp3 -stream_loop -1 -i bgmusic.mp3 -filter_complex "[0:0]volume=1.0[a];[1:0]volume=1.0[b];[a][b]amix=inputs=2:duration=shortest" -c:a libmp3lame output.mp3
这似乎有效,它能够播放audio.mp3的整个持续时间...并循环bgmusic.mp3...直到audio.mp3完成。