源文件在: src/video/video_stream_encoder.cc
函数 void VideoStreamEncoder::OnFrame(const VideoFrame& video_frame) { 。。。。。。 // Convert NTP time, in ms, to RTP timestamp. const int kMsToRtpTimestamp = 90; incoming_frame.set_timestamp( kMsToRtpTimestamp * static_cast<uint32_t>(incoming_frame.ntp_time_ms()));
。。。。。。。 }
时间戳强转处理:
incoming_frame.ntp_time_ms() 的时间戳(int64_t)为: 3781589843340
强转处理: static_cast<uint32_t>(incoming_frame.ntp_time_ms()) int64_t值:(共44位) 10进制:3781589843340 16进制:3707851BD8C
转换为32时(16进制需要丢掉前面的3位,剩余的值为:7851BD8C) 16进制:7851BD8C 10进制:2018622860
转换为90000HZ的rtp传输时间戳 10进制:2018622860 2018622860*90 = 181676057400
10进制:181676057400 16进制:2A4CBCA338
转换为uint32_t的时间戳: 保留32位值: 16进制:4CBCA338 10进制:1287430968
由毫秒转换为rtp时间戳经过了两次时间转换,最后的时间戳为:1287430968