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<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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值