Sobre el proyecto
VLX FrameFlow es una suite modular de Go diseñada para transformar computadoras de placa única basadas en Debian (SBC) e instancias de VPS en hardware de transmisión en vivo de grado profesional. Funciona como la capa de Adquisición y Transporte de Borde dentro del ecosistema más amplio VLX Stream Flow, que también incluye VisionBridge para composición y ChatBridge para control.
Capacidades clave incluyen:
1. **Enrutador de Unión de Alta Disponibilidad**: Agrega múltiples conexiones a Internet utilizando unión de doble protocolo. El tráfico UDP (como flujos de video SRT) se agrega mediante MLVPN, mientras que el tráfico TCP (telemetría, API, Internet general) utiliza MPTCP combinado con Shadowsocks como un proxy transparente. Esto garantiza enlaces ascendentes resilientes incluso si una conexión falla.
2. **Codificador de Transmisión de Múltiples Cámaras**: Utiliza V4L2 y FFmpeg para capturar video y audio de las cámaras conectadas, codificándolos en flujos SRT. Estos flujos se envían a través del túnel unido a un servidor de retransmisión (MediaMTX), habilitando recuperación sin pérdida y transmisión de alta calidad.
3. **Telemetría GPS en Tiempo Real**: Se integra con gpsd para detectar automáticamente hardware GPS USB/serial. Lee los datos de ubicación y publica telemetría JSON en puntos finales remotos, permitiendo seguimiento en tiempo real e integración con otros componentes del ecosistema como ChatBridge.
4. **Relé y Control del Servidor**: El componente del servidor se ejecuta en una VPS, actuando como nodo de retransmisión y administrador de firewall. Reenvía comandos desde aplicaciones compañeras (como ChatBridge) de vuelta al cliente SBC de forma segura a través del túnel MLVPN. También administra el servicio local MediaMTX para ingestión y egreso.
5. **Interfaz de Gestión Remota**: Proporciona una aplicación de una sola página (SPA) Svelte ligera e incorporada accesible mediante un navegador web. El frontend consulta la API del backend para mostrar el estado del sistema, los estados de systemd y la salida de consola coloreada, permitiendo a los operadores gestionar la unidad de campo de forma remota.
Arquitectura y Despliegue:
- La suite separa los roles en Cliente (SBC) y Servidor (VPS). El Cliente se ejecuta como usuario no privilegiado mediante systemd de espacio de usuario, aplicando seguridad al rechazar la ejecución como root para los módulos CLI. El Servidor requiere privilegios de root para gestionar reglas de enrutamiento y firewall.
- La configuración se maneja mediante archivos de entorno obtenidos de shell y definiciones de pares YAML, soportando modelos de ranura deterministas para configuraciones de múltiples clientes.
- El proyecto está licenciado bajo la Licencia Pública General de GNU v3.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.