
- 區網內,鏡頭至螢幕
- 低於 100 ms
- 硬體編碼
- H.264 / AV1
- 可抽換的信令
- MQTT · WHEP · SFU
- 開源授權
- Apache-2.0
01
任何有鏡頭的設備,都能加入房間
Raspberry Pi、NVIDIA Jetson,或你現有的 RTSP 攝影機。一個 pi-webrtc 執行檔就能上線。
Raspberry Pi
libcamera · H.264 硬體編碼
NVIDIA Jetson
libargus · H.264 / AV1 硬體編碼
RTSP 攝影機
在攝影機旁重新編碼,降低碼率

機械手臂
人在另一個城市,也能維修產線、取放零件。每個動作都即時看得到。

無人機
用 LTE 或 5G 飛巡檢任務,整個團隊看同一個畫面。

橋式起重機
港口與工廠的起重機,集中在一間控制室操作。

攝影機與巡檢
即時看機台、實驗室和工地,同時在裝置上留一份錄影。
Pi 5 與 Jetson Orin Nano 沒有硬體編碼器,會改用軟體編碼。兩個平台都支援 USB 攝影機。
實際運作
用網頁遙控無人機
瀏覽器裡的搖桿透過 WiFi 操控 PX4 無人機,DataChannel 和影像共用同一條連線。
裝置端物件追蹤
YOLOv11 與 NvDCF 在 Jetson Orin NX 上執行,直接畫在即時影像上。
一條串流,多個螢幕
Pi 5 透過 Cloudflare 串流到筆電和兩支手機,筆電上的碼表大約只慢 100 毫秒。
02
一台設備,多人觀看,一人操作
房間就像視訊會議。人和設備都能加入,大家一起看,同一時間由一個人控制設備。
共享房間
房間裡的每個人都看得到每台設備。一台設備最多可以加入 4 個房間。
一次一人操作
同一時間只有一個人控制設備,其他人排隊等候。
語音
房間裡的人可以互相說話,設備也會用喇叭播出他們的聲音。
控制走同一條連線
搖桿和鍵盤指令跟影像一起傳送,再由 IPC bridge 交給你的程式。
沒人看就不推流
閒置的設備只送出很小的 ping。有人加入,影像才開始傳。
你自己的 Cloudflare 帳號
一鍵部署 cf-sfu-worker,或先用我們的免費測試伺服器試試。Apache-2.0 開源。
Raspberry Pi 5 到瀏覽器約 50 毫秒
區網、100 fps,搖桿透過 DataChannel 操作。
03
信令
選擇裝置被連上的方式。多種傳輸方式可以同時啟用。
MQTT
需要: 一台 MQTT broker
從任何地方點對點觀看。裝置不需要公開網址 — 任何 broker 都能居中完成交握。
WHEP
需要: 不需要額外的伺服器 — 區網 IP 就夠了
裝置自己提供端點,所以任何 WHEP 播放器(包含 Home Assistant)都能用一個網址直接播放。
SFU
需要: 部署在你 Cloudflare 帳號上的 cf-sfu-worker,或一台 LiveKit 伺服器
支援大量同時觀看。裝置只上傳一條串流,由 SFU 負責轉發,觀看人數不再是它要煩惱的事。
Glass to glass:從鏡頭到觀看者螢幕。兩端靠近同一 Cloudflare 節點、120 fps 時約 100 毫秒;距離、網路與較低幀率會再增加。
04
為什麼選 pi-webrtc
攝影機板子本身就是 WebRTC 端點。媒體路徑上沒有任何閘道器。
這樣做的好處是:少一台要部署、要顧安全、要擴充的常駐主機。中間不會有任何轉碼或再串流,所以延遲貼近網路來回時間,不會一段一段疊上去。控制訊息走同一條連線上的 DataChannel 回傳,不需要再維護第二條路徑。而且同一個執行檔就涵蓋兩種型態 — 單一觀看者用點對點,需要多人時就接上 SFU。
一台 1080p60 攝影機,每天 24 小時、連續 30 天的流量
- media server 直通1080p60 · 8 Mbps2,592 GB
- pi-webrtc · 監控牆上限 2 Mbps · 最高 1080p60648 GB−75%
- pi-webrtc · 狀態縮圖上限 0.5 Mbps · 960×540、60 fps162 GB−94%
pi-webrtc 的數值是碼率上限,實際用量依畫面內容而定。解析度在 Jetson Orin NX 上實測,畫面大多靜止。
05Roadmap
下一步:AI 副駕駛
每次操作時,影像和操作者的指令本來就走在同一條連線上。我們計畫把兩者一起錄下來,在雲端訓練模型,讓它協助操作。
- 規劃中
1錄製
每次操作都把影像和指令同步存下來。
- 規劃中
2訓練
在雲端用你自己的操作紀錄訓練模型。
- 規劃中
3副駕駛
模型提出建議,或接手例行動作。人隨時可以接管。
06
幾分鐘就能試用
使用我們的免費測試伺服器。你需要一台接了鏡頭的 Raspberry Pi 或 Jetson。
- 1
安裝
安裝需要的函式庫,再下載 pi-webrtc 並解壓縮。
sudo apt update sudo apt install libmosquitto1 pulseaudio libavformat61 libyaml-cpp0.8 wget https://github.com/mazupo/pi-webrtc/releases/latest/download/pi-webrtc_raspios-trixie-arm64.tar.gz tar -xzf pi-webrtc_raspios-trixie-arm64.tar.gz - 2
執行
開始串流到免費測試伺服器。房間名稱和裝置 ID 已經幫你產生好了。
./pi-webrtc --camera=libcamera:0 --uid=your-device --no-audio \ --use-cloudflare --api-url=https://api.mazupo.com/sfu \ --api-key=1L4-mUUztDWhzF_ORhPHb4xpQK2Y9bEgeif0pYn7PXI \ --cloudflare-room=your-room - 3
觀看
打開你的觀看連結,再按 Join。
打開觀看頁https://api.mazupo.com/sfu/?room=your-room&viewer_key=-706d13ForZLHmv6FwARf9ZgEEfO78AattyxWhNoHFo
