webrtc笔记:NTP网络时间

最近在看webrtc中的video jitter buffer,里面有部分对时间单位的统一的设计.

以linux为例,系统函数获取的时间有2种:

1.从系统开始运行(可以理解到开机)到现在所经历的时间,时间精度到纳秒.

struct timespec ts;//包含有秒和纳秒的结构体
clock_gettime(CLOCK_MONOTONIC,&ts); //从系统开始运行到现在的时间

2.获取当前电脑距离格林尼治时间的相对时间,时间单位精确到微秒.

比如我们当前电脑的时间就是:
在这里插入图片描述

在linux下是通过系统函数 ,来获取相对时间的.

struct timeval tv;
gettimeofday(&tv,NULL);

(如果我们手动调整了我们电脑的时间,那么对应的我们获取到的时间也就会发生改变!)

在网络中,时间是没有统一的标准的,比如时区不一样,北京时间21:58对应的是美国时间08:58,就算是同一个时区的,电脑上的时间显示也会不一样,有的是人为调整了时间.

接下来,我们来研究一下:webrtc是如何统一网络时间的!!!

在webrtc中,我们是用 TickTime类来表示当前时间,该类的定义位于webrtc/system_wrappers/interface/tick_util.h头文件中.

采用的是系统已经运行的时间,时间单位精确到纳秒.

你可能感兴趣的:(webrtc代码研究)