live555的RTPSink获取丢包率

当我们用live555用作rtsp client接收rtp包时,有时候想获取当前rtp 通道的丢包率,用来判断网络状况。如何获取当前的丢包率?
可以关注rtcp协议中的2个字段:1. 直接取fraction lost字段,占8bit位,百分百计算方法为raction lost字段除以256得到。
2.取cumulative number of packets lost(累计丢包总数)字段,可以定时取这个值,根据前后2次的差值自己计算丢包率。

关注live555中对应的RTPSink.cpp源码,其中对应的2个成员变量为:fPacketLossRatio和fTotNumPacketsLost,可以搜索一下源码。注意fPacketLossRatio是没有除以256的。
可以从RTPSink的fTransmissionStatsDB成员变量中得到fPacketLossRatio和fTotNumPacketsLost值。

回复

你的邮件地址不会被公开(Your email address will not be published.) Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>