Webrtc音频质量在几秒钟后下降

问题描述 投票:1回答:1

我刚开始学习webrtc,但遇到了问题。几秒钟后,音频质量(我不在乎视频)下降。刚开始时质量是完美的,但随后下降。我在一个专用网络中,唯一运行的是树莓派,该树莓派连接了USB声卡,并且正在运行流服务器,还有一个小型交换机和一台PC,我可以在其中收听树莓派的流。我试图修改sdp字符串(通过设置一些参数(例如带宽))没有成功。

有人有想法吗?

非常感谢,大卫。

audio stream webrtc raspberry-pi3
1个回答
0
投票

默认设置将为您提供大约42 kb / s的单声道音频,因为它主要是为语音设计的。这是提高音频质量的方法:

1)在getUserMedia()约束中禁用autoGainControlechoCancellationnoiseSuppression

navigator.mediaDevices.getUserMedia({
  audio: {
    autoGainControl: false,
    channelCount: 2,
    echoCancellation: false,
    latency: 0,
    noiseSuppression: false,
    sampleRate: 48000,
    sampleSize: 16,
    volume: 1.0
  }
});

2)将stereomaxaveragebitrate属性添加到SDP:

let answer = await peer.conn.createAnswer(offerOptions);
answer.sdp = answer.sdp.replace('useinbandfec=1', 'useinbandfec=1; stereo=1; maxaveragebitrate=510000');
await peer.conn.setLocalDescription(answer);

这应该输出一个看起来像这样的字符串:

a=fmtp:111 minptime=10;useinbandfec=1; stereo=1; maxaveragebitrate=510000

这将为立体声提供最大520kb / s的最大比特率,即每个通道260kps。实际比特率取决于您的网络速度和信号强度。

您可以在https://tools.ietf.org/html/rfc7587中了解更多有关其他可用属性的信息>

© www.soinside.com 2019 - 2024. All rights reserved.