2

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

谢谢你的帮助

4

2 回答 2

8

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

  1. 逐个样本平均数据。

  2. 对数据求和,逐个样本,然后“剪裁”任何超出范围的样本。

第一个选项是在不扭曲信号的情况下唯一正确的方法。

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

有关更多详细信息,包括代码,您可能希望看到更像教程的内容

于 2013-07-13T14:27:39.797 回答
0

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

merged[n] = streama[n] + streamb[n];
于 2013-07-13T00:02:36.587 回答