RaspberryPi-WebRTC:实践指南

作者:袖梨 2026-09-11

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

TzuHuanTai/RaspberryPi-WebRTC 项目截图 1

pi-webrtc

通过 WiFi、LTE 或 5G 为 Raspberry Pi 和 NVIDIA Jetson 提供超低延迟 WebRTC 流式传输。

特点

  • 设备上的硬件编码 — Raspberry Pi 上的 V4L2 M2M,Jetson 上的 NVENC。
  • ~200 毫秒玻璃到玻璃,在 Jetson 上约为 100 毫秒。
  • 控制返回 — DataChannels 以另一种方式携带消息,并且 IPC 桥接器中继 他们到设备上的任何进程。
  • 在蜂窝网络上运行 — NAT 遍历、拥塞控制和丢包恢复功能 WebRTC,因此相同的构建可以在 LTE 或 5G 上运行。
  • 两个平台,三个相机后端 — libcamera、libargus、V4L2。
  • 可插拔信令 — MQTT、WHEP、LiveKit 和 Cloudflare Realtime 共享一个接口。

硬件支持

董事会 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-<version>.tar.gz 相同的页面上。

4. MQTT信令

使用 HiveMQ、EMQX 或 自托管 代理。

[!TIP] MQTT 让您的 Pi 相机和客户端交换 WebRTC 连接信息。 WHEP 不需要代理,但需要公共主机名。 LiveKit 需要一台 SFU 服务器,并从一个上行链路为许多观众提供服务。 Cloudflare Realtime 可以为许多人提供服务,而无需您自己的服务器 - 扇出在 Cloudflare 的边缘运行。

运行应用程序

  • 打开 picamera-web 演示 UI — 添加 MQTT 设置,并创建 UID
  • 在你的 Pi 上运行命令:
    ./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]

相关文章

精彩推荐