您可以请某人向我解释如何在两个RTP流之间实现嘴唇同步(来自同一个RTSP会话)。我试图为ffmpeg AVPacket计算正确的点数,但我错过了一些东西,我无法理解这一点。
我有以下数据可供我使用:
u64RTCP_NTP_TS - 来自RTCP发件人报告的NTP时间戳
u32RTCP_TS - 来自RTCP发件人报告的时间戳
u32AudioRTP_TS - 来自音频RTP数据包的时间戳
u32VideoRTP_TS - 来自视频RTP数据包的时间戳
我已经找到了答案,但我仍然无法清楚地知道如何以计算方式实现这一目标,我仍然缺少什么。
答案 0 :(得分:0)
好的我已经通过浏览 Live555 的代码找到了答案,因此积分应该去那里,非常感谢他们那。
答案位于文件RTPSource.cpp
RTPReceptionStats::noteIncomingPacket
和RTPReceptionStats::noteIncomingSR
要理解这个想法非常简单,有一点需要注意的是 在计算之后,当前时间戳被设置为同步时间戳,并且也可以被RTCP SR报告覆盖(并且它应该)。
因此,RTSP会话中任何流的表示时间戳应该或多或少地具有相同的时间。