【问题标题】:How does audio and video in a webrtc peerconnection stay in sync?webrtc peerconnection 中的音频和视频如何保持同步?
【发布时间】:2021-03-04 16:45:15
【问题描述】:

webrtc peerconnection 中的音频和视频如何保持同步?我正在使用将音频和视频(我假设为一个对等连接)发布到媒体服务器的 API。音频有时会不同步长达 200 毫秒。我将此归因于音频和视频是单独的流的可能性,这解释了为什么会出现同步。

【问题讨论】:

    标签: webrtc rtcpeerconnection


    【解决方案1】:

    RTP/RTCP(WebRTC 使用)传统上使用RTCP Sender Report。这允许每个 SSRC 流在 NTP 时间戳上同步。浏览器今天确实使用它们,所以应该可以工作。

    您是否正在做任何协议桥接或任何可能只是 RTP 的事情?您使用的是什么媒体服务器?

    【讨论】:

    • 无协议桥接。我正在使用 LiveSwitch。当我的程序变黑并返回程序时,我正在发布视频并获得不同步。是编码器问题,就是想知道为什么音视频会不同步。
    【解决方案2】:

    除了肖恩的回答:

    浏览器中的 WebRTC 播放器对到达的音频和视频样本之间的时间戳差异的容忍度非常低。您的音频和视频流必须精确对齐(交错),即从网络接收到的最后一个音频样本的时间戳,与从网络接收到的最后一个视频帧的时间戳相比,应该是 +- 200 毫秒左右。否则 WebRTC 播放器将停止使用 NTP 时间戳并单独播放流。这是因为 WebRTC 播放器试图将延迟保持在最低限度。不确定 WebRTC 团队的决定是否正确。如果您的带宽不足,或者实时编码器提供的流未与时间戳对齐 - 那么您将无法同步播放。在我看来,WebRTC 播放器可以有一个设置 - 是使用该容差值还是始终同步播放,使用 NTP 时间戳,但以延迟为代价。

    【讨论】:

      猜你喜欢
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 2014-06-20
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多