À propos du projet

VLX FrameFlow est une suite modulaire en Go conçue pour transformer des ordinateurs monocartes (SBC) sous Debian et des instances VPS en matériel de diffusion en direct de qualité professionnelle. Elle fonctionne comme le niveau d'acquisition et de transport en périphérie au sein de l'écosystème plus large VLX Stream Flow, qui comprend également VisionBridge pour la composition et ChatBridge pour le contrôle. Les capacités clés incluent : 1. **Routeur d'agrégation à haute disponibilité** : agrège plusieurs connexions Internet à l'aide d'une agrégation à double protocole. Le trafic UDP (comme les flux vidéo SRT) est agrégé via MLVPN, tandis que le trafic TCP (télémétrie, API, Internet général) utilise MPTCP combiné à Shadowsocks comme proxy transparent. Cela garantit des liaisons montantes résilientes même si une connexion échoue. 2. **Encodeur de streaming multicaméra** : utilise V4L2 et FFmpeg pour capturer la vidéo et l'audio des caméras connectées, en les encodant en flux SRT. Ces flux sont poussés via le tunnel agrégé vers un serveur relais (MediaMTX), permettant un basculement sans perte et une transmission de haute qualité. 3. **Télémétrie GPS en temps réel** : s'intègre à gpsd pour détecter automatiquement le matériel GPS USB/série. Il lit les données de localisation et envoie des données télémétriques JSON par POST à des points de terminaison distants, permettant un suivi en temps réel et une intégration avec d'autres composants de l'écosystème comme ChatBridge. 4. **Relais serveur et contrôle** : le composant serveur s'exécute sur un VPS, agissant comme nœud relais et gestionnaire de pare-feu. Il transmet les commandes des applications compagnes (comme ChatBridge) vers le client SBC de manière sécurisée via le tunnel MLVPN. Il gère également le service MediaMTX local pour l'ingestion et la sortie. 5. **Interface de gestion à distance** : fournit une application monopage (SPA) Svelte légère et intégrée, accessible via un navigateur web. Le frontend interroge l'API backend pour afficher l'état du système, les états systemd et la sortie console colorisée, permettant aux opérateurs de gérer l'unité de terrain à distance. Architecture et déploiement : - La suite sépare les rôles en Client (SBC) et Serveur (VPS). Le Client s'exécute en tant qu'utilisateur non privilégié via systemd en espace utilisateur, appliquant la sécurité en refusant l'exécution en root pour les modules CLI. Le Serveur nécessite des privilèges root pour gérer le routage et les règles de pare-feu. - La configuration est gérée via des fichiers d'environnement sourcés par shell et des définitions de pairs YAML, prenant en charge des modèles d'emplacements déterministes pour les configurations multi-clients. - Le projet est sous licence GNU General Public License v3.0.