Comment accéder à mon flux de caméra IP?
Le code permettant d’afficher un flux webcam standard est
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Comment puis-je faire exactement la même chose mais avec la caméra IP?
Mon système:
L'aide sera très appréciée
Je réponds à ma propre question en indiquant quelle semble donc être la procédure globale la plus complète pour accéder à la caméra IP dans Python OpenCV.
Étant donné une caméra IP:
IP
adresse port
à laquelle l'adresse IP est accédée protocol
(HTTP/RTSP, etc.) spécifiée par le fournisseur de caméra Ensuite, si votre appareil photo est protégé, allez-y et découvrez:
username
password
Ensuite, utilisez vos données pour exécuter le script suivant:
"""Access IP Camera in Python OpenCV"""
import cv2
stream = cv2.VideoCapture('protocol://IP:port/1')
# Use the next line if your camera has a username and password
# stream = cv2.VideoCapture('protocol://username:password@IP:port/1')
while True:
r, f = stream.read()
cv2.imshow('IP Camera stream',f)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
NOTE: Dans ma question initiale, je spécifiais travailler avec Teledyne Dalsa Appareil photo Genie Nano XL. Malheureusement pour ce type de caméra, cette manière habituelle d’accéder au flux vidéo de la caméra IP ne fonctionne pas et le SDK Sapera doit être utilisé afin de récupérer des images de l’appareil.
Vous pouvez accéder à une caméra IP en mode opencv en fournissant l’URL de transmission en continu de la caméra dans le constructeur de cv2.VideoCapture
.
En règle générale, la caméra utilise le protocole RTSP ou HTTP pour diffuser de la vidéo .Un exemple d'URL de diffusion en continu de caméra IP est le suivant:
rtsp: //192.168.1.64/1
Il peut être ouvert avec OpenCV comme ceci:
capture = cv2.VideoCapture('rtsp://192.168.1.64/1')
La plupart des caméras IP ont un nom d'utilisateur et un mot de passe pour accéder à la vidéo. Dans ce cas, les informations d'identification doivent être fournies dans l'URL de diffusion comme suit:
capture = cv2.VideoCapture('rtsp://username:[email protected]/1')
Commencez par rechercher l'URL de diffusion de votre caméra IP, par exemple si c'est RTSP/HTTP, etc.
Les changements de code seront les suivants:
cap = cv2.VideoCapture("ipcam_streaming_url")
Par exemple:
cap = cv2.VideoCapture("http://192.168.18.37:8090/test.mjpeg")
Le moyen le plus simple de diffuser de la vidéo via une caméra IP!
Je viens d'éditer votre exemple. Vous devez remplacer votre adresse IP et ajouter /video
sur votre lien. Et continuez votre projet
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
Dans pycharm j'ai écrit le code permettant d'accéder à la caméra IP comme suit:
import cv2
cap=VideoCapture("rtsp://user_name:password@IP_address:port_number")
ret, frame=cap.read()
Vous devrez remplacer user_name
, password
, IP
et port
par des valeurs appropriées
Pour obtenir le lien vidéo caméra IP:
IP
et PORT
dans le navigateur.Pour accéder à une caméra IP, tout d'abord, je vous recommande de l'installer comme vous allez le faire pour l'application standard, sans code, à l'aide d'un logiciel normal.
Après cela, vous devez savoir que pour différents appareils photo, nous avons différents codes. Il existe un site Web où vous pouvez voir quel code vous pouvez utiliser pour y accéder:
https://www.ispyconnect.com/sources.aspx
Mais attention, mon appareil photo (Intelbras S3020) ne fonctionne pas. La bonne façon est de demander à la compagnie de votre appareil photo, et si c'est une bonne compagnie, elle vous le fournira.
Lorsque vous connaissez votre code, ajoutez-le comme ceci:
cap = cv2.VideoCapture("http://LOGIN:PASSWORD@IP/cgi-bin/mjpg/video.cgi?&subtype=1")
À la place, LOGIN vous indiquera votre nom d'utilisateur et PASSWORD, votre mot de passe.
Pour connaître l'adresse IP de la caméra, vous pouvez télécharger de nombreux logiciels et vous fournir l'adresse IP. J'utilise le logiciel d'Intelbras, mais je recommande également EseeCloud car ils fonctionnent pour presque tous les appareils que j'ai achetés:
https://eseecloud.software.informer.com/1.2/
Dans cet exemple, il montre le protocole http pour accéder à la caméra IP, mais vous pouvez également utiliser rstp, cela dépend de la caméra, comme je l'ai dit.
Si vous avez d'autres questions, faites le moi savoir.