混合两个或多个 G.711 原始流

Mixing two or more G.711 raw streams

我正在尝试对多个 G.711 原始 RTP 流进行 real-time on-the-fly 混合(每个 RTP 数据包包含 160 字节的原始 G.711 A/U 有效载荷)和流都是 time-synchronized.

我试过对所有流中的每个字节取平均值并构建一个相同大小 (160) 的新数组,但它的值是原始流的平均值,但是在播放音频时,我发现太吵了

我也尝试了最大和最小值,混合输出更好,但仍然有噪音..

混合 2 个或更多 G.711 原始流的正确方法是什么?

如果我在一个会议中有 3 部电话,每个分组间隔(比如 20 毫秒),我需要将来自两部电话的两个 RTP 数据包混合成一个 RTP 数据包并将其流式传输到第三部,依此类推。

BR, 护城河

我已经找到了解决方案。我必须将流解码为 PCM 16 位样本,然后执行正常平均然后重新编码结果