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

标签 c# audio codec

我正在尝试对几个G.711原始RTP流进行实时实时混合(每个RTP数据包都包含160字节的原始G.711 A / U有效负载),并且所有流都进行了时间同步。

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

我也尝试了最大和最小,混合输出更好,但仍然很吵..

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

如果我在 session 中有3个电话,每个打包间隔(例如20毫秒),我需要将来自两个电话的两个RTP数据包混合为一个RTP数据包,然后将其流式传输到第三个数据包,依此类推。

BR
护城河

最佳答案

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

关于c# - 混合两个或多个G.711原始流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51171110/

相关文章:

java - 为每个音频文件调用可运行线程的更简洁方法

ffmpeg - 在 h265 中关闭帧内预测

c++ - 有谁知道免费的 H263 Plus 解码器编解码器

c# - C# 中的泛型列表和静态变量行为

c# - 如何在二进制文件上将 AssemblyVersion 标记为 FileVersion

c# - 使用 Entity Framework 和存储过程进行并发检查

java - 将AWS Polly提供的ogg流保存到wav文件中

c# - 生成贝尔数算法

audio - 如何将声音输入与预先确定的声音进行比较?

cocoa - 了解 Quicktime 电影的编解码器