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