一. 前言
发送rtp报文端向接受者发送SR报文,主要目的是方便接收方做好音视频同步工作。
二. RTCP SR格式
发送者报告SR,其RTCP类型payload type是200。主要信息共24bytes,也就是6 words,如图2.1
图2.1
2.1 NTP timestamp
NTP timestamp是64位无符号整型,表示该SR报文发送的时刻。
NTP timestamp的含义,
-
高32位: 为代表01.01.1900到现在的秒数;
-
低32位: 单位是微秒数的4294.967296(=232/106)倍;
struct ntptime
{
unsigned int integer; //1900年以来的秒数
unsigned int fraction;//小数部份,单位是微秒数的4294.967296(=232/106)倍
};
timeval到ntp时间戳的转换:
ntptime.integar=timeval.tv_sec+JAN_1970;
ntptime.fraction=timeva.tv_usec* 0x100000000/1000000;
2.2 RTP timestamp
RTP timestamp字段同ntp stamp字段表示的时刻是一样的,但是应用的是rtp时间戳格式。
2.3 packet count and octet count
packet count: 发送方的发送包个数
packet octet: 发送方的发送字节数
周期都是整个会话过程中,所以可能出现数字翻转,接收方需要计算是否出现数字翻转的问题。
三、SR的常用方式
3.1 rtp数据和包数的统计信息
通过packet count和packet octet来获取到发送方对应sr间隔的速率,也能通过这两者得到平均的包大小。
包平均大小=packet octet/packet count.
3.2 音视频同步
rtp时间戳与ntp时间戳的关系,也就是rtp timstamp和ntp timestamp的关系。
这个常用于接收端来进行音视频同步。
作者:IT荒野猎人
来源:CSDN
原文:https://blog.csdn.net/sweibd/article/details/79344509
版权声明:本文为博主原创文章,转载请附上博文链接!
网友评论