ffmpeg - 将音乐添加到有声读物中,并循环播放音乐

问题描述 投票:0回答:1

我找到了这些例子,它们都有效。 但是我无法叠加 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 在歌曲结束后停止

我怎样才能让音频一起播放,但最短的音频会循环播放,直到最长的音频播放完毕?

python-3.x ffmpeg
1个回答
0
投票

谢谢你,我偶然发现了解决方案!

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完成。

© www.soinside.com 2019 - 2024. All rights reserved.