使用FFMPEG叠加两个视频时如何同时保留两个输入的音频
你当前使用的命令仅处理了两路输入的视频流做画面叠加,没有对音频流做自定义配置,ffmpeg默认仅会选取第一个输入文件的音频流作为输出,因此notif.mov的音频会丢失。
修正后的命令如下,可同时保留两路音频:
ffmpeg -y -i video.mp4 -i notif.mov -filter_complex "[0:v][1:v]overlay=0:0[v];[0:a][1:a]amix=inputs=2:duration=longest[a]" -map "[v]" -map "[a]" output.mp4
参数说明:
- 新增
amix音频混合滤镜,inputs=2指定混合两路输入音频,duration=longest指定输出音频时长和最长的那路输入音频一致,避免某路音频被提前截断;如果希望输出音频时长和主视频video.mp4一致,可将duration=longest改为duration=first - 末尾的
-map参数显式指定输出使用滤镜处理得到的视频流[v]和音频流[a],避免ffmpeg默认流选择逻辑出错
如果需要调整两路音频的音量占比,比如要把提示音notif.mov的音量降到原来的30%避免盖过主视频声音,可使用如下命令:
ffmpeg -y -i video.mp4 -i notif.mov -filter_complex "[0:v][1:v]overlay=0:0[v];[1:a]volume=0.3[a1];[0:a][a1]amix=inputs=2:duration=longest[a]" -map "[v]" -map "[a]" output.mp4
内容的提问来源于stack exchange,提问作者Yogas
相关产品推荐
相关产品推荐

