时间戳是什么(时间戳类型是什么)

一、国家技术政策的详细解释
NTP是网络时间协议,是一种用于同步网络中计算机时间的协议 。在Webrtc中可以理解为绝对时间 。NTP是从1900年1月1日起经过的秒数,一般用64位表示 。高32位是1900年1月1日至今以秒为单位的整数部分,低32位是这个时间的小数部分 。
NTP是webrtc中rtt计算的基础 。Last SR (LSR)是前面文章中实时传输控制协议RTCP-SR (III)和RTCP-RR (IV)中压缩的NTP时间戳 。最后一个SR (LSR): 32位.64位NTP时间戳中间32位(一般为了简洁起见,中间32位即可,然后整数和小数分别用16位表示) 。64位ntp时间戳转换为32位ntp时间戳:
图1-64位ntp时间戳转换为32位ntp时间戳
二 。RTP时间戳的详细说明
时间戳单位:时间戳计算的单位不是秒之类的单位,而是用采样频率代替的单位 。这样做的目的是使时间戳单位更准确 。时间戳的增加不是我们通常意义上的一秒/微秒,而是一个采样间隔的增加 。比如说 。不同的样本有不同的采样频率 。比如一般的音频是8K,也就是一秒钟采集8000次数据,也就是每个采样间隔是1/8MS,时间戳加1就是增加采样间隔 。也就是1/8MS之后 。例如,如果另一个代码的采样频率是16K,那么时间戳增加1意味着系统已经过了1/16MS 。也就是说,在同一个系统中,虽然不同的代码使用相同的时钟,但是时间戳的增长率是不同的 。在这个例子中,采样频率为16K的代码的速度是8K的两倍 。
【时间戳是什么(时间戳类型是什么)】RTP包头的第二个32位是RTP包的时间戳,占32位 。时间戳反映了RTP数据包中第一个字节数据的采样时间 。会话开始时时间戳的初始值也是随机选择的 。即使没有发送信号,时间戳的值也会随着时间而增加 。RTP协议中没有规定时间戳的粒度,这取决于有效载荷的类型 。例如,对于8kHz采样的音频数据,如果每20ms形成一个数据块,则一个数据块包含160个样本(0.02×8000=160) 。因此,每次发送RTP数据包时,其时间戳的值都会增加160 。该功能如下所示:
①时间戳是用来反映某个数据块的生成(采集)时间点的值,后面采集的数据块的时间戳必须大于第一个采集的数据块的时间戳 。有了这样的时间戳,就可以标记数据块的序列 。
②利用时间戳,接收方可以准确知道应该在什么时间恢复哪个数据块,从而消除传输中的抖动 。
③时间戳还可以用于视频应用中的声音和图像同步 。
例:如果采样频率是90000Hz,从上面的讨论可以知道,时间戳单位是1/90000,所以我们假设1s被分成90000个时间块 。那么,如果每秒发送25帧,每帧占用多少时间块?当然,90000/25 = 3600 。所以根据“时间戳增量是发送第二个RTP包和发送第一个RTP包之间的时间间隔”的定义,时间戳增量应该是3600 。(在后面的文章中,将介绍时间戳在H264的三种数据包格式中的应用)
请继续我的系列作品!欢迎讨论!!!


    推荐阅读