音频和视频如何在webtc peerconnection中保持同步?我使用的API发布音频和视频(我假设作为一个对等连接)到媒体服务器。音频偶尔会不同步,最长可达200ms。我将此归因于音频和视频是独立流的可能性,这就是为什么同步可能会中断的原因。
除了Sean的回答:
浏览器中的WebRTC播放器对到达的音频和视频样本之间的时间戳差异的容忍度非常低。音频和视频流必须精确对齐(交错),即从网络接收到的最后一个音频样本的时间戳与从网络接收到的最后一个视频帧的时间戳相比,应该是+- 200ms左右。否则,WebRTC播放器将停止使用NTP时间戳,并将单独播放流。这是因为WebRTC播放器试图保持延迟最小。不确定这是WebRTC团队的好决定。如果您的带宽不够,或者如果实时编码器提供的流没有时间戳对齐-那么您将有不同步的播放。在我看来,WebRTC播放器可以有一个设置-是否使用该容差值或始终同步播放,使用NTP时间戳,以延迟为代价。
RTP/RTCP (WebRTC使用)传统上使用RTCP发送者报告。这允许每个SSRC流在NTP时间戳上同步。浏览器现在也在使用它们,所以应该没问题。
你正在做任何协议桥接或任何可能只有RTP的事情吗?您使用的是什么媒体服务器?