rtcp字段计算方法

RTCP包括五种数据包类型(RFC3550 Page69):

abbrev. name                 value(该值RTCP头格式中的PT类型字段)

   SR      sender report          200

   RR      receiver report        201

   SDES    source description     202

   BYE     goodbye                203

   APP      application-defined    204

 

RTCP报文格式如下(RFC3550 Page35):



下面解释几个难懂的字段

NTP

Ntp把当前时间(自1970.1.1以来的秒数)分为整数部分N和小数部分X

Ntp高位=整数部分N+2208988800UL (其中2208988800UL表示自1900.1.1到1970.1.1的秒数)

Ntp低位=小数部分X* 4294967296 (其中42949672962^32)

 

RTP时间戳

以sample为单位,如音频8000HZ,一个packet为20ms,则两个rtp时间戳的间隔为160.

从rtp时间戳换算成ms的公式为:

rtp时间戳*1000/samplerate。

 

Jitter

设接收到两个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

 

rtcp中jitter值以sample为单位,换算成ms的公式为:jitter*1000/samplerate

LSR

取自上一个接收到的SR包中的ntp值,取值公式为:

ntp_msw&0xffff + ntp_lsw>>16 (取ntp_msw的低16位和ntp_lsw的高16位)

 

DLSR

从接收到上一个SR包到发送此接收报告块之间的延时,以1/65536秒为单位.

 

根据LSR和DLSR计算RTT

设接收到该报告块的时间为A,A的计算公式同NTP,并取msw的低16位和lsw的高16位。

RTT=(A-LSR-DLSR)>>16

该公式计算出的RTT以秒为单位

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值