libfsm:实践指南
2026-09-11 3465742
2026-09-11 0
实际看RaspberryPi-WebRTC,先要确认它的用途:适用于 Raspberry Pi 和 NVIDIA Jetson 的实时 WebRTC 流式传输,玻璃间延迟为 100–200 毫秒。日常自动化里,输入边界、依赖和失败处理如果不清楚就很难稳定复用。我会用一项范围明确的真实任务完成最小试跑,检查配置时间、输出质量、异常信息和维护痕迹。它适合愿意先做小范围验证并复查原始文档的团队;采用前仍要看维护状态和试跑结果。

pi-webrtc
通过 WiFi、LTE 或 5G 为 Raspberry Pi 和 NVIDIA Jetson 提供超低延迟 WebRTC 流式传输。
特点
硬件支持
| 董事会 | CSI 后端 | 硬件编码 | 状态 |
|---|---|---|---|
| 圆周率零 2 W / 3B / 4 | 相机库 | V4L2 M2M — H.264(零拷贝 DMABUF) | ✅ 已测试 |
| 圆周率5 | 相机库 | —(软件OpenH264) | ✅ 已测试 |
| 杰特森·奥林 NX | 利巴格斯 | NVENC — H.264 + AV1 | ✅ 已测试 |
| Jetson Nano / NX / Orin | 利巴格斯 | NVENC — H.264 | 支持 |
两个平台上都通过 V4L2 支持 USB 相机。
快速入门
查看 教程视频 或按照以下步骤操作。
1. 刷入树莓派OS
使用 Raspberry Pi 成像器 将 Lite OS 闪存到 SD 卡。
2.安装依赖项
sudo apt update
sudo apt install libmosquitto1 pulseaudio libavformat61 libswscale8 libyaml-cpp0.8
3.下载二进制文件
获取最新的 发布二进制文件 。
wget https://github.com/TzuHuanTai/RaspberryPi-WebRTC/releases/latest/download/pi-webrtc_raspios-trixie-arm64.tar.gz
tar -xzf pi-webrtc_raspios-trixie-arm64.tar.gz
Jetson 版本发布在与 pi-webrtc_jetson-l4t- 相同的页面上。
4. MQTT信令
使用 HiveMQ、EMQX 或 自托管 代理。
[!TIP] MQTT 让您的 Pi 相机和客户端交换 WebRTC 连接信息。 WHEP 不需要代理,但需要公共主机名。 LiveKit 需要一台 SFU 服务器,并从一个上行链路为许多观众提供服务。 Cloudflare Realtime 可以为许多人提供服务,而无需您自己的服务器 - 扇出在 Cloudflare 的边缘运行。
运行应用程序
UID。./pi-webrtc \
--camera=libcamera:0 \
--fps=30 \
--width=1280 \
--height=960 \
--use-mqtt \
--mqtt-host=your.mqtt.cloud \
--mqtt-port=8883 \
--mqtt-username=hakunamatata \
--mqtt-password=Wonderful \
--uid=your-custom-uid \
--no-audio \
--hw-accel
[!IMPORTANT] 对于 Pi 5 或其他没有硬件编码器的设备,请删除
--hw-accel。
信令与集成
| 交通 | 最适合 | 客户 |
|---|---|---|
| MQTT | 点对点,不需要公共主机名 | picamera.js (Web + React Native) · picamera-app (Android) |
| WHEP | 在任何标准 WebRTC 播放器中播放 URL | 家庭助理 WebRTC 摄像头 · eyevinn/webrtc-player |
| LiveKit | 来自一个上行链路的许多同时观看者 | picamera.js |
| Cloudflare 实时 | 许多同时观看的观众却无事可做 | picamera.js |
信令是可插拔的——每个传输在 src/signaling/ 中实现相同的接口,并且
一次可以启用多个。
文档
完整文档 → picamera.live/docs
配置 · 摄像头和编码 · 信令 · 录制 · 架构 · 建筑 · 高级使用
商业
Jetson 上的对象检测和跟踪、单个进程的多摄像头捕获,以及 设备上 LiveKit 令牌发行可在商业许可下使用 - 请参阅 商业版本 或联系 [email protected]。