admin acbd3b6349 feat: v1.2.0 — auto-reconnect, recording, monitor bounds, WASAPI loopback
- Auto-reconnect: stream retries with exponential backoff (2s→30s max)
  on unexpected exit; stops only when user clicks Stop
- Recording: global RecordingBar with folder picker, segment duration (min),
  per-stream checkbox, Select All; uses FFmpeg tee muxer for simultaneous
  SRT + segmented .ts file output
- Monitor capture: PowerShell System.Windows.Forms.Screen gives exact
  pixel bounds (x/y/width/height); per-monitor deviceName is now unique
  (desktop_monitor_N); gdigrab uses -offset_x/-offset_y/-video_size
- Window capture: windowTitle now explicitly propagated in handleVideoSelect
- System audio: added WASAPI Loopback option (no VB-Audio required),
  existing virtual-audio-capturer kept as fallback
- Reconnecting event forwarded to renderer; status shows "Reconnecting…"
  with attempt count in logs
- IPC: pick-folder (dialog.showOpenDialog) and open-folder (shell.openPath)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 12:10:39 +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%