RTP延时,丢包和抖动计算

延时RTT计算

计算步骤:

  1. Sender 端发送SR,记录当前NTP时间在SR中。
  2. Receiver记录上一个SR中的NTP时间,为LSR。
  3. 记Receiver接收上一个SR到RR发送的时间DLSR
  4. Sender收到RR的时间记为T。

RTT = T- DLSR - LSR

需要注意的是,SR和RR通常不是一一对应的关系。

丢包计算

  • expected: 间隔内最大的SN - 最小SN

  • received: 间隔内收到的所有包数,包括前一个间隔晚到的包,重传的包都算。因此,expected 有可能小于received。

    ​ Loss = received / expected

抖动计算

设接收到两个rtp包的时间间隔,换算成以sample为单位。(Rj - Ri)

两个rtp包中rtp时间戳间隔为:(Sj - Si)

则该次jitter为D(i,j) = (Rj - Ri) - (Sj - Si)

总的jitter值取平均,计算公式为:J(i) = J(i-1) + (|D(i-1,i)| - J(i-1))/16