RTC音视频同步场景:

音视频不在同一个时间点开始采集,如在视频先采集,音频后采集的情况下。我们不能贸然的认为音频起点来对齐视频起点,这种情况下,如何对音视频进行处理,就涉及到了音视频同步的知识。

解决思路:

通过现有条件,我们拥有RTP和SR,那么是不是可以用这两个东西做文章呢?答案是,当然可以

首先关注几个关键词:
capture time,render time,rtp的 timestamp,sr,计算ntp

相关内容可以参考另一篇文章内容详解

我们把重点聚焦在EncodedImageCallback::Result RtpVideoSender::OnEncodedImage

  // 这段代码是重头戏,设置rtcp timestamp和ntp的对应关系,用于生成sr
  if (!rtp_streams_[stream_index].rtp_rtcp->OnSendingRtpFrame(
          encoded_image.Timestamp(), encoded_image.capture_time_ms_,
          rtp_config_.payload_type,
          encoded_image._frameType == Vid
12-22 15:55