1秀又、滴答滴答滴 :(就是平臺相關(guān)的計算ns時間,記住是相對時間哦)
計算開機時間: = 系統(tǒng)滴答數(shù) * 轉(zhuǎn)換系數(shù)分子 / 轉(zhuǎn)換系數(shù)分母
[https://blog.csdn.net/yanglei3kyou/article/details/86679177](https://blog.csdn.net/yanglei3kyou/article/details/86679177) 具體平臺估計自己實現(xiàn)一套猎荠。
2伊磺、webrtc 開機計算一次
當(dāng)前時間和系統(tǒng)開機時間的偏移值:
int64_t NtpOffsetMsCalledOnce() {
constexpr int64_t kNtpJan1970Sec = 2208988800;
int64_t clock_time = rtc::TimeMillis();
int64_t utc_time = rtc::TimeUTCMillis();
return utc_time - clock_time + kNtpJan1970Sec * rtc::kNumMillisecsPerSec;
}
NTP矯正時間加上啦
計算一個開機的偏移量,這個相當(dāng)于一個開機時間點時間 +70 年時間 kNtpJan1970Sec 減去 開機到目前運行毫秒ElaplseTimeval(ms)
目的獲取 一個時間點 的一個狀態(tài): 開機那個點NTP時間 - 系統(tǒng)開機時間(ms)
int64_t NtpOffsetMs() {
// Calculate the offset once.
static int64_t ntp_offset_ms = NtpOffsetMsCalledOnce();
return ntp_offset_ms;
}
計算一次就好酒奶,因為這個開機點以后要用蚁孔。
3奶赔、什么是NTP時間: 我們理解沒有錯。就是1900 以后的時間杠氢,64位標識的時間站刑。
(1)高32位是秒,
(2)低32位是小于1s的值(放大精度方式存)
image.png
4鼻百、使用:
clock_→TimeInMilliseconds() + NtpOffsetMs() 這個時間就是 據(jù)1900到現(xiàn)在的ms時間绞旅,轉(zhuǎn)換ntp即可。
webrtc 代碼 音頻計算絕對時間有問題温艇,視頻是好的因悲。
image.png
改為:
image.png
所以使用時候:傳遞都是就是NTP的時間,不用改應(yīng)該也是可以中贝。
image.png