WebRTC NTP 服务器

WebRTC NTP Server

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

我想将我的客户端与 WebRTC 用于生成 googCaptureStartNtpTimeMs 的相同 NTP 时钟同步。

我一直在谷歌搜索 searching/reading WebRTC 源,但我找不到用于生成此统计信息的 NTP 服务器。我假设所有的 NTP 服务器都不可能同步,所以我需要弄清楚 WebRTC 使用的是哪个 NTP 服务器,这样我就可以将我的客户端与他们的 googCaptureStartNtpTimeMs 时间戳同步。

我看到几个选项:

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

我的问题归结为:

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

您对指标定义的理解有点偏差。 这是曲目开始发送的本地(接收方)时间。

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