admin 96b099d892 feat: remote control agent — WebSocket client + Remote settings tab
- electron/remote.js: WebSocket client that connects to central server
  - Smart URL builder: domain+443→wss://, IP/non-443→ws://, http/https→ws/wss
  - UUID token auth on connect
  - Auto-reconnect with exponential backoff (3s→60s)
  - Handles commands: start_stream, stop_stream, update_stream, stop_all
  - Sends: devices, stream_status, logs
  - Ping/pong keepalive every 25s
  - Self-signed cert allowed for local IPs (192.168.x, 10.x, .local)
- electron/main.js: IPC handlers remote-connect/disconnect/get-url,
  generate-token; forwards commands to FFmpeg, status to renderer
- electron/preload.js: exposes remoteConnect, remoteDisconnect,
  remoteGetUrl, generateToken, onRemoteStatus, onRemoteCommand
- src/components/RemoteSettings.jsx: new UI tab
  - Server + port fields (default 443, auto wss/ws)
  - URL preview
  - Token display with copy + regenerate
  - Machine name field
  - Connection status bar with animated states
- src/App.jsx: Remote tab added, remote state persisted to config
- src/styles/App.css: remote status bar, token display, actions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 19:02:57 +03:00

SRT Streamer

Кроссплатформенное десктопное приложение для отправки нескольких SRT-потоков.

Требования

  • Node.js 18+ — https://nodejs.org
  • FFmpeg с поддержкой SRT — обязательно

Установка

Windows

  1. Скачать FFmpeg с SRT: https://github.com/BtbN/FFmpeg-Builds/releases
    Файл: ffmpeg-master-latest-win64-gpl.zip
  2. Положить ffmpeg.exe в папку ffmpeg-bin\
  3. Запустить:
    setup.bat
    

macOS / Linux

# macOS
brew install ffmpeg

# Linux (Ubuntu/Debian)
sudo apt install ffmpeg

# Затем:
chmod +x setup.sh
./setup.sh

Запуск

# Режим разработки
npm run dev

# Собрать портативный .exe (Windows)
npm run build:win

# Собрать для macOS
npm run build:mac

# Собрать AppImage (Linux)
npm run build:linux

Возможности

  • Несколько одновременных SRT-потоков
  • Источники видео: карты захвата, камеры, рабочий стол, захват окна (с опцией скрыть курсор)
  • Источники аудио: микрофоны, гарнитуры, системный звук (loopback), устройство по умолчанию
  • Кодировка H.264 с аппаратным ускорением (NVENC / QSV / AMF / VideoToolbox)
  • SRT режимы: caller / listener / rendezvous
  • Приёмник Tolbek (входящий SRT-поток)
  • Сворачивание в трей, выход только через меню трея

Структура

SRT_stream/
├── electron/         — Electron main process
│   ├── main.js       — Окно, трей, IPC
│   ├── preload.js    — Bridge renderer ↔ main
│   ├── ffmpeg.js     — Управление FFmpeg процессами
│   └── devices.js    — Перечисление устройств
├── src/              — React UI
│   ├── App.jsx
│   └── components/
│       ├── StreamCard.jsx
│       ├── StreamSettings.jsx
│       ├── TolbekSettings.jsx
│       └── LogPanel.jsx
├── ffmpeg-bin/       — Положить ffmpeg.exe сюда
└── assets/           — Иконки
S
Description
Cross-platform SRT multi-stream sender � Electron + React + FFmpeg
Readme 328 KiB
Languages
JavaScript 81.3%
CSS 15.5%
Batchfile 1.7%
Shell 1.1%
HTML 0.4%