我正在使用 ffmpeg C 库。我需要拦截来自摄像头的 RTCP 数据包,以便从发送者报告中获取时间戳。 ffmpeg 中是否有任何方法或结构可以为我提供此信息?我完全陷入困境,但我无法解决这个问题。
任何帮助将不胜感激。提前致谢,
最后我不得不像这样侵入 ffmpeg 库:
// 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);
我终于得到了时间戳信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)