添加/叠加两个wav文件

Posted

技术标签:

【中文标题】添加/叠加两个wav文件【英文标题】:Adding / superimposing two wav files 【发布时间】:2019-08-05 03:58:32 【问题描述】:

我有兴趣使用 ffmpeg 或可以在 Mac OS X 的 unix 命令行中使用的类似库添加/叠加两个 wav 文件。请注意,我不是在尝试连接 wav 文件。相反,我试图生成一个与输入 wav 具有相同持续时间的合并 wav 文件,每个文件都具有相同的持续时间。总增益应该是每个样本输入波形的总和。

我尝试了以下方法:

ffmpeg -i wav1.wav -i wav2.wav -filter_complex amix=inputs=2:duration=first:dropout_transition=3 wav_merged.wav

但它生成的 wav 文件的音量不如两个 wav 之和应有的音量。此外,我已经阅读了这篇Mixing two wav files in FFmpeg 的帖子,但我并不想做任何循环,而且这个解决方案有点复杂。

【问题讨论】:

【参考方案1】:

amix 过滤器会重新调整输入的音量,因此要恢复音量,请在之后添加一个过滤器。

ffmpeg -i wav1.wav -i wav2.wav -filter_complex amix=inputs=2:duration=first,volume=2 wav_merged.wav

体积 arg 等于 amix 输入的数量。

(如果您在第一个文件中停止 amix,则不需要 dropout 过渡。)

【讨论】:

“体积 arg 等于 amix 输入的数量。” 哇,这是一个新的!这样就不必使用amix=[...],volumedetect,然后是amix=[...],volume=<x>dB。真的很遗憾,这样的东西没有记录在案。

以上是关于添加/叠加两个wav文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WAV 文件的前后添加静音

在exe中添加wav

Python3+叠加两个音频文件,实现混音

将回声效果添加到 .wav 文件

从资源中添加 .wav 文件(WPF C#)

如何在android中为wav文件添加回声效果?