Solución:
Se puede acceder a una cámara IP en opencv proporcionando la URL de transmisión de la cámara en el constructor de cv2.VideoCapture
.
Por lo general, la cámara utiliza el protocolo RTSP o HTTP para transmitir video. Un ejemplo de URL de transmisión de cámara IP es el siguiente:
rtsp: //192.168.1.64/1
Se puede abrir con OpenCV así:
capture = cv2.VideoCapture('rtsp://192.168.1.64/1')
La mayoría de las cámaras IP tienen un nombre de usuario y una contraseña para acceder al video. En tal caso, las credenciales deben proporcionarse en la URL de transmisión de la siguiente manera:
capture = cv2.VideoCapture('rtsp://username:[email protected]/1')
Esto funciona con mi cámara IP:
import cv2
#print("Before URL")
cap = cv2.VideoCapture('rtsp://admin:[email protected]/H264?ch=1&subtype=0')
#print("After URL")
while True:
#print('About to start the Read command')
ret, frame = cap.read()
#print('About to show frame of Video.')
cv2.imshow("Capturing",frame)
#print('Running..')
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Encontré la URL de la transmisión en la pantalla de configuración de la cámara:
Tenga en cuenta que agregué el nombre de usuario (admin) y la contraseña (123456) de la cámara y terminé con un símbolo @ antes de la dirección IP en la URL (admin:[email protected])
¡La forma más fácil de transmitir video a través de una cámara IP!
Solo edito tu ejemplo. Debes reemplazar tu IP y agregar /video
en su enlace. Y sigue adelante con tu proyecto
import cv2
cap = cv2.VideoCapture('http://192.168.18.37:8090/video')
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break