RTP包头的第2个32Bit即为RTP包的时间戳,Time Stamp ,占32位。
时间戳反映了RTP分组中的数据的第一个字节的采样时刻。在一次会话开始时的时间戳初值也是随机选择的。
即使是没有信号发送时,时间戳的数值也要随时间不断的增加。接收端使用时间戳可准确知道应当在什么时间还原哪一个数据块,从而消除传输中的抖动。
时间戳还可用来使视频应用中声音和图像同步。
在RTP协议中并没有规定时间戳的粒度,这取决于有效载荷的类型。因此RTP的时间戳又称为媒体时间戳,以强调这种时间戳的粒度取决于信号的类型。
例如,对于8kHz采样的话音信号,若每隔20ms构成一个数据块,则一个数据块中包含有160个样本(0.02×8000=160)。因此每发送一个RTP分组,其时间戳的值就增加 160
对于视频数据而言,先要得到码率(每秒钟采样的位数)和 帧率(每秒钟产生多少帧数据),然后就可以计算时间戳的增量,即:时间戳增量=码率/帧率,
如:码率=90000 bit/s, 帧率=25fp/s, 则时间戳增量 ts = 90000 / 25 = 3600, 所以每发送一个 RTP 包就在原来的时间戳上增加 3600