Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用OpenCV同步多个RTSP流?_Python_C++_Opencv_Rtsp - Fatal编程技术网

Python 使用OpenCV同步多个RTSP流?

Python 使用OpenCV同步多个RTSP流?,python,c++,opencv,rtsp,Python,C++,Opencv,Rtsp,我目前正在使用OpenCV和Python绑定来消化RTSP流。但是,我试图扩展它以捕获多个RTSP流,然后对每个帧执行操作,并对聚合结果执行附加逻辑(并行)。我需要将这些实时流同步到大约1秒的精度。如果我的所有流都是相同的配置文件,那么这就不会有那么大的挑战性。但是,我正在消化的一些流是可变帧速率(VFS),因此FPS可以根据需要从最大FPS下降到最小FPS 带宽可能是恒定的,而其他带宽可能是恒定的。如果有一种方法可以从RTSP实时流中获取嵌入的时间戳,这可以大大简化,RTSP实时流是系统的一部

我目前正在使用OpenCV和Python绑定来消化RTSP流。但是,我试图扩展它以捕获多个RTSP流,然后对每个帧执行操作,并对聚合结果执行附加逻辑(并行)。我需要将这些实时流同步到大约1秒的精度。如果我的所有流都是相同的配置文件,那么这就不会有那么大的挑战性。但是,我正在消化的一些流是可变帧速率(VFS),因此FPS可以根据需要从最大FPS下降到最小FPS 带宽可能是恒定的,而其他带宽可能是恒定的。如果有一种方法可以从RTSP实时流中获取嵌入的时间戳,这可以大大简化,RTSP实时流是系统的一部分。但是,我不相信有一种方法可以使用OpenCV获取这个时间戳


我想知道在使用OpenCV之前是否做过这样的操作?我知道有一些商业广播工具可以做到这一点,但对于我的用例来说,这似乎是不切实际的。也有人推荐,但这对我想做的事情来说可能太多了

查看RTSP摄像机的NTP设置,以获得所有摄像机帧上的同步时间戳。看看这个:

之后,您可以为每个摄影机启动一个线程,并将帧及其时间戳存储在一个小缓冲区中。然后,您可以比较时间戳并从速度更快的摄影机中删除帧,以尽可能匹配帧。 我已经写了一个代码来做这件事,但我现在不能分享它,我会更新答案,如果这在将来成为可能