2017-05-10 10 views
1

안녕하세요 누군가가 내게 두 RTP 스트림 (동일한 RTSP 세션에서) 사이의 립 싱크를 달성하는 방법을 설명 해주십시오. 나는 ffmpeg AVPacket에 대한 적절한 pts를 계산하려고 노력하고 있지만 뭔가를 놓치고 있으며 이것에 대한 내 머리를 얻을 수 없습니다. 내가 사용할 수있는 다음과 같은 데이터 나에게 있습니다
u64RTCP_NTP_TS - RTCP 보낸 보고서에서 NTP 타임 스탬프를
u32RTCP_TS - RTCP 보낸 보고서에서 타임 스탬프
u32AudioRTP_TS - 오디오 RTP 패킷의 타임 스탬프
u32VideoRTP_TS - 비디오 RTP 패킷의 타임 스탬프RTP 립싱크 동기화

답변을 검색했지만 아직 어떻게 달성해야하는지에 대한 명확한 그림을 얻을 수 없습니다. n 현명한, 나는 아직도없는 것.

답변

0

좋아 나는 그렇게 크레딧이를 이동하고 그것에 대해 그들에게 많은 감사해야 Live555의 코드를 검색하여 답을 찾았습니다. 대답이 파일에 있습니다 RTPSource.cppRTPReceptionStats::noteIncomingPacket

그것은 뒤에 아이디어를 얻을 매우 간단합니다 RTPReceptionStats::noteIncomingSR, 노트의 한 가지입니다 현재 타임 스탬프가 동기화 타임 스탬프로 설정되고, 또한 덮어 쓰기 가능 계산 후 그 RTCP SR 보고서 (물론 그렇게해야합니다).

결과적으로 RTSP 세션의 모든 스트림에 대한 프레젠테이션 타임 스탬프에는 어느 정도 시간이 같아야합니다.