Files
biblioteca_conocimiento_lab…/vigilancia/camara.py

36 lines
972 B
Python

import cv2
import time
class CamaraRTSP:
def __init__(self, url, nombre):
self.url = url
self.nombre = nombre
self.cap = None
self._conectar()
def _conectar(self):
self.cap = cv2.VideoCapture(self.url)
self.cap.set(cv2.CAP_PROP_OPEN_TIMEOUT_MSEC, 5000)
self.cap.set(cv2.CAP_PROP_READ_TIMEOUT_MSEC, 5000)
def leer_frame(self):
if self.cap is None or not self.cap.isOpened():
print(f"[{self.nombre}] Reconectando...")
try:
self._conectar()
except Exception as e:
print(f"[{self.nombre}] Error al reconectar: {e}")
self.cap = None
time.sleep(2)
return None
ok, frame = self.cap.read()
if not ok:
print(f"[{self.nombre}] Frame perdido, reintentando...")
self.cap.release()
self.cap = None
return None
return frame