admin 6b0c2ca0ae fix: Cyrillic window titles garbled in device list
PowerShell on Russian Windows outputs text in CP1251/CP866 by default.
Node.js reads stdout as UTF-8 → Cyrillic becomes mojibake.

Fix: force UTF-8 output at the start of every PowerShell command:
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8;
  $OutputEncoding = [System.Text.Encoding]::UTF8;

Receive stdout as raw Buffer (encoding:'buffer'), strip UTF-8 BOM
if present, then decode explicitly with .toString('utf8').

Also fixed runCommand() to collect chunks into Buffer arrays and
decode as UTF-8 (FFmpeg always outputs UTF-8 regardless of locale).

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