本 Python 教學示範了從 IP 攝影機擷取和顯示即時視訊來源。我們將利用 requests
、OpenCV
和 imutils
來取得、處理和顯示影像。 該腳本不斷檢索並顯示視訊串流,直到用戶退出。
目標:
本教學展示如何:
最終輸出是即時視訊串流,可以按 Esc 鍵終止。
先決條件:
安裝這些函式庫:
<code class="language-bash">pip3 install requests opencv-python imutils</code>
您還需要一個 IP 攝影機或透過 HTTP 傳輸視訊串流的裝置(例如,在連接埠 8080 上使用 MJPEG 的網路攝影機)。
使用 IP 網路攝影機應用程式(行動裝置):
http://192.168.0.101:8080/video
)。在 Python 腳本中使用此 URL。 在應用程式的視訊渲染器下選擇“Javascript”。 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>
逐步說明:
導入函式庫:匯入 HTTP 請求、映像處理、陣列處理和 OpenCV 實用函數所需的函式庫。
攝影機 URL: 設定網路攝影機串流的 URL。 將佔位符 IP 位址替換為您相機的 IP 位址。
影像檢索: while
循環不斷從 URL 取得影像。
解碼和調整大小:原始影像資料轉換為 NumPy 數組,使用 OpenCV 進行解碼,並可選擇調整大小以獲得更好的顯示效果。
顯示:影像顯示在標題為「IP 攝影機來源」的視窗中。
退出條件: cv2.waitKey(1)
等待按鍵。按 Esc (27) 會中斷循環。
清理: cv2.destroyAllWindows()
關閉所有 OpenCV 視窗。
執行腳本:
url
變數。 ipcam_viewer.py
)。 python ipcam_viewer.py
視訊串流應該會出現。 按 Esc 關閉。
結論:
該腳本提供了用於查看 IP 攝影機來源的基本框架。 它可以擴展到包括運動偵測或錄影等功能。請記得將佔位符 URL 替換為您相機的實際串流位址。
以上是如何使用 Python 從 IP 攝影機擷取即時視訊串流的詳細內容。更多資訊請關注PHP中文網其他相關文章!