rtp中的媒体如何同步?
how media in rtp is synchronized?
我试图了解 rtp 中的时间戳以及一些时间同步协议(如 ntp)如何同步媒体流。根据我的理解,我画了这个。如有不妥请指正
这些设备中的时钟是同步的,并且创建的 rtp 数据包的时间戳为 10。但由于网络传输延迟,数据包到达 11,但时间戳仍为 10。如何在 rtp 中正确处理这种情况同步还是正在处理这种情况的应用程序?
处理传入 (UDP) RTP 流时,接收到的 RTP 数据包将在处理之前进行缓冲。这是为了允许抖动等。此缓冲期通常在 50 到 300 毫秒之间,具体取决于所使用的网络拓扑。
如果缓冲时间在运行时可调,您可以使用这个缓冲时间来同步两个流。当两个流不同步时,调整其中一个流的缓冲时间(延迟),直到它们出现同步。
如果您不想或不能通过耳朵调整缓冲时间,您应该使用 RTCP (RFC 3550) 来同步两个流。您不能只使用 RTP 数据包中的时间戳值。
我认为 this website 关于 RTP 的常见问题解答会有所帮助。
我试图了解 rtp 中的时间戳以及一些时间同步协议(如 ntp)如何同步媒体流。根据我的理解,我画了这个。如有不妥请指正
这些设备中的时钟是同步的,并且创建的 rtp 数据包的时间戳为 10。但由于网络传输延迟,数据包到达 11,但时间戳仍为 10。如何在 rtp 中正确处理这种情况同步还是正在处理这种情况的应用程序?
处理传入 (UDP) RTP 流时,接收到的 RTP 数据包将在处理之前进行缓冲。这是为了允许抖动等。此缓冲期通常在 50 到 300 毫秒之间,具体取决于所使用的网络拓扑。
如果缓冲时间在运行时可调,您可以使用这个缓冲时间来同步两个流。当两个流不同步时,调整其中一个流的缓冲时间(延迟),直到它们出现同步。
如果您不想或不能通过耳朵调整缓冲时间,您应该使用 RTCP (RFC 3550) 来同步两个流。您不能只使用 RTP 数据包中的时间戳值。
我认为 this website 关于 RTP 的常见问题解答会有所帮助。