正在RTP/RTP中检索时间戳
Retrieving timestamp in RTP/RTSP
我使用libav/ffmpeg连接到IP摄像机。我确实需要从帧中提取绝对时间戳,而不是pts/dts。我怎么能有这个值?
使用Wireshark,我可以从相机(轴P1355)看到以下响应:
RTP信息:url=rtsp://xxx.dyndns.org:4378/axis-media/media.amp/trackID=1?fps=4&分辨率=1280x720&压缩=60;seq=32446;rtptime=3287715479\r\n
RTP数据包只包含相对时间戳。绝对时间戳被包括在作为RTCP的一部分的发送者报告(SR)中。
一些未完全实现的IP摄像机不发送SR数据包,那么你就倒霉了。我会给live555的testRTSPClient(http://www.live555.com/liveMedia/#testProgs)一次尝试,让您可以访问绝对时间戳(如果传输的话)。
"afterGettingFrame"函数会为您提供一个绝对的时间戳,使用RTPSource::hasBeenSynchronizedUsingRTCP,您可以对其进行验证。
最后我解决了这个问题。
我必须从上下文中捕获RTSPState,以便获得RTSPStream数组和视频数组,然后获得包含时间戳的RTPDemuxContext。
相关文章:
- C++:floor unix时间戳到UTC月份
- 如何在c++中录制具有精确帧时间戳的视频
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 在多个时间戳处执行函数
- 以天C++为单位的两个时间戳之间的差异
- 获取 QInputEvent 在 Qt 4.8 中被放入 QEventLoop 队列时的时间戳
- 在 C++ 中为文件名添加时间戳
- 如何从远程 SFTP 服务器获取 HH-MM-SS 时间戳格式的文件列表
- 如何将消息时间戳写入日志文件?
- 将时间戳打印到流的最简单方法
- 读取悖论时间戳字段
- C++程序中多个位置的时间 (0) 时间戳
- 在 c++ 中获取 X 毫秒前的时间戳
- 将 unix 时间戳转换为人类可读的日期
- Microsoft NTLM (v2) 中的时间戳使用
- C++中上周一的时间戳
- 捕获 RTP 时间戳
- 正在RTP/RTP中检索时间戳
- RTP AAC时间戳问题