webentwicklung-frage-antwort-db.com.de

Zugriff auf die IP-Kamera in Python OpenCV

Wie greife ich auf meinen IP-Kamera-Stream zu? 

Der Code zum Anzeigen eines Standard-Webcam-Streams lautet

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()

Wie mache ich das genau mit der IP-Kamera? 

Mein System:

  • Python 2.7.14 
  • OpenCV 2.4.9 
  • Teledyne Dalsa Genie Nano XL Kamera

Hilfe wird sehr geschätzt 

Ich beantworte meine eigene Frage und berichte, was daher das umfassendste Gesamtverfahren für den Zugriff auf IP-Kameras in Python= OpenCV zu sein scheint .

Bei einer IP-Kamera:

  • Finden Sie Ihre Kamera IP Adresse
  • Suchen Sie das port, auf das die IP-Adresse zugegriffen wird
  • Suchen Sie das vom Kameraanbieter angegebene protocol (HTTP/RTSP usw.)

Wenn Ihre Kamera geschützt ist, finden Sie Folgendes heraus:

  • ihr username
  • ihr password

Verwenden Sie dann Ihre Daten, um das folgende Skript auszuführen:

"""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:[email protected]: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 : In meiner ursprünglichen Frage gebe ich an, mit Teledyne Dalsa Genie Nano XL-Kamera zu arbeiten . Leider funktioniert für diese Art von Kameras diese normale Art des Zugriffs auf den IP-Kamera-Videostream nicht und das Sapera SDK muss verwendet werden, um Frames von zu erfassen das Gerät.

Auf eine IP-Kamera kann in opencv zugegriffen werden, indem die Streaming-URL der Kamera im Konstruktor von cv2.VideoCapture angegeben wird.

Normalerweise wird das RTSP- oder HTTP-Protokoll von der Kamera zum Streamen von Video verwendet .. Ein Beispiel für eine IP-Kamera-Streaming-URL lautet wie folgt:

rtsp: //192.168.1.64/1

Es kann mit OpenCV folgendermaßen geöffnet werden:

capture = cv2.VideoCapture('rtsp://192.168.1.64/1')

Die meisten IP-Kameras verfügen über einen Benutzernamen und ein Kennwort, um auf das Video zuzugreifen. In diesem Fall müssen die Anmeldeinformationen wie folgt in der Streaming-URL angegeben werden:

capture = cv2.VideoCapture('rtsp://username:[email protected]/1')
6
sgarizvi

Ermitteln Sie zunächst die Streaming-URL Ihrer IP-Kamera, z. B. ob es sich um RTSP/HTTP usw. handelt.

Codeänderungen werden wie folgt sein:

cap = cv2.VideoCapture("ipcam_streaming_url")

Zum Beispiel:

cap = cv2.VideoCapture("http://192.168.18.37:8090/test.mjpeg")
6
Venkatesh

Das funktioniert mit meiner IP-Kamera:

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()

Ich habe die Stream-URL im Einrichtungsbildschirm der Kamera gefunden: IP Camera Setup Screen

Beachten Sie, dass ich den Benutzernamen (admin) und das Passwort (123456) der Kamera hinzugefügt und mit einem @ -Zeichen vor der IP-Adresse in der URL (admin: 123456 @) beendet habe.

3
John Harris

Der einfachste Weg, um Videos per IP-Kamera zu streamen!

Ich bearbeite nur dein Beispiel. Sie müssen Ihre IP-Adresse ersetzen und Ihrem Link /video hinzufügen. Und machen Sie mit Ihrem Projekt weiter 

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

Sie können wie folgt auf die meisten IP-Kameras zugreifen

import cv2 

path = "http://username:[email protected]_ip:your_port/tmpfs/auto.jpg"

while True:

     cap = cv2.VideoCapture(path)

     ret, frame = cap.read()
     if not ret:
         break

     cv2.imshow('frame', frame)

     key = cv2.waitKey(1) & 0xFF

     if key == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

Ich bin mir jedoch nicht sicher, ob diese Methode eine gute Leistung erbringt, da sie auf das Bild zugreift.

1
Dinusha Dilanka

In pycharm schrieb ich den Code für den Zugriff auf die IP-Kamera wie folgt: 

import cv2

cap=VideoCapture("rtsp://user_name:[email protected]_address:port_number")

ret, frame=cap.read()

Sie müssen user_name, password, IP und port durch geeignete Werte ersetzen 

1
Soma Banerjee

So erhalten Sie die IP-Kamera-Videoverbindung:

  1. Öffnen Sie die IP-Kamera mit der angegebenen IP und PORT im Browser
  2. Klicken Sie mit der rechten Maustaste auf das Video und wählen Sie "Bildadresse kopieren".
  3. Verwenden Sie diese Adresse, um ein Video aufzunehmen
0
Garry

Um auf eine Ip-Kamera zuzugreifen, empfehle ich zunächst, sie so zu installieren, wie Sie sie für die Standardanwendung verwenden möchten, und zwar ohne jeglichen Code. Verwenden Sie dazu normale Software. 

Danach müssen Sie wissen, dass wir für verschiedene Kameras unterschiedliche Codes haben. Es gibt eine Website, auf der Sie sehen können, mit welchem ​​Code Sie darauf zugreifen können:

https://www.ispyconnect.com/sources.aspx

Aber Vorsicht, meine Kamera (Intelbras S3020) funktioniert nicht. Der richtige Weg ist, das Unternehmen Ihrer Kamera zu fragen, und wenn es sich um ein gutes Unternehmen handelt, stellen Sie es zur Verfügung.

Wenn Sie Ihren Code kennen, fügen Sie ihn einfach wie folgt hinzu:

cap = cv2.VideoCapture("http://LOGIN:[email protected]/cgi-bin/mjpg/video.cgi?&subtype=1")

Anstelle von LOGIN geben Sie Ihr Login und stattdessen PASSWORT Ihr Passwort ein.

Um die IP-Adresse der Kamera herauszufinden, können Sie viele Software herunterladen und Ihnen die IP-Adresse zur Verfügung stellen. Ich benutze die Software von Intelbras, empfehle aber auch EseeCloud, da diese für fast alle Kameras funktioniert, die ich gekauft habe:

https://eseecloud.software.informer.com/1.2/

In diesem Beispiel wird das Protokoll http für den Zugriff auf die Ip-Kamera angezeigt. Sie können jedoch auch rstp verwenden. Dies hängt von der Kamera ab, wie gesagt. 

Wenn Sie weitere Fragen haben, lassen Sie es mich wissen.

0