Webrtc视频采集由毫秒转换为rtp的时间戳的转换过程

源文件在:
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(incoming_frame.ntp_time_ms()));

 
  。。。。。。。

时间戳强转处理:

incoming_frame.ntp_time_ms() 的时间戳(int64_t)为: 3781589843340

强转处理: static_cast(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

你可能感兴趣的:(Webrtc视频采集由毫秒转换为rtp的时间戳的转换过程)