将数据包丢失定义为WebRTC中发送/接收的数据包的百分比
我正在查看两个音频频道:将数据包丢失定义为WebRTC中发送/接收的数据包的百分比,webrtc,Webrtc,我正在查看两个音频频道:SendAudio和ReceiveAudio来自WebRTC呼叫。对于每个指标,我们分别可以看到以下指标: AudioSend ---------- packetsLost packetsSent AudioReceive ---------- packetsLost packetsReceived 我的问题是,什么是正确的方程式来计算每个节点的数据包丢失?“丢失”的数据包是否包含在数据包Sent/packetsReceived中 例如,两个WebRTC事件的数据包丢
SendAudio和ReceiveAudio
来自WebRTC呼叫。对于每个指标,我们分别可以看到以下指标:
AudioSend
----------
packetsLost
packetsSent
AudioReceive
----------
packetsLost
packetsReceived
我的问题是,什么是正确的方程式来计算每个节点的数据包丢失?“丢失”的数据包是否包含在数据包Sent/packetsReceived中
例如,两个WebRTC事件的数据包丢失百分比可定义为:
AudioSend Packet Loss as a Percent
currentEvent.packetsLost - previousEvent.packetsLost
--------------------------------------------------------------------------------------------------------------
(currentEvent.packetsSent + currentEvent.packetsLost) - (previousEvent.packetsSent - previousEvent.packetsLost)
注意:我们需要两个事件,因为packetsLost和packetsSent都是运行总和(因此我们需要两个事件之间的增量)
如果丢失的数据包未包含在packetsSent
值中,则会出现这种情况(即,必须将它们相加,以计算假定发送的数据包总数)
根据Igor的输入:
AudioSend数据包丢失百分比
packetsLost
----------- * 100
packetsSent
packetsLost
----------------------------- * 100
packetsReceived + packetsLost
AudioReceived数据包丢失百分比
packetsLost
----------- * 100
packetsSent
packetsLost
----------------------------- * 100
packetsReceived + packetsLost
PacketsLost
不包括在收到的packets
中,而是包括在packetsSent
中PacketsSent=packetsReceived+packetsLost+packets重复
<代码>重复的数据包将被接收方丢弃。所以我假设你想根据数据包丢失来计算音频质量,我认为你应该使用比特率作为音频质量
const lastTotalBytesReceived = lastScanResult.totalBytes;
const currentTotalBytesReceived = currentScanResult.bytesReceived;
lastScanResult.totalBytes = currentTotalBytesReceived;
const receivedBitsDelta = 8 * (currentTotalBytesReceived - lastTotalBytesReceived);
const passedSeconds = (currentTime - lastScanResult.time) / 1000.0;
lastScanResult.quality = Math.round(Math.min(100, receivedBitsDelta / expectedAudioBitRate * 100));
lastScanResult.time = currentTime;
OPUS的预期音频广播将为35000,其他编解码器为70000嘿,伊戈尔-谢谢你的回答。目前,我们只关注数据包丢失。如果是这样的话,我会用我认为正确的答案更新我的答案。