Sobre o projeto
pi-webrtc é um projeto de código aberto (Apache-2.0) que empacota streaming de câmera WebRTC e controle remoto em um único binário para dispositivos Raspberry Pi e NVIDIA Jetson. É escrito em C++20 e construído contra libwebrtc (m147.7727).
O que faz
- Transmite uma câmera de um Raspberry Pi ou Jetson para um navegador via WebRTC, com o projeto alegando latência inferior a 100ms em LAN.
- Envia mensagens de controle e telemetria de volta ao dispositivo via DataChannels WebRTC.
- Funciona remotamente via WiFi, LTE ou 5G sem exigir IP público, usando travessia NAT e controle de congestionamento.
- Suporta codificação H.264/AV1 acelerada por hardware em dispositivos compatíveis, com fallback automático para codificação por software quando não suportado.
Opções de sinalização
Três modos de sinalização são documentados, e vários podem ser habilitados ao mesmo tempo:
- MQTT: peer-to-peer com controle do dispositivo, adequado para acesso remoto.
- WHEP: reprodução com qualquer player WebRTC padrão.
- SFU: espectadores simultâneos via LiveKit ou Cloudflare Realtime.
Suporte de hardware
- Raspberry Pi: backend libcamera, codificação H.264 por hardware em modelos suportados.
- NVIDIA Jetson: backend libargus, codificação H.264/AV1 por hardware em modelos suportados.
- Câmeras USB via V4L2 em ambas as plataformas.
Início rápido
No Raspberry Pi OS Trixie (64 bits), instale as dependências (libmosquitto1, pulseaudio, libavformat61, libswscale8, libyaml-cpp0.8), baixe o tarball da versão mais recente e execute o binário. Um teste WHEP local pode ser iniciado com uma câmera e UID, e então visualizado através de um player web inserindo a URL WHEP do dispositivo. Para uso remoto peer-to-peer, o binário aceita flags de host MQTT, porta, usuário, senha, UID, resolução, FPS e aceleração de hardware; uma instância gratuita do HiveMQ Cloud ou um broker auto-hospedado pode ser usado.
Documentação e licenciamento
A documentação completa está vinculada ao repositório, com documentos separados para sinalização e início rápido. O projeto é licenciado sob Apache-2.0 com avisos de terceiros em NOTICE. O README também menciona um programa de patrocínio que fornece acesso a versões, recursos e documentação adicionais.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.