我当前正在使用opencv 3 python实现从ipcamera读取mjpeg帧,mjpeg流的分辨率约为1920 x1080。我遇到的问题是:
1)流延迟大约3-4秒,对于我的应用程序来说太高了。
2)一段时间获取图像后,self.video.read()开始失败。
有什么办法可以解决video.read()失败的根本原因吗?以及如何改善流式传输延迟?
我从IP摄像机读取的代码如下:
class VideoCamera(object):
def __init__(self):
self.videoStreamAddress = "rtsp://ipaddress/stream=1"
def __del__(self):
self.video.release()
def get_frame(self):
self.video = cv2.VideoCapture(self.videoStreamAddress, cv2.CAP_FFMPEG)
error = False
success, image = self.video.read()
if success:
ret, current_buffer = cv2.imencode('.png', image)
else:
error = True
print('exception')
return current_buffer, error;