2013-07-12 160 views
1

我正在使用windows mmSystem.h生成几个pcm文件。那么他们不是文件,真的是字节数组。我想要做的是合并或复用这两个流,以便在将声音导出到wav文件之前重叠声音。搜索每个人都提到使用ffmpeg的stackoverflow,但没有人有任何示例代码,他们只是使用带有几个标志的fmpeg.exe。我更喜欢一个解决方案,它指出我可以使用除windows和ffmpeg中提供的其他任何第三方库或sdk。混音两个pcm流的音频

感谢所有帮助

+0

你的意思是你有两个单声道流,你想混合它们作为立体声?或者您想用新样本覆盖现有频道? –

+0

我想覆盖它们。 – user1881587

回答

4

如果你有一个字节数组,你必须首先转换那些字节数组转换为正确的采样格式,如16位整数(简写)。完成后,您可以选择以下几种方法:

  1. 数据的平均值,按样本分类。

  2. 总结数据,逐个样本,然后“剪切”超出范围的任何样本。

第一个选项是唯一正确的方法来做到这一点,而不会扭曲你的信号。

最后,您可能需要转换回字节以保存到文件。

欲了解更多详情,包括代码,你可能想看到something more like a tutorial

+1

我想投票赞成,但我的代表不够高,所以我希望谢谢。 – user1881587

0

假设两个流具有相同的采样率和比特/采样,你可以再补充样本:

merged[n] = streama[n] + streamb[n];