Я написал этот простой код Python для повторного подключения к IP-камере, к которой подключена моя система, на случай, если камера отключится.
import numpy as np
import cv2
import time
def work_with_captured_video():
while True:
ret, frame = camera.read()
if not ret:
print("Camera is disconnected!")
camera.release()
return False
break
else:
cv2.imshow('frame', frame)
return True
if cv2.waitKey(1) & 0xFF == ord('q'):
break
while True:
camera = cv2.VideoCapture('rtsp://<ip specific to my camera>')
if camera.isOpened():
print('Camera is connected')
#call function
response = work_with_captured_video()
if response == False:
time.sleep(10)
continue
else:
print('Camera not connected')
camera.release()
time.sleep(10)
continue
Я могу сказать, что код работает нормально, а камера подключается зановопосле того, как он был отключен на некоторое время.Потому что в журнале я мог видеть операторы печати, как и ожидалось (которые я вставил в свой код для проверки состояния подключения)
Пожалуйста, смотрите прикрепленное изображение для того же:
Обнаружена проблема:
1. Хотя я написал код cv2.imshow для просмотра видеопотока, я не могу увидеть ни одного видеопотока.
Просто пустое окнозагружается
Подача видео не прекращается (точнее, в моем случае: это пустое окно не гаснет) после нажатия клавиши «q» на клавиатуре, хотя для этого есть код, написанный для этого
Примечание:Я использую Ubuntu (ЦП), но я также пытался запустить код из системы Windows, но там также загружается только пустое окно без показа захваченного видеокадра.Более того:
В системе Windows, я вижу сообщение об ошибке, что: «Python перестал работать»
Я сомневаюсь: если бы Python перестал работать, то как остальные части кодавыполняется, и я вижу сообщения типа «отключен» .. «Подключен» и т. д. как ожидалось?
Было бы полезно, если бы вы могли пролить свет на решение этой проблемы.
Заранее спасибо!