ffmpeg-多个音频文件需要混音



ffmpeg -i 0-1.m4a -i 1-2.m4a  
-filter_complex "[1]adelay=delays=500|500[aud1];[0][aud1]amix=inputs=2" 
-y out.aac

有多个音频文件需要混音,但是每个音频文件需要在指定的时间加入混音流程,如A、B、C三个文件,B、C分别在第5秒、第15秒混在输出文件中。

1、命令
结合adelay及amix filter完成

ffmpeg -i fangtang.wav -i  lx.wav 
-filter_complex "[1]adelay=delays=5000|5000[aud1];[0][aud1]amix=inputs=2" 
-y out.aac

第二个文件 lx.wav的两个通道延迟5000ms加入混音流程。
若是最新版本的ffmpeg[Version 4.4]可以用以下命令代替,效果是一样的。

ffmpeg -i fangtang.wav -i  lx.wav 
-filter_complex "[1]adelay=delays=5S:all=1[aud1];[0][aud1]amix=inputs=2" 
-y out.aac

多了all参数指定所有通道统一处理

2、 参考
1、ffmpeg在特定的时间混合一个或多个音频
2、 ffmpeg 合并多个音频的问题
3、官方adealy
原文链接:https://blog.csdn.net/FPGATOM/article/details/120543189

ffmpeg在特定的时间混合一个或多个音频
时间:2020-10-13 08:24:19 +0800 CST 浏览:834
使用FFmpeg中的adelay和amix滤镜给音频做混音
在30秒后混合1个音频
ffmpeg -i 1-1.mp3 -i 2.mp3 
-filter_complex "[1]adelay=delays=30s:all=1[aud1];[0][aud1]amix=inputs=2" 
-vsync 2 -y 3.mp3

在30秒后混合2个音频
ffmpeg -i 1-1.mp3 -i 2.mp3 -i 3.mp3 
-filter_complex "[1]adelay=delays=30s:all=1[aud1];[2]adelay=delays=30s:all=1[aud2];[0][aud1][aud2]amix=inputs=3" 
-vsync 2 -y 4.mp3

混合多个参照混合2个的命令修改下即可

阅读量: 207
发布于:
修改于: