浏览器中音频 MediaStream 的当前带宽或质量是多少? (WebRTC)
What is the current bandwidth or quality of an audio MediaStream in a browser? (WebRTC)
我目前正在构建 WebRTC 应用程序并希望收集一些统计数据以便对我的解决方案进行评级。我感兴趣的一个指标是接收到的音频(和视频)流的当前带宽。我能够在 chrome://webrtc-internals/
(OPUS) 找到当前使用的编解码器,但我无法找到有关流的当前 quality/bandwidth 的数字(例如 128kbit/s)。
我已经在 RTCPeerConnection 对象中搜索了这样的数字,但没有找到。 XXX.RTCconnection.getRemoteStreams()[0].getAudioTracks()[0].getConstraints()
仅 returns
{
deviceId: {},
echoCancellation: {},
facingMode: {},
frameRate: {},
height: {},
mediaSource: "camera",
mozAutoGainControl: {},
mozNoiseSuppression: {},
viewportHeight: {},
viewportOffsetX: {},
...
}
仅包含有关视频流的信息(有趣的是我请求了音频流),没有带宽详细信息。上例中的数组没有其他流。
您知道我需要在哪里查找 MediaStream 的当前 quality/bandwidth 吗?
您需要使用 RTCPeerConnection.getStats() API,搜索 bytesReceived and then calculate the bitrate as the difference of bytesReceived between two calls. This 显示完整示例。
如果将 SDP 设置为 stereo
并增加 maxaveragebitrate
:
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);
然后我得到立体声的潜在最大比特率 520kb/s,即每个通道 260kps。实际比特率取决于您的网络速度和信号强度:)
我目前正在构建 WebRTC 应用程序并希望收集一些统计数据以便对我的解决方案进行评级。我感兴趣的一个指标是接收到的音频(和视频)流的当前带宽。我能够在 chrome://webrtc-internals/
(OPUS) 找到当前使用的编解码器,但我无法找到有关流的当前 quality/bandwidth 的数字(例如 128kbit/s)。
我已经在 RTCPeerConnection 对象中搜索了这样的数字,但没有找到。 XXX.RTCconnection.getRemoteStreams()[0].getAudioTracks()[0].getConstraints()
仅 returns
{
deviceId: {},
echoCancellation: {},
facingMode: {},
frameRate: {},
height: {},
mediaSource: "camera",
mozAutoGainControl: {},
mozNoiseSuppression: {},
viewportHeight: {},
viewportOffsetX: {},
...
}
仅包含有关视频流的信息(有趣的是我请求了音频流),没有带宽详细信息。上例中的数组没有其他流。 您知道我需要在哪里查找 MediaStream 的当前 quality/bandwidth 吗?
您需要使用 RTCPeerConnection.getStats() API,搜索 bytesReceived and then calculate the bitrate as the difference of bytesReceived between two calls. This 显示完整示例。
如果将 SDP 设置为 stereo
并增加 maxaveragebitrate
:
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);
然后我得到立体声的潜在最大比特率 520kb/s,即每个通道 260kps。实际比特率取决于您的网络速度和信号强度:)