cari
Rumahpembangunan bahagian belakangTutorial PythonCara Menangkap Strim Video Langsung daripada Kamera IP Menggunakan Python

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:

pip3 install requests opencv-python imutils

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:

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

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
Apakah jenis data yang boleh disimpan dalam array python?Apakah jenis data yang boleh disimpan dalam array python?Apr 27, 2025 am 12:11 AM

Pythonlistscanstoreanydatatype, arraymoduleArraysstoreonetype, andnumpyarraysarefornumumericalcomputations.1) listsareversatileButlessMememory-efficient.2) arraymoduleArduleArrayRaysarememory-efficientforhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogen

Apa yang berlaku jika anda cuba menyimpan nilai jenis data yang salah dalam array python?Apa yang berlaku jika anda cuba menyimpan nilai jenis data yang salah dalam array python?Apr 27, 2025 am 12:10 AM

KetikayyoUttemptToStoreAveFheWrongatatypeinapythonArray, anda akan menjadicounteratypeerror

Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array?Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array?Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary, sementara

Apa yang perlu anda periksa jika skrip dijalankan dengan versi Python yang salah?Apa yang perlu anda periksa jika skrip dijalankan dengan versi Python yang salah?Apr 27, 2025 am 12:01 AM

Thescriptisrunningwiththewrongpythonversionduetoincorrectdefault interpretsettings

Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apr 26, 2025 am 12:22 AM

PythonArraysSupportVariousoperations: 1) SlicingExtractsSubsets, 2) Menambah/ExtendingAddSelements, 3) InsertingPlaceSelementSatSatSatSpecifics, 4) RemovingDeleteselements, 5) Sorting/ReversingChangesOrder,

Dalam jenis aplikasi yang biasa digunakan oleh numpy?Dalam jenis aplikasi yang biasa digunakan oleh numpy?Apr 26, 2025 am 12:13 AM

NumpyarraysareessentialforapplicationRequiringeficientnumericalcomputationsanddatamanipulation.theyarecrucialindaSascience, machinelearning, fizik, kejuruteraan, danfinanceduetotheirabilitytOHandlelarge-Scaledataefisien.Forexample, infinancialanal

Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Apr 26, 2025 am 12:12 AM

UseanArray.arrayoveralistinpythonwhendealingwithhomogeneousdata, criticalcode prestasi, orinterfacingwithccode.1) homogeneousdata: arrayssavemememorywithtypedelements.2)

Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Apr 26, 2025 am 12:05 AM

Tidak, notalllistoperationsaresuportedByArrays, andviceversa.1) arraysdonotsupportdynamicoperationslikeappendorinsertwithoutresizing, whyimpactsperformance.2) listsdonotguaranteeconstantTimeComplexityFordirectacesscesscesscesscesscesscesscesscesscesessd.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),