Heim > Backend-Entwicklung > Python-Tutorial > So erfassen Sie Live-Videostreams von einer IP-Kamera mit Python

So erfassen Sie Live-Videostreams von einer IP-Kamera mit Python

DDD
Freigeben: 2025-01-16 20:15:10
Original
957 Leute haben es durchsucht

Dieses Python-Tutorial demonstriert die Aufnahme und Anzeige eines Live-Video-Feeds von einer IP-Kamera. Wir nutzen requests, OpenCV und imutils, um Bilder abzurufen, zu verarbeiten und anzuzeigen. Das Skript ruft den Videostream kontinuierlich ab und zeigt ihn an, bis der Benutzer ihn verlässt.

Ziel:

Dieses Tutorial zeigt, wie Sie:

  • Videobilder von einer IP-Kamera über HTTP abrufen.
  • Verwenden Sie OpenCV, um Frames zu verarbeiten und anzuzeigen.
  • Kontinuierliche Aufnahme und Anzeige von Bildern in Echtzeit.
  • Implementieren Sie eine Schleife, um den Stream anzuzeigen und bei Tastendruck zu beenden.

Die endgültige Ausgabe ist ein Live-Videostream, der durch Drücken der Esc-Taste beendet werden kann.

Voraussetzungen:

Installieren Sie diese Bibliotheken:

<code class="language-bash">pip3 install requests opencv-python imutils</code>
Nach dem Login kopieren

Sie benötigen außerdem eine IP-Kamera oder ein Gerät, das Videos über HTTP streamt (z. B. eine Webcam mit MJPEG auf Port 8080).

Verwenden der IP-Webcam-App (mobiles Gerät):

  1. Installieren Sie die IP-Webcam-App auf Ihrem Telefon.
  2. Verbinden Sie Ihren PC und Ihr Telefon mit demselben Netzwerk.
  3. Starten Sie den Server der IP-Webcam-App. Eine URL (z. B. http://192.168.0.101:8080/video) wird angezeigt. Verwenden Sie diese URL in Ihrem Python-Skript. Wählen Sie in der App unter Video-Renderer „Javascript“ aus.
  4. Überprüfen Sie, ob der Kamera-Feed funktioniert, indem Sie die URL in Ihrem Browser öffnen.

How to Capture Live Video Stream from an IP Camera Using Python

Python-Code:

<code class="language-python">import requests
import cv2
import numpy as np
import imutils

# Replace with your IP camera URL.  Ensure "/shot.jpg" is appended.
url = "http://192.168.0.101:8080/shot.jpg"  # Example URL

while True:
    img_resp = requests.get(url)
    img_arr = np.array(bytearray(img_resp.content), dtype=np.uint8)
    img = cv2.imdecode(img_arr, -1)
    img = imutils.resize(img, width=1000, height=1800) #Optional Resizing
    cv2.imshow("IP Camera Feed", img)
    if cv2.waitKey(1) == 27: # Esc key to exit
        break

cv2.destroyAllWindows()</code>
Nach dem Login kopieren

Schritt-für-Schritt-Erklärung:

  1. Bibliotheken importieren: Importiert notwendige Bibliotheken für HTTP-Anfragen, Bildverarbeitung, Array-Verarbeitung und OpenCV-Dienstprogrammfunktionen.

  2. Kamera-URL: Legt die URL für den Stream der IP-Kamera fest. Ersetzen Sie die Platzhalter-IP-Adresse durch die IP-Adresse Ihrer Kamera.

  3. Bildabruf: Eine while-Schleife ruft kontinuierlich Bilder von der URL ab.

  4. Dekodierung und Größenänderung: Die Rohbilddaten werden in ein NumPy-Array konvertiert, mit OpenCV dekodiert und optional zur besseren Anzeige in der Größe geändert.

  5. Anzeige: Das Bild wird in einem Fenster mit dem Titel „IP-Kamera-Feed“ angezeigt.

  6. Exit-Bedingung: cv2.waitKey(1) wartet auf einen Tastendruck. Durch Drücken von Esc (27) wird die Schleife unterbrochen.

  7. Bereinigung: cv2.destroyAllWindows()schließt alle OpenCV-Fenster.

Ausführen des Skripts:

  1. Starten Sie Ihre IP-Kamera.
  2. Aktualisieren Sie die Variable url mit der korrekten URL Ihrer Kamera.
  3. Speichern Sie das Skript (z. B. als ipcam_viewer.py).
  4. Ausführen: python ipcam_viewer.py

Der Videostream sollte erscheinen. Drücken Sie Esc zum Schließen.

Fazit:

Dieses Skript bietet ein grundlegendes Framework zum Anzeigen von IP-Kamera-Feeds. Es kann um Funktionen wie Bewegungserkennung oder Videoaufzeichnung erweitert werden. Denken Sie daran, die Platzhalter-URL durch die tatsächliche Stream-Adresse Ihrer Kamera zu ersetzen.

Das obige ist der detaillierte Inhalt vonSo erfassen Sie Live-Videostreams von einer IP-Kamera mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage