首页 > 解决方案 > WebRTC NTP 服务器

问题描述

WebRTC 在 WebRTC stats 的 ssrc recv 报告中有一个实验性googCaptureStartNtpTimeMs统计。我相信它被定义为流在发送方开始的 NTP 时间,以毫秒为单位。

我想将我的客户端与 WebRTC 用来生成它的 NTP 时钟同步googCaptureStartNtpTimeMs

我一直在谷歌搜索和搜索/阅读 WebRTC 源,但找不到用于生成此统计信息的 NTP 服务器。我假设所有 NTP 服务器不可能同步,所以我需要准确地确定 WebRTC 正在使用哪个 NTP 服务器,以便我可以将我的客户端与其googCaptureStartNtpTimeMs时间戳同步。

我看到几个选项:

在 WebRTC 源中搜索这些不会产生任何结果。pool.ntp.org似乎很有希望,因为它将有助于找到一个靠近发出请求的 NTP 服务器(低延迟)。但是,如果 NTP 池与 NTP WebRTC 不同步,除非我能得到 NTP 池和 NTP WebRTC 之间的偏移量,否则它对我来说毫无用处。

我的问题归结为:

标签: webrtcntp

解决方案


googCaptureStartNtpTimeMs与NTP服务器无关。它是在当地时钟。名称中的“Ntp”来自 RTCP SenderReport 数据包中传递时间的格式,并不意味着某些 NTP 服务器同步正在进行。

您对度量定义的理解有点偏离。这是曲目开始发送的本地(接收者)时间。

时钟同步由 WebRTC 在内部使用 RTT 估计和 RTCP SenderReport 数据包完成。请注意,要进行 RTT 估计,对等方必须发送某些内容,并且需要一些时间(音轨最多 20 秒,基于 RTCP SR 发送周期)。在所有估计值可用之前,该指标将报告 -1。


推荐阅读