Я использую класс для доступа к моей IP-камере.
К сожалению, с нерегулярными интервалами происходит, что self.capture.isOpened ()
= Возвращает False. Кажется, что больше нет фрейма или соединения?
Я снова попробовал IP Cam с инициализацией инструкции Else, но это тоже не работает должным образом.
У кого-нибудь есть другой совет?
Действие: я вызываю класс из основной программы при запуске
stream_link = "rtsp: // admin: PW@192.168.2.101: 554 / stream = 0"
video_stream_widget = VideoStreamWidget (stream_link)
Cam инициализирован, он работает очень хорошо
В классе, когда я обновляю фрейм, я пытаюсь определить, является ли self.capture.isOpened () = True - если не будет повторно инициализировано.
И здесь время от времени случается, что self.capture.isOpened () = False возвращает
class VideoStreamWidget(object):
def __init__(self, src=0):
# Create a VideoCapture object
self.capture = cv2.VideoCapture(src)
# Start the thread to read frames from the video stream --
self.thread = Thread(target=self.update, args=())
self.thread.daemon = True
self.thread.start()
time.sleep(2.0)
print("init video steam")
print(self.thread)
def update(self):
# Read the next frame from the stream in a different thread
while True:
if self.capture.isOpened():
(self.status, self.frame) = self.capture.read()
else:
print("Frame Update nicht möglich")
print("Neu init")
stream_link = "rtsp://admin:PW@192.168.2.101:554/stream=0"
video_stream_widget = VideoStreamWidget(stream_link)
# give the camera some time to recover
time.sleep(10)
(self.status, self.frame) = self.capture.read()