admin 73aa97ae7c fix: window capture list not showing in video sources
Root cause: PowerShell command was wrapped in exec() with double-quote
escaping that silently failed. Rewrote using execFile() with args array
which requires no manual escaping.

Changes:
- electron/devices.js: use execFile('powershell.exe', [...args]) for
  window enumeration — eliminates quoting issues entirely
- Window list now returned INSIDE getDevices() video array (type='window')
  so they arrive together with cameras/screens in one IPC call
- StreamSettings: windows grouped from devices.video directly, with 🪟
  emoji prefix for visual distinction
- Added inline "↻ Обновить" button in video source field header to
  refresh devices+windows on demand without switching tabs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 01:17:03 +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%