FFmpeg怎么给视频添加背景音乐?给视频添加背景音乐是 FFmpeg 非常经典且实用的功能。根据你的具体需求(是保留原视频人声,还是完全替换掉原声),可以使用不同的命令来实现。
以下是几种简鹿办公最常见的场景及对应的 FFmpeg 命令:
保留原视频声音(人声+背景音乐混合)
如果你希望视频里原本的人声/环境音保留,只是叠加上背景音乐,需要使用混音滤镜 amix。通常我们会把背景音乐的音量调低一些,以免喧宾夺主。
基础混音命令:
ffmpeg -i input.mp4 -i bgm.mp3 -filter_complex "[1:a]volume=0.3[bg];[0:a][bg]amix=inputs=2:duration=first[a]" -map 0:v -map "[a]" -c:v copy -c:a aac output.mp4
替换原视频声音(只要背景音乐)
如果你想把视频原本的声音全部去掉,只保留背景音乐(比如给默片配乐,或者替换掉嘈杂的原声),命令会简单很多。
替换音频命令:
ffmpeg -i input.mp4 -i bgm.mp3 -map 0:v -map 1:a -c:v copy -shortest output.mp4
背景音乐太短,自动循环播放
如果你的视频有 5 分钟,但背景音乐只有 30 秒,你希望音乐能自动循环直到视频结束,可以加上循环参数 -stream_loop -1。
背景音乐循环命令(保留原声):
ffmpeg -i input.mp4 -stream_loop -1 -i bgm.mp3 -filter_complex "[1:a]volume=0.3[bg];[0:a][bg]amix=inputs=2:duration=first[a]" -map 0:v -map "[a]" -c:v copy -c:a aac output.mp4
进阶技巧:让背景音乐淡入淡出
为了让背景音乐的出现和结束不那么突兀,可以加上淡入淡出(afade)效果。
带淡入淡出的混音命令:
ffmpeg -i input.mp4 -i bgm.mp3 -filter_complex "[1:a]afade=t=in:st=0:d=3,afade=t=out:st=57:d=3,volume=0.3[bg];[0:a][bg]amix=inputs=2:duration=first[a]" -map 0:v -map "[a]" -c:v copy output.mp4
如果你的背景音乐格式比较特殊,FFmpeg 可能会报错,建议提前将其转换为通用的 MP3 或 AAC 格式。输出时加上 -c:a aac -b:a 192k 可以保证输出的音频有较好的音质。
你可以根据实际想要达到的效果,直接复制上面的命令并在终端中替换掉 input.mp4(你的视频)、bgm.mp3(你的音乐)和 output.mp4(输出文件名)来使用。