Reading RTCP packets from an IP camera using FFMPE

2019-01-25 01:10发布

I am using the ffmpeg C library. I need to intercept RTCP packets from the camera in order to get the timestamp from the Sender Report. Is there any method or structure in the ffmpeg that gives me this information? I am completely stuck but I am not able to solve that problem.

Any help will be appreciated. Thanks in advance,

标签: c ffmpeg rtsp rtp
1条回答
smile是对你的礼貌
2楼-- · 2019-01-25 01:13

Finally I had to hack into the ffmpeg library like this:

        // Patch for retrieving inner ffmpeg private data
        RTSPState* rtsp_state = (RTSPState*) context->priv_data;
        RTSPStream* rtsp_stream = rtsp_state->rtsp_streams[0];
        RTPDemuxContext* rtp_demux_context = (RTPDemuxContext*) rtsp_stream->transport_priv;

        // Decode the NTP time from the 64 bit structure
        uint64_t ntp_time = rtp_demux_context->last_rtcp_reception_time;
        uint32_t seconds = (uint32_t) ((ntp_time >> 32) & 0xffffffff);
        uint32_t fraction  = (uint32_t) (ntp_time & 0xffffffff);
        double useconds = ((double) fraction / 0xffffffff);

And I finally get timestamp information.

查看更多
登录 后发表回答