接上攝影機模組的 Raspberry Pi,正把畫面串流到後方的筆電

嵌入式裝置的超低延遲串流

從開發板直達瀏覽器

從 Raspberry Pi 與 NVIDIA Jetson 直接把 WebRTC 送進任何瀏覽器。在 WiFi、LTE 或 5G 上,從鏡頭至螢幕顯示只要 100-200 毫秒。

區網內,鏡頭至螢幕
低於 100 ms
硬體編碼
H.264 / AV1
可抽換的信令
MQTT · WHEP · SFU
開源授權
Apache-2.0

01

功能特色

硬體編碼

Raspberry Pi 上用 V4L2 M2M 支援 H.264,Jetson 上支援 H.264 / AV1。

雙向通訊

WebRTC DataChannel 負責傳遞控制訊息,再由 IPC bridge 交給裝置上的任何行程。

可抽換的信令

MQTT、WHEP 與 LiveKit 共用同一套介面,而且可以同時啟用多種。

在 4G / 5G 上照樣能跑

WebRTC 內建 NAT 穿透、壅塞控制與封包遺失回復,在行動網路上一樣可靠。

子串流
以完整解析度錄影,同時串流一份縮小過的畫面。
錄影
產出 MP4 檔案與定時 JPEG,可以持續錄製,也可以透過 DataChannel 觸發。
IPC bridge
把 DataChannel 接到 Unix socket,讓裝置上的本機行程直接和瀏覽器對話。
動態調整解析度
網路或裝置吃緊時自動降低,狀況好轉後再回升。
相機控制
相容 rpicam-apps — 自動對焦、白平衡、曝光、降噪。
音訊
透過 PulseAudio 或 ALSA 進行 48 kHz 收音。
STUN / TURN
內建支援,用於行動網路與電信業者網路下的 NAT 穿透。
YAML 設定檔
每一個 CLI 參數都能寫成設定檔裡的一個欄位。

02

應用情境

robotics

機器人與無人機

影像從機器人或無人機端以不到一秒的延遲傳出,操作者可以遠端駕駛,不必跟延遲搏鬥。

doorbell camera

遠端監控

用點對點信令連上 NAT 後方的攝影機,或透過 SFU 轉發給大量觀看者。

industrial

工業與實驗室監測

直接在瀏覽器裡即時觀察機台或實驗設備,同時在裝置端留一份錄影。

outdoor field camera

野外裝置

一片板子就完成擷取、編碼與 WebRTC 傳輸 —— 中間不需要地面站或轉送主機。

實際運作

用網頁遙控無人機

搖桿輸入走 DataChannel,影像走 WebRTC 回傳 — 全程只靠 WiFi。

裝置端物件追蹤

YOLOv11 + NvDCF 即時執行於 Jetson Orin NX。

一台攝影機,多人觀看

板子只上傳一條串流,由 LiveKit SFU 負責轉發。

03

信令

選擇裝置被連上的方式。多種傳輸方式可以同時啟用。

webrtc mqtt signaling

MQTT

需要: 一台 MQTT broker

從任何地方點對點觀看。裝置不需要公開網址 — 任何 broker 都能居中完成交握。

webrtc whep signaling

WHEP

需要: 不需要額外的伺服器 — 區網 IP 就夠了

裝置自己提供端點,所以任何 WHEP 播放器(包含 Home Assistant)都能用一個網址直接播放。

webrtc sfu signaling

SFU

需要: 一台 LiveKit 伺服器,或一個 Cloudflare Realtime app

支援大量同時觀看。裝置只上傳一條串流,由 SFU 負責轉發,觀看人數不再是它要煩惱的事。

有了 SFU,板子只要上傳一次,任意數量的觀看者都能觀看,並透過 DataChannel 把控制訊息傳回去。
本機裝置透過 Unix socket 與 V4L2 和板子溝通;板子把串流發布到 SFU,再由 SFU 轉送給每位觀看者,端對端約 200 毫秒。

04

為什麼選 pi-webrtc

攝影機板子本身就是 WebRTC 端點。媒體路徑上沒有任何閘道器。

這樣做的好處是:少一台要部署、要顧安全、要擴充的常駐主機。中間不會有任何轉碼或再串流,所以延遲貼近網路來回時間,不會一段一段疊上去。控制訊息走同一條連線上的 DataChannel 回傳,不需要再維護第二條路徑。而且同一個執行檔就涵蓋兩種型態 — 單一觀看者用點對點,需要多人時就接上 SFU。

傳統架構RTSP 攝影機 + 閘道器媒體路徑上多了一台常駐主機 — 又多一個要維運、要顧安全、要擴充的東西。
傳統 RTSP 攝影機與瀏覽器之間必須有閘道器或媒體伺服器,會多出 500 毫秒到 2 秒的延遲。
pi-webrtc板子本身就是端點板子只編碼一次,自己就會說 WebRTC — 直接送給觀看者,或送進 SFU 轉發給大量觀看者。
pi-webrtc 直接在板子上編碼,自己就會說 WebRTC:一條串流直接送到瀏覽器(一對一),或送進 SFU 轉發給大量觀看者(一對多)。

05

硬體支援

一套程式碼,兩個平台。

Raspberry Pi *

相機後端
libcamera
硬體編碼
H.264

NVIDIA Jetson *

相機後端
libargus
硬體編碼
H.264 / AV1

* Pi 5 與 Jetson Nano 沒有硬體編碼器,會退回軟體編碼。兩個平台都支援透過 V4L2 使用 USB 攝影機。