一 音频混音的流程
实际上对于音频过滤的流程,和上一节9-2的视频过滤器流程几乎是一样的,只不过音频调用的一两个函数有点区别,并且音频在输出的时候多了一个output,即output + sink,其中output是多出来的。
// 1 添加输入流
// 2 添加输出流(前两步实际就是9-2的第3与4步)
// 3 init之前,要先添加输入源和输出源。(这一步就是9-2的第5-10步,只不过音频有一两个调用的函数与视频不一样)
// 4 开始混音
// 4.1 从文件读取数据
// 4.2 将数据添加到混音器。
// 4.3 将上面的两帧进行混音。
前3步的函数处理,实际就是下图的处理过程。
二 代码
关于代码,因为后续需要改动,赖得每次改完后这里还得改,就不贴自己的出来了。
大家可以参考这篇文章ffmpeg进行混音,将两路音频pcm数据合成一路输出,是一样的,只不过我自己打上了注释。
实际上也可以使用命令实现:
ffmpeg -i buweishui_1m.mp3 -i huiguniang.mp3 -filter_complex amix=inputs=2:duration=longest:dropout_transition=3 out.mp3 -y
三 过滤效果
音频没法看效果,不过按照上面的代码出来后,有一个output.pcm,可以使用audacity软件进行播放。听出发现,最短的音频结束后,最后就剩下长的音频的声音了,不过应该是被过滤器处理过,声音感觉和原来的有点区别,毕竟采样率被改成了96khz。