这个项目能做什么

pi-webrtc 是一个开源项目(Apache-2.0),将 WebRTC 摄像头流和远程控制打包成单个二进制文件,适用于树莓派和 NVIDIA Jetson 设备。它使用 C++20 编写,并基于 libwebrtc(m147.7727)构建。 功能概述 - 通过 WebRTC 将树莓派或 Jetson 的摄像头流传输到浏览器,项目声称在局域网内延迟低于 100 毫秒。 - 通过 WebRTC 数据通道将控制消息和遥测数据传回设备。 - 支持通过 WiFi、LTE 或 5G 远程工作,无需公共 IP,利用 NAT 穿透和拥塞控制。 - 在支持的设备上支持硬件加速的 H.264/AV1 编码,不支持时自动回退到软件编码。 信令选项 文档中记录了三种信令模式,且可同时启用多种: - MQTT:点对点,带设备控制,适合远程访问。 - WHEP:使用任何标准 WebRTC 播放器进行播放。 - SFU:通过 LiveKit 或 Cloudflare Realtime 支持多观众同时观看。 硬件支持 - 树莓派:libcamera 后端,在支持的型号上支持 H.264 硬件编码。 - NVIDIA Jetson:libargus 后端,在支持的型号上支持 H.264/AV1 硬件编码。 - 两种平台均支持通过 V4L2 使用 USB 摄像头。 快速开始 在树莓派 OS Trixie(64 位)上,安装依赖(libmosquitto1、pulseaudio、libavformat61、libswscale8、libyaml-cpp0.8),下载最新发布版压缩包,然后运行二进制文件。可通过摄像头和 UID 启动本地 WHEP 测试,然后在网页播放器中输入设备的 WHEP URL 进行查看。对于远程点对点使用,二进制文件接受 MQTT 主机、端口、用户名、密码、UID、分辨率、帧率和硬件加速标志;可使用免费的 HiveMQ Cloud 实例或自托管代理。 文档和许可 完整文档链接在仓库中,包含信令和快速开始的单独文档。项目根据 Apache-2.0 许可,第三方声明见 NOTICE。README 还提到赞助计划,可提供额外发布版、功能和文档的访问权限。