6b0c2ca0ae7a704bbf48094c6d6441905192a8e3
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>
SRT Streamer
Кроссплатформенное десктопное приложение для отправки нескольких SRT-потоков.
Требования
- Node.js 18+ — https://nodejs.org
- FFmpeg с поддержкой SRT — обязательно
Установка
Windows
- Скачать FFmpeg с SRT: https://github.com/BtbN/FFmpeg-Builds/releases
Файл:ffmpeg-master-latest-win64-gpl.zip - Положить
ffmpeg.exeв папкуffmpeg-bin\ - Запустить:
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/ — Иконки
Description
Releases
2
Languages
JavaScript
81.3%
CSS
15.5%
Batchfile
1.7%
Shell
1.1%
HTML
0.4%