Об этом проекте

VLX FrameFlow — это модульный набор на Go, предназначенный для превращения одноплатных компьютеров (SBC) на базе Debian и экземпляров VPS в профессиональное оборудование для прямых трансляций. Он функционирует как уровень граничного сбора и транспортировки в более широкой экосистеме VLX Stream Flow, которая также включает VisionBridge для композиции и ChatBridge для управления. Ключевые возможности: 1. **Отказоустойчивый объединяющий маршрутизатор**: агрегирует несколько интернет-подключений с использованием двухпротокольного объединения. UDP-трафик (например, видеопотоки SRT) агрегируется через MLVPN, а TCP-трафик (телеметрия, API, общий интернет) использует MPTCP в сочетании с Shadowsocks в качестве прозрачного прокси. Это обеспечивает устойчивые восходящие каналы даже при отказе одного соединения. 2. **Многокамерный потоковый кодер**: использует V4L2 и FFmpeg для захвата видео и аудио с подключённых камер и их кодирования в потоки SRT. Эти потоки передаются через объединённый туннель на ретрансляционный сервер (MediaMTX), обеспечивая отказоустойчивость без потерь и высокое качество передачи. 3. **GPS-телеметрия в реальном времени**: интегрируется с gpsd для автоматического обнаружения USB/последовательного GPS-оборудования. Он считывает данные о местоположении и отправляет JSON-телеметрию методом POST на удалённые конечные точки, что позволяет отслеживать местоположение в реальном времени и интегрироваться с другими компонентами экосистемы, такими как ChatBridge. 4. **Серверная ретрансляция и управление**: серверный компонент работает на VPS, выступая в роли ретрансляционного узла и менеджера межсетевого экрана. Он безопасно пересылает команды от сопутствующих приложений (например, ChatBridge) обратно клиенту SBC через туннель MLVPN. Он также управляет локальной службой MediaMTX для приёма и выдачи. 5. **Интерфейс удалённого управления**: предоставляет лёгкое встроенное одностраничное приложение (SPA) на Svelte, доступное через веб-браузер. Фронтенд опрашивает серверный API для отображения состояния системы, состояний systemd и цветного вывода консоли, позволяя операторам управлять полевым устройством удалённо. Архитектура и развёртывание: - Набор разделяет роли на клиент (SBC) и сервер (VPS). Клиент работает от имени непривилегированного пользователя через пользовательский systemd, обеспечивая безопасность за счёт отказа от выполнения CLI-модулей от имени root. Серверу требуются привилегии root для управления маршрутизацией и правилами межсетевого экрана. - Конфигурация осуществляется через файлы окружения, подключаемые оболочкой, и определения пиров в YAML, поддерживая детерминированные слотовые модели для конфигураций с несколькими клиентами. - Проект лицензирован под GNU General Public License v3.0.