源文件在:
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