web-dev-qa-db-fra.com

Accéder à la caméra IP en Python OpenCV

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:

  • Python 2.7.14 
  • OpenCV 2.4.9 
  • Caméra Teledyne Dalsa Genie Nano XL

L'aide sera très appréciée 

6

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:

  • Trouvez votre caméra IP adresse 
  • Trouvez la port à laquelle l'adresse IP est accédée 
  • Trouvez la 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: 

  • votre username 
  • votre 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.

2

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')
6
sgarizvi

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")
6
Venkatesh

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
2
ToanJunifer

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 

1
Soma Banerjee

Pour obtenir le lien vidéo caméra IP:

  1. Ouvrez la caméra IP avec IP et PORT dans le navigateur.
  2. Faites un clic droit sur la vidéo et sélectionnez "Copier l'adresse de l'image"
  3. Utilisez cette adresse pour capturer une vidéo
0
Garry

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.

0
Gustavo GeoDrones