Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Menangkap Strim Video Langsung daripada Kamera IP Menggunakan Python

Cara Menangkap Strim Video Langsung daripada Kamera IP Menggunakan Python

DDD
DDDasal
2025-01-16 20:15:101017semak imbas

Tutorial Python ini menunjukkan menangkap dan memaparkan suapan video langsung daripada kamera IP. Kami akan memanfaatkan requests, OpenCV dan imutils untuk mengambil, memproses dan memaparkan imej. Skrip terus mengambil dan memaparkan strim video sehingga pengguna keluar.

Objektif:

Tutorial ini menunjukkan cara untuk:

  • Dapatkan semula bingkai video daripada kamera IP melalui HTTP.
  • Gunakan OpenCV untuk memproses dan memaparkan bingkai.
  • Tangkap dan paparkan imej secara berterusan dalam masa nyata.
  • Laksanakan gelung untuk memaparkan strim, keluar dengan menekan kekunci.

Output akhir ialah strim video langsung, boleh ditamatkan dengan menekan kekunci Esc.

Prasyarat:

Pasang perpustakaan ini:

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

Anda juga memerlukan kamera IP atau peranti penstriman video melalui HTTP (cth., kamera web menggunakan MJPEG pada port 8080).

Menggunakan Apl Webcam IP (Peranti Mudah Alih):

  1. Pasang apl Webcam IP pada telefon anda.
  2. Sambungkan PC dan telefon anda ke rangkaian yang sama.
  3. Mulakan pelayan aplikasi Webcam IP. URL (cth., http://192.168.0.101:8080/video) akan dipaparkan. Gunakan URL ini dalam skrip Python anda. Pilih "Javascript" di bawah Video Renderer dalam apl.
  4. Sahkan suapan kamera berfungsi dengan membuka URL dalam penyemak imbas anda.

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

Kod Python:

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

Penjelasan Langkah demi Langkah:

  1. Import Perpustakaan: Mengimport perpustakaan yang diperlukan untuk permintaan HTTP, pemprosesan imej, pengendalian tatasusunan dan fungsi utiliti OpenCV.

  2. URL Kamera: Menetapkan URL untuk strim kamera IP. Ganti alamat IP pemegang tempat dengan alamat IP kamera anda.

  3. Pendapatan Imej: Gelung while terus mengambil imej daripada URL.

  4. Penyahkodan dan Saiz Semula: Data imej mentah ditukar kepada tatasusunan NumPy, dinyahkod menggunakan OpenCV dan diubah saiz secara pilihan untuk paparan yang lebih baik.

  5. Paparan: Imej dipaparkan dalam tetingkap bertajuk "Suapan Kamera IP."

  6. Keadaan Keluar: cv2.waitKey(1) menunggu untuk ditekan kekunci. Menekan Esc (27) memecahkan gelung.

  7. Pembersihan: cv2.destroyAllWindows() menutup semua tetingkap OpenCV.

Menjalankan Skrip:

  1. Mulakan kamera IP anda.
  2. Kemas kini pembolehubah url dengan URL kamera anda yang betul.
  3. Simpan skrip (cth., sebagai ipcam_viewer.py).
  4. Lari: python ipcam_viewer.py

Strim video sepatutnya muncul. Tekan Esc untuk menutup.

Kesimpulan:

Skrip ini menyediakan rangka kerja asas untuk melihat suapan kamera IP. Ia boleh dikembangkan untuk memasukkan ciri seperti pengesanan gerakan atau rakaman video. Ingat untuk menggantikan URL pemegang tempat dengan alamat strim sebenar kamera anda.

Atas ialah kandungan terperinci Cara Menangkap Strim Video Langsung daripada Kamera IP Menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn