将数据包丢失定义为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

嘿,伊戈尔-谢谢你的回答。目前,我们只关注数据包丢失。如果是这样的话,我会用我认为正确的答案更新我的答案。