Об этом проекте
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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.