【问题标题】:WebRtc C++ library peer stats report jitterWebRtc C++ 库对等统计报告抖动
【发布时间】:2021-02-18 20:42:13
【问题描述】:

在这个库中,是否有人知道通过peer_connection_interface 中定义的此方法请求的每个报告的“抖动”值实际上是什么:

virtual void GetStats(RTCStatsCollectorCallback* callback) = 0;

具体来说,我指的是上述回调产生的报告中从webRtc接收到的这个值:

  {
    "type": "inbound-rtp",
    "id": "RTCInboundRTPAudioStream_3482073958",
    "timestamp": 1613571893293000,
    "jitter": 0.004
  },

我无法在任何地方找到一个定义来告诉我——在呼叫的任何时候——这个抖动值是迄今为止的最大抖动、最后一个数据包的抖动,还是整个呼叫过程中的平均抖动......或者完全是其他的东西.

【问题讨论】:

    标签: webrtc


    【解决方案1】:

    该值是来自 RTCP 接收器报告的抖动。

    RFC3550中定义为

    An estimate of the statistical variance of the RTP data packet
    interarrival time, measured in timestamp units and expressed as an
    unsigned integer.  The interarrival jitter J is defined to be the
    mean deviation (smoothed absolute value) of the difference D in
    packet spacing at the receiver compared to the sender for a pair
    of packets.
    

    他们还在A.8 中提供了一个示例实现。

    如果你想看一个实现你看 Pion WebRTC 的实现here我不知道它在 Google 的实现中的什么位置。

    【讨论】:

    • 我不是在寻找抖动的定义,更具体地说,getStats 中的抖动值实际上指的是什么(在 webRtc C++ 库中)。这一个实现,我还是这么想的。
    • 对不起,我不明白。这正是 GetStats 中的抖动。它是从 ReceptionReport 中提取的值。但 RFC 并不是对抖动的一般定义,而是针对 RTP 的特定公式。
    • 因此我认为“remote-inbound-rtp”json 部分中的值“jitter”receieevd 相当于 J(到达间隔抖动)?更重要的是,这是不断更新的,最新收到的电话最准确?我担心它基本上只适用于 last 对数据包 ...
    • 没错!它会不断更新,而不仅仅是最后一个数据包 RTT。
    • 好的,这就是我要找的。谢谢,我会把你的问题标记为正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多