À propos du projet

pi-webrtc est un projet open source (Apache-2.0) qui regroupe la diffusion caméra WebRTC et le contrôle à distance dans un seul binaire pour les appareils Raspberry Pi et NVIDIA Jetson. Il est écrit en C++20 et compilé avec libwebrtc (m147.7727). Ce qu'il fait - Diffuse une caméra depuis un Raspberry Pi ou un Jetson vers un navigateur via WebRTC, le projet revendiquant une latence inférieure à 100 ms sur réseau local. - Transmet les messages de contrôle et la télémétrie vers l'appareil via les DataChannels WebRTC. - Fonctionne à distance sur WiFi, LTE ou 5G sans nécessiter d'adresse IP publique, grâce à la traversée NAT et au contrôle de congestion. - Prend en charge l'encodage H.264/AV1 accéléré par matériel sur les appareils compatibles, avec repli automatique vers l'encodage logiciel en cas d'incompatibilité. Options de signalisation Trois modes de signalisation sont documentés, et plusieurs peuvent être activés simultanément : - MQTT : pair-à-pair avec contrôle de l'appareil, adapté à l'accès à distance. - WHEP : lecture avec n'importe quel lecteur WebRTC standard. - SFU : spectateurs simultanés via LiveKit ou Cloudflare Realtime. Prise en charge matérielle - Raspberry Pi : backend libcamera, encodage matériel H.264 sur les modèles compatibles. - NVIDIA Jetson : backend libargus, encodage matériel H.264/AV1 sur les modèles compatibles. - Caméras USB via V4L2 sur les deux plateformes. Démarrage rapide Sur Raspberry Pi OS Trixie (64 bits), installez les dépendances (libmosquitto1, pulseaudio, libavformat61, libswscale8, libyaml-cpp0.8), téléchargez la dernière archive de version et exécutez le binaire. Un test WHEP local peut être lancé avec une caméra et un UID, puis visionné via un lecteur web en saisissant l'URL WHEP de l'appareil. Pour un usage pair-à-pair à distance, le binaire accepte les paramètres hôte MQTT, port, nom d'utilisateur, mot de passe, UID, résolution, FPS et accélération matérielle ; une instance gratuite HiveMQ Cloud ou un broker auto-hébergé peut être utilisé. Documentation et licence La documentation complète est liée depuis le dépôt, avec des documents distincts pour la signalisation et le démarrage rapide. Le projet est sous licence Apache-2.0 avec les mentions de tiers dans NOTICE. Le README mentionne également un programme de parrainage donnant accès à des versions, fonctionnalités et documentations supplémentaires.