音频混合两个pcm流

时间:2013-07-12 21:54:26

标签: winapi audio ffmpeg pcm

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

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

如果您有字节数组,则必须先将这些字节数组转换为正确的样本格式,例如16位整数(短)。完成后,您可以选择一些选项,包括:

  1. 逐个样本地平均数据。

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

  3. 第一个选项是唯一正确的方法,可以在不扭曲信号的情况下进行。

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

    有关详细信息(包括代码),您可能需要查看something more like a tutorial

答案 1 :(得分:0)

假设两个流具有相同的采样率和位/样本,您只需添加样本:

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