Sobre o projeto
VLX FrameFlow é um conjunto modular em Go projetado para transformar Computadores de Placa Única baseados em Debian (SBCs) e instâncias de VPS em hardware de transmissão ao vivo de nível profissional.
Ele funciona como a camada de Aquisição e Transporte de Borda dentro do ecossistema mais amplo VLX Stream Flow, que também inclui VisionBridge para composição e ChatBridge para controle.
1. **Roteador de Bonding de Alta Disponibilidade**: Agrega múltiplas conexões de internet usando bonding de duplo protocolo. O tráfego UDP (como fluxos de vídeo SRT) é agregado via MLVPN, enquanto o tráfego TCP (telemetria, API, internet geral) usa MPTCP combinado com Shadowsocks como um proxy transparente. Isso garante uplinks resilientes mesmo se uma conexão falhar.
2. **Codificador de Streaming Multi-Câmera**: Utiliza V4L2 e FFmpeg para capturar vídeo e áudio das câmeras conectadas, codificando-os em fluxos SRT. Esses fluxos são enviados através do túnel vinculado para um servidor de retransmissão (MediaMTX), permitindo fallback sem perda e transmissão de alta qualidade.
3. **Telemetria GPS em Tempo Real**: Integra-se com gpsd para detectar automaticamente hardware GPS USB/serial. Lê os dados de localização e envia telemetria JSON via POST para pontos finais remotos, permitindo rastreamento em tempo real e integração com outros componentes do ecossistema, como ChatBridge.
4. **Relé e Controle do Servidor**: O componente do servidor roda em uma VPS, atuando como nó de relé e gerenciador de firewall. Encaminha comandos de aplicativos complementares (como ChatBridge) de volta ao cliente SBC de forma segura através do túnel MLVPN. Também gerencia o serviço local MediaMTX para ingestão e egresso.
5. **Interface de Gerenciamento Remoto**: Fornece uma aplicação de página única (SPA) Svelte leve e embutida, acessível via navegador web. O frontend consulta a API do backend para exibir o status do sistema, estados do systemd e saída de console colorizada, permitindo que operadores gerenciem a unidade de campo remotamente.
Arquitetura e Implantação:
- O conjunto separa as funções em Cliente (SBC) e Servidor (VPS). O Cliente roda como usuário não privilegiado via systemd de espaço de usuário, aplicando segurança ao recusar a execução como root para os módulos de CLI. O Servidor requer privilégios de root para gerenciar roteamento e regras de firewall.
- A configuração é feita por meio de arquivos de ambiente sourcados pelo shell e definições de pares em YAML, suportando modelos de slot determinísticos para configurações multi-cliente.
- O projeto está licenciado sob a GNU General Public License v3.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.