我的OpenCV是4.5.4版本,用gstreamer lib编译。
在我的情况下,我正在获取流媒体视频的帧。流媒体视频时间和获取视频时间(cv2.VideoCapture)之间存在差距。如果流媒体下一个视频,cv2.VideoCapture不会获取下一个流媒体视频的帧,因为opencv没有到达最后一帧。
我该如何解决这个问题?(当我使用opencv 3.4.0版本时,我没有遇到这个问题。)
我的代码(不使用多进程/线程)
def connect_streaming(rtsp_url):
while True:
video_cap = cv2.VideoCapture(rtsp_url, cv2.CAP_GSTREAMER)
while video_cap.isOpened():
ret, frame = video_cap.read()
if not ret:
video_cap.release()
break
...
1条答案
按热度按时间nfs0ujit1#
我解决了这个问题。我认为这是最好的方式来使用线程获取帧的流视频。
我希望很多人,面对同样的问题,解决问题后,阅读它。