美文网首页
web的时间戳与NTP

web的时间戳与NTP

作者: 大飞_2048 | 来源:发表于2022-01-20 16:59 被阅读0次

    1、滴答滴答滴 :(就是平台相关的计算ns时间,记住是相对时间哦)

      计算开机时间: = 系统滴答数 * 转换系数分子 / 转换系数分母  
    
        [https://blog.csdn.net/yanglei3kyou/article/details/86679177](https://blog.csdn.net/yanglei3kyou/article/details/86679177)   具体平台估计自己实现一套。
    

    2、webrtc 开机计算一次

      当前时间和系统开机时间的偏移值: 
    
    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矫正时间加上啦

    计算一个开机的偏移量,这个相当于一个开机时间点时间 +70 年时间 kNtpJan1970Sec 减去 开机到目前运行毫秒ElaplseTimeval(ms)
    目的获取 一个时间点 的一个状态: 开机那个点NTP时间 - 系统开机时间(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

    转换参考:https://blog.csdn.net/weixin_45873923/article/details/120119622?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.essearch_pc_relevant

    4、使用:

    clock_→TimeInMilliseconds() + NtpOffsetMs() 这个时间就是 据1900到现在的ms时间,转换ntp即可。
    webrtc 代码 音频计算绝对时间有问题,视频是好的。

    image.png

    改为:


    image.png

    所以使用时候:传递都是就是NTP的时间,不用改应该也是可以。


    image.png

    相关文章

      网友评论

          本文标题:web的时间戳与NTP

          本文链接:https://www.haomeiwen.com/subject/jqgjhrtx.html