我目前正在使用OpenCV来使用OpenCV和Python绑定来消化RTSP流。但是,我正在尝试扩展它以捕获多个RTSP流,然后对每个帧执行操作并在聚合结果上执行其他逻辑(并行)。我需要将这些实时流同步到约1秒的精度。如果我的所有流都是相同的配置文件,这将没有那么具有挑战性。但是,我正在消化的一些流是可变帧速率(VFS),因此FPS可以从最大FPS下降到最小FPS,具体取决于 带宽,而其他可能是不变的。如果有办法从RTSP直播流中获取嵌入时间戳,这可以大大简化。这是protocol的一部分。但是,我不相信有一种方法可以使用OpenCV获取此时间戳....
我想知道在使用OpenCV之前是否已经完成了这项工作?我知道有商业广播工具可以做到这一点,但这对我的用例似乎不切实际和过度杀戮。有人还建议http://www.ros.org/about-ros/,但对我想做的事情来说可能太多了......
答案 0 :(得分:0)
查看RTSP摄像机的NTP设置,以获取所有摄像机的帧上的同步时间戳。检查一下:
https://ipcamtalk.com/threads/network-time-protocol-ntp.1287/
此后,您可以为每个摄像机启动线程,并将帧及其时间戳存储在一个小的缓冲区中。然后,您可以比较时间戳并从速度更快的相机中删除帧,以尽可能匹配这些帧。 我已经编写了一个代码来执行此操作,但目前无法共享,如果将来有可能,我将更新答案。