数据包中的 RTP 时间戳与 RTCP SR 数据包
RTP timestamp in data packets vs RTCP SR packets
我正在尝试了解 RTP 数据包中出现的 RTP 时间戳与 RTCP 发送方报告 (SR) 数据包中使用的时间戳之间的区别。
对于数据包中的 RTP 时间戳,我已经确定:
- 它们不是基于挂钟时间,而是代表更多的计数器
- 他们通常在会话开始时随机选择偏移量
- 对于简单的标准音频编解码器,它们通常递增 160(粗略地说 1000 毫秒/20 毫秒 * 160 样本 = 8000 比特率)并且此递增还包括未发送的静默数据包
对于 RTCP 发送方报告数据包中的 RTP 时间戳,我最初认为它们只是数据包当前 RTP 时间戳的快照,结合 NTP 时间戳(通常是挂钟)可用于计算进一步传入的 RTP 数据包的挂钟时间,这也是我从 this analysis on the subject.
中了解到的
然而 RFC 3550 Section 6.4.1 的一句话让我对这个假设感到疑惑:
Note that in most cases this timestamp will not be equal to the RTP timestamp in any adjacent data packet.
这破坏了我的假设,因为我假设 SR 数据包将包含一个 RTP 时间戳,该时间戳在同一源刚刚发送的数据包中找到。不幸的是,接下来的句子对我来说几乎毫无意义(也许这是一个英语语言障碍,但对我来说这听起来像是没有帮助的废话)
Rather, it MUST be
calculated from the corresponding NTP timestamp using the
relationship between the RTP timestamp counter and real time as
maintained by periodically checking the wallclock time at a
sampling instant.
你能为我解释一下如何计算 RTCP SR 数据包中的 RTP 时间戳吗?
发送RTCP报告数据包的过程与发送相关RTP数据包流是分开的。我的意思是它们通常不会同时发送。因此,发送的 RTP 数据包和 RTCP 报告数据包通常包含不同的 RTP 时间戳值。
如您所知,NTP(挂钟)时间和 RTP 时间戳之间存在关系。由于 RTCP 报告数据包同时包含 NTP 时间戳和 RTP 时间戳,因此这些数据包可用于了解这些值在 RTCP 数据包发送方侧的关系。从同一发送者接收到的任何 RTP 数据包都将包含它们自己的(通常是不同的)RTP 时间戳。使用从接收到的 RTCP 数据包中获悉的关系,此 RTP 时间戳可用于计算发送 RTP 数据包时的挂钟时间。
的答案也可能对您有所帮助。
我正在尝试了解 RTP 数据包中出现的 RTP 时间戳与 RTCP 发送方报告 (SR) 数据包中使用的时间戳之间的区别。
对于数据包中的 RTP 时间戳,我已经确定:
- 它们不是基于挂钟时间,而是代表更多的计数器
- 他们通常在会话开始时随机选择偏移量
- 对于简单的标准音频编解码器,它们通常递增 160(粗略地说 1000 毫秒/20 毫秒 * 160 样本 = 8000 比特率)并且此递增还包括未发送的静默数据包
对于 RTCP 发送方报告数据包中的 RTP 时间戳,我最初认为它们只是数据包当前 RTP 时间戳的快照,结合 NTP 时间戳(通常是挂钟)可用于计算进一步传入的 RTP 数据包的挂钟时间,这也是我从 this analysis on the subject.
中了解到的然而 RFC 3550 Section 6.4.1 的一句话让我对这个假设感到疑惑:
Note that in most cases this timestamp will not be equal to the RTP timestamp in any adjacent data packet.
这破坏了我的假设,因为我假设 SR 数据包将包含一个 RTP 时间戳,该时间戳在同一源刚刚发送的数据包中找到。不幸的是,接下来的句子对我来说几乎毫无意义(也许这是一个英语语言障碍,但对我来说这听起来像是没有帮助的废话)
Rather, it MUST be calculated from the corresponding NTP timestamp using the relationship between the RTP timestamp counter and real time as maintained by periodically checking the wallclock time at a sampling instant.
你能为我解释一下如何计算 RTCP SR 数据包中的 RTP 时间戳吗?
发送RTCP报告数据包的过程与发送相关RTP数据包流是分开的。我的意思是它们通常不会同时发送。因此,发送的 RTP 数据包和 RTCP 报告数据包通常包含不同的 RTP 时间戳值。
如您所知,NTP(挂钟)时间和 RTP 时间戳之间存在关系。由于 RTCP 报告数据包同时包含 NTP 时间戳和 RTP 时间戳,因此这些数据包可用于了解这些值在 RTCP 数据包发送方侧的关系。从同一发送者接收到的任何 RTP 数据包都将包含它们自己的(通常是不同的)RTP 时间戳。使用从接收到的 RTCP 数据包中获悉的关系,此 RTP 时间戳可用于计算发送 RTP 数据包时的挂钟时间。