2025年9月2日 星期二

IPCAM_server

 直接跑的單檔 Flask 伺服器:

功能:1) 本機 webcam MJPEG 監看、2) 週期性 WS-Discovery 掃描 ONVIF 裝置、3) 清單 API、4) 指定 IP 的 RTSP → MJPEG 轉播。

需求

pip install flask opencv-python-headless onvif-zeep

環境變數(可選)

  • WEBCAM_INDEX:本機攝影機索引,預設 0

  • ONVIF_USER / ONVIF_PASS:若要自動取 RTSP URI

  • RTSP_TEMPLATE:未能自動取 URI 時的模板
    例:rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101

程式 app.py

<ipcam_server_app.py  >

啟動

export ONVIF_USER=admin export ONVIF_PASS=123456 # 如需:export RTSP_TEMPLATE='rtsp://{user}:{pwd}@{ip}:554/live/ch0' python3 ipcam_server_app.py

瀏覽 http://<伺服器IP>:8000/

注意

  • 瀏覽器無法原生播 RTSP,程式以 OpenCV 拉流並轉成 MJPEG。多路會吃 CPU。

  • 若 VLAN 阻擋多播,掃描清單會是空的。需允許 UDP/3702。

  • 若裝置 RTSP 需特定路徑,設定 RTSP_TEMPLATE 或提供 ONVIF 帳密讓程式自動查 URI。

沒有留言:

張貼留言