RTP lipsync同步

时间:2017-05-10 10:45:59

标签: ffmpeg rtp

您可以请某人向我解释如何在两个RTP流之间实现嘴唇同步(来自同一个RTSP会话)。我试图为ffmpeg AVPacket计算正确的点数,但我错过了一些东西,我无法理解这一点。 我有以下数据可供我使用:
u64RTCP_NTP_TS - 来自RTCP发件人报告的NTP时间戳

u32RTCP_TS - 来自RTCP发件人报告的时间戳 u32AudioRTP_TS - 来自音频RTP数据包的时间戳 u32VideoRTP_TS - 来自视频RTP数据包的时间戳

我已经找到了答案,但我仍然无法清楚地知道如何以计算方式实现这一目标,我仍然缺少什么。

1 个答案:

答案 0 :(得分:0)

好的我已经通过浏览 Live555 的代码找到了答案,因此积分应该去那里,非常感谢他们那。 答案位于文件RTPSource.cpp RTPReceptionStats::noteIncomingPacketRTPReceptionStats::noteIncomingSR

要理解这个想法非常简单,有一点需要注意的是 在计算之后,当前时间戳被设置为同步时间戳,并且也可以被RTCP SR报告覆盖(并且它应该)。

因此,RTSP会话中任何流的表示时间戳应该或多或少地具有相同的时间。