Об этом проекте

polyemesis — это self-hosted сервер рестриминга, отличительной чертой которого является многоканальная маршрутизация аудио для каждого адресата. Один загружаемый поток распределяется на столько направлений, сколько настроит оператор, и каждое направление получает свой стереомикс, суммированный из аудиодорожек, отправленных кодировщиком. Видео копируется без изменений, а не перекодируется. Целевой сценарий использования: сессия OBS с разделенными аудиодорожками, где первая дорожка — это полный микс, включая музыку с авторскими правами, вторая — чистый поток, а третья — микрофон. Стриминговые платформы обычно принимают одну стереопару, поэтому либо один микс должен подходить всем, либо требуются несколько кодировщиков и загрузок. polyemesis позволяет пользователю выбирать для каждого направления, какие дорожки суммируются в стереопоток этого направления. Маршрутизация настраивается либо в простом режиме (чекбокс для каждой дорожки), либо в виде матрицы микширования каналов на выход с усилением для каждой ячейки. Прием данных осуществляется через SRT multitrack (до 32 дорожек AAC, адресуемых по токену на одном порту), с RTMP в качестве резервного варианта для одной дорожки на одном порту с адресацией по ключу потока. Предусмотрены живые аудиоиндикаторы уровня для каждого канала каждой дорожки, предназначенные для проверки чистоты дорожки перед выходом в эфир. Видеоверсии могут быть общими для направлений, которым требуется более низкий уровень качества: один кодировщик используется с учетом ссылок, поэтому неиспользуемый уровень ничего не стоит, а версии перекодируют только видео, оставляя маршрутизацию аудио индивидуальной для каждого направления. Оверлеи на версиях включают изображение-водяной знак и строку встроенного текста, размер и положение которых задаются в процентах от кадра. Направлениями могут быть RTMP(S), SRT или локальный файл, каждое из которых запускается независимо, с автопереподключением и экспоненциальной задержкой. Предлагается вход в аккаунты YouTube, Twitch, Facebook и Kick с отправкой чата и метаданных там, где это позволяет API, а также модерация чата на всех четырех платформах, включая удаление, бан, тайм-аут и карточку модератора, объединяющую сообщения одного пользователя со всех платформ. Другие операционные возможности включают отказоустойчивость с резервным приемом, генерацию заставки и селектор источника; метрики Prometheus и встроенные правила оповещений с доставкой через webhook; подписанные lifecycle-вебхуки при переходах потока и направления; сохраненную телеметрию MQTT с обнаружением Home Assistant; и самонастраивающийся TLS через Let's Encrypt или локальный CA. Группа пост-продакшена включает сегментированную многодорожечную запись с хранением, очередь заданий, транскрибацию Whisper с полнотекстовым поиском и клиппер. Многие настройки применяются без прерывания потока, а действие сохранения указывает, какие из них вступили в силу. Программное обеспечение поставляется в виде одного статического бинарного файла со встроенным UI, использует pure-Go SQLite и не требует cgo, требуя FFmpeg 6.0 или новее, собранный с libsrt. Программа отказывается запускаться с FFmpeg старше 6.0 и выдает предупреждение при отсутствии SRT. Опубликован Docker-образ. При сборке из клона требуются Go 1.27.0+, Node 20.19+/22.12+ и FFmpeg. В README четко указаны ограничения: проект находится на стадии pre-release с одним сопровождающим и без обещаний совместимости; RTMP multitrack не является основным путем работы; порты для каждого источника отсутствуют; предусмотрен один пользователь без ролей или разрешений для конкретных направлений; Instagram Live указан как неподдерживаемый; ответственность за пригодность исходного видео несет оператор. Степень зрелости платформ различается: Linux и Docker описаны как основные, а Windows — как непроверенная, включая известный нерешенный дефект с обрывом записи при остановке службы. Таблица сравнения позиционирует продукт относительно datarhei/Restreamer и restream.io, а в README указано, что Restreamer более зрелый продукт в случаях, когда разное аудио для каждой платформы не требуется. Лицензия — MIT.