Pion WebRTC v4 · Simulcast & SVC · WHIP/WHEP · AI Voice Pipe · SFrame E2EE

Установите SFU сервер за 1 минуту

Высокоскоростной селективный медиароутер для групповых видеоконференций, звонков один на один, вебинаров и голосовых диалогов с искусственным интеллектом.

$ curl -fsSL https://raw.githubusercontent.com/slyber-app/slyber-sfu-server/main/install.sh | sudo bash
Документация Slyber SFU на GitHub
Publisher · :4443 simulcast s2 · s1 · s0 Subscriber 1 s2 · 1080p Subscriber 2 s1 · 540p
Один порт 4443 для всех звонков
Весь медиатрафик UDP и RFC 4571 ICE-TCP мультиплексируется на одном порту 4443 без необходимости открывать тысячи портов в файрволе.
Simulcast, SVC и политика Last-N
Адаптация под канал каждого зрителя через Simulcast и VP9 SVC, детектор активного спикера RFC 6464 и автоматическая пауза тихих камер Last-N.
Шлюз для голосового ИИ
Встроенный полнодуплексный сокет /ai/ws для голосовых ИИ агентов с пейсером 20 мс и мгновенным сбросом буфера при перебивании человеком.
SFrame E2EE, Redis и WHIP/WHEP
Авторизация через JWT, Redis или HMAC Secret, сквозное шифрование SFrame MLS с защитой от повторов и прием эфиров по стандарту WHIP/WHEP.
Архитектура медиаядра

Все возможности промышленного медиасервера в одном компактном решении

Все необходимые механизмы современной видеосвязи, от низкоуровневых кольцевых буферов NACK до нейросетевых аудиошлюзов, собраны в одном автономном бинарнике на Go.

01 / 03
Pion Single-Port Mux

Единый сетевой порт UDP и TCP на базе Pion WebRTC

Мультиплексирование всех сессий ICE-Lite, DTLS-SRTP и RFC 4571 ICE-TCP на одном порту 4443.

Поддержка кодеков VP9, AV1, H264, VP8 и Opus
Simulcast, SVC & Auto-BWE

Адаптивная маршрутизация Simulcast и VP9 SVC

Умная адаптация качества видео под интернет каждого зрителя и подавление лавины запросов PLI.

Оценка канала по отчетам TWCC, REMB и Receiver Report
Zero-Alloc & Fast Swap

Zero-Allocation ядро и переключение треков без ренегоциации

Маршрутизация пакетов без нагрузки на сборщик мусора и мгновенное переключение собеседников.

История на 512 пакетов для обратной трансляции NACK
Full-Duplex AI Voice Pipe

Встроенный аудиошлюз для диалогов с ИИ в реальном времени

Прямой WebSocket шлюз /ai/ws для голосовых ИИ агентов с пейсером 20 мс и детектором перебивания.

Поддержка нескольких независимых ИИ ботов в одной комнате
SFrame E2EE & 3 Auth Modes

Многоуровневая безопасность, SFrame E2EE и защита от флуда

Аутентификация через JWT, Redis или HMAC Secret, лимиты скорости и сквозное шифрование MLS.

Атомарный шейпер трафика TrafficPolice для каждого трека и сессии
WHIP/WHEP, MoQ & Cascade

Шлюзы вещания WHIP/WHEP, MoQ Relay и межсерверный каскад

Прием трансляций из OBS Studio в 1 RTT, упаковка MoQ Draft-22 и защищенный каскад между нодами.

Защита каскада от SSRF атак на локальные и приватные подсети
Запуск за 4 шага

Как развернуть и запустить Slyber SFU Server

От установки бинарного файла на чистый сервер до проведения групповых видеозвонков, стримов из OBS и голосовых диалогов с ИИ менее чем за 2 минуты.

01 / 02
ШАГ 01 · Установка

Установите Slyber SFU Server одной командой

Скрипт автоматически определяет архитектуру процессора (amd64 или arm64), сверяет контрольную сумму SHA256, устанавливает бинарный файл в /usr/local/bin/slyber-sfu и запускает фоновую службу systemd.

ШАГ 01
curl -fsSL https://raw.githubusercontent.com/slyber-app/slyber-sfu-server/main/install.sh | sudo bash
ШАГ 02 · Конфигурация и диагностика

Проверьте готовность узла утилитой doctor

Задайте публичный IP адрес вашего сервера и секретные ключи длиной от 24 символов, после чего выполните команду встроенной диагностики doctor для мгновенной проверки сокетов, безопасности и доступности Redis.

ШАГ 02
PUBLIC_IP="99.99.99.99" \
AUTH_MODE="jwt" \
JWT_SECRET="your-24-char-production-jwt-secret" \
NODE_SECRET="your-24-char-production-node-secret" \
slyber-sfu doctor
ШАГ 03 · Подключение клиентов и OBS

Подключите участников, стримеров или ИИ ботов

Подключайте браузерные и мобильные приложения через сигнальный сокет /ws либо транслируйте эфир из OBS Studio напрямую в комнату через стандартный протокол WHIP без промежуточных медиасерверов.

ШАГ 03
// 1. WebRTC клиенты подключаются к WebSocket сигналингу:
ws://99.99.99.99:8090/ws (join -> offer/answer -> subscribe_track)

// 2. Или запускают прямую трансляцию из OBS Studio по WHIP:
POST http://99.99.99.99:8090/whip/live-room/main-camera
Authorization: Bearer <JWT_TOKEN>
ШАГ 04 · Инспекция и мониторинг

Контролируйте телеметрию и нагрузку в реальном времени

Отслеживайте количество активных комнат, битрейт, срабатывания NACK/PLI и состояние ИИ агентов через Prometheus экспортер /metrics или подключите сервер к визуальному стенду Slyber Inspector.

ШАГ 04
curl -H "X-Slyber-Node-Secret: ${NODE_SECRET}" http://127.0.0.1:8090/inspector/stats
# Или откройте визуальный стенд Slyber Inspector на порту :8095
Спецификации

Полные технические характеристики Slyber SFU Server

Технические параметры медиаядра, поддерживаемые сетевые протоколы, режимы авторизации и встроенные HTTP и WebSocket шлюзы.

Сетевой стек и порты по умолчанию
Pion WebRTC v4 ICE-Lite; единый порт 4443/UDP (ICEUDPMux) и 4443/TCP (RFC 4571 ICETCPMux); HTTP и WebSocket шлюз на порту 8090/TCP; системный буфер сокета 8 МБ
Поддерживаемые аудио и видеокодеки
Видео VP9 (профиль 0 с поддержкой SVC), AV1, H264 (level-asymmetry-allowed=1; packetization-mode=1; 42e01f), VP8; Аудио Opus 48000 Гц стерео с Inband FEC
Масштабирование видео и QoS механизмы
Simulcast (до 3 пространственных слоев q/h/f) и SVC фильтрация (3 пространственных и 3 временных слоя); кольцевой буфер NACK (512 пакетов на каждый слой); послойный PLICoalescer (интервал 500 мс); контроллер BWE (TWCC, REMB, RTCP RR)
Профили комнат и политика Last-N
5 профилей (conference, roulette_1v1, broadcast, gaming, ai_voice); детектор активного спикера по расширению RFC 6464 (ssrc-audio-level); автоматическая пауза тихих видеопотоков Last-N и Dynacast
Режимы аутентификации и защита трафика
JWT режим (HS256 с проверкой срока действия и прав публикации/подписки), Redis режим (пул соединений к ключам slyber:session:), Secret режим (HMAC-SHA1); отдельный админский ключ NODE_SECRET; лимитер скорости AtomicTokenBucket на трек и сессию
Сквозное шифрование End-to-End (E2EE)
Валидация заголовков RFC 9605 SFrame и аутентификационного тега GCM (16 байт); поддержка ротации до 16 ключей MLS на каждый SSRC; анти-реплей окно на 512 RTP пакетов; чтение открытого расширения RFC 9626 Frame Marking
Встроенные шлюзы вещания и ИИ
WHIP (/whip/{room}/{track}) и WHEP (/whep/{room}/{track}) с поддержкой Trickle ICE PATCH и защитой владельца по ETag; дуплексный AI Voice Pipe (/ai/ws, одиночный и mux режим до 8 слотов, пейсер 20 мс, VAD Barge-In); MoQ Relay (/moq/{room}/{track}, стандарт moqt-draft-22)
Межсерверное каскадирование (Slyber Pipe)
Эндпоинт /cascade/ для связывания нод по UDP; 28-байтный заголовок с криптографической подписью HMAC-SHA256-128 и 64-пакетным окном защиты от повторов; встроенный фильтр SSRF (блокировка loopback, RFC 1918 и CGNAT 100.64.0.0/10)
Телеметрия, диагностика и интеграция
JSON статистика GET /inspector/stats для Slyber Inspector и метрики Prometheus GET /metrics (чтение памяти через runtime/metrics без пауз GC); встроенная CLI команда самодиагностики slyber-sfu doctor; интеграция с внешним TURN через EXTERNAL_TURN_URLS
Развертывание и поддерживаемые платформы
Единый статический бинарный файл /usr/local/bin/slyber-sfu для Linux и macOS (amd64, arm64); автонастройка службы systemd (LimitNOFILE=65535); официальный Docker образ ghcr.io/slyber-app/slyber-sfu-server:latest
Сценарии применения

Где Slyber SFU Server раскрывает максимум возможностей

01 / 03
01 Video Conferencing

Корпоративные видеоконференции и групповые созвоны

Проведение многопользовательских звонков с автоматическим выделением говорящего спикера в HD качестве и отключением тихих видеокамер через политику Last-N для экономии канала и заряда батареи мобильных устройств.

02 1v1 Roulette & Dating

Видеорулетки, дейтинг-сервисы и быстрые чаты 1 на 1

Мгновенное переключение между собеседниками за доли миллисекунды с помощью метода FastSwapRouletteTrack и перезаписи номеров пакетов без повторного согласования SDP и без задержек видео.

03 Conversational AI

Голосовые ИИ ассистенты и групповые звонки с ботами

Прямое подключение голосовых моделей Gemini Live и OpenAI к комнатам через мультиплексированный сокет /ai/ws с выравниванием речи по 20 мс и мгновенным прерыванием бота, когда человек начинает говорить.

04 Interactive Broadcasting

Интерактивные вебинары, аукционы и стриминг с низкой задержкой

Прием студийного потока из OBS Studio по протоколу WHIP и одновременная раздача тысячам зрителей через WHEP и Simulcast слои с задержкой менее трети секунды.

05 Zero-Trust Security

Конфиденциальные звонки со сквозным шифрованием E2EE

Защищенные комнаты для медицины, финтеха и бизнеса с принудительной валидацией сквозного шифрования SFrame и ротацией ключей MLS, где медиасервер физически не имеет доступа к расшифрованному контенту.

06 Multi-Region Clustering

Геораспределенные кластеры и каскадирование трафика

Объединение нескольких серверов в разных странах через защищенный HMAC-SHA256 каскад /cascade/ и упаковка медиапотоков в формат MoQ Draft-22 для доставки через глобальные сети.

База знаний и частые вопросы

Часто задаваемые вопросы о Slyber SFU Server

Подробные ответы простым языком на технические вопросы разработчиков об устройстве SFU сервера, маршрутизации видео, защите трафика и подключении ИИ агентов.

Что такое SFU сервер простыми словами и зачем он нужен вместо прямого соединения браузеров? +
При обычном прямом соединении (Mesh) браузер каждого участника вынужден отправлять свою видеокартинку всем остальным собеседникам по отдельности. Если в комнате 10 человек, ваш телефон кодирует и выгружает в сеть 9 копий видеопотока, из-за чего быстро садится батарея и забивается интернет-канал. SFU (Selective Forwarding Unit) решает эту проблему. Вы отправляете свое видео на сервер всего один раз, а Slyber SFU Server мгновенно пересылает готовые пакеты остальным участникам комнаты без перекодирования видео на процессоре сервера.
Почему для работы Slyber SFU Server достаточно открыть всего один медиапорт 4443? +
Классические медиасерверы открывают отдельный случайный порт под каждый аудио и видеопоток, поэтому администраторам приходится открывать в файрволе диапазон в 10000 и более портов. Slyber SFU Server использует стек Pion WebRTC v4 в режиме ICE-Lite с единым мультиплексором ICEUDPMux и ICETCPMux. Все участники и все комнаты общаются через один общий порт 4443 по протоколам UDP и TCP, а сервер сам распознает и распределяет пакеты по нужным сессиям.
В чем разница между режимами Simulcast и SVC и как сервер подстраивается под плохой интернет? +
При использовании Simulcast браузер отправителя передает сразу три независимых видеопотока разного качества, например 1080p, 540p и 270p. При использовании SVC (Scalable Video Coding, например в кодеке VP9) все слои качества упакованы внутри одного потока. Встроенный контроллер пропускной способности (Subscriber BWE) постоянно измеряет скорость интернета и потери пакетов у каждого зрителя. Если зритель зашел в лифт и связь ухудшилась, сервер плавно переключает лично его на легкий слой 270p, в то время как остальные участники продолжают смотреть 1080p.
Как работает экономия трафика Last-N и определение говорящего участника в конференции? +
В больших групповых звонках на 20 или 50 человек участникам не нужно одновременно скачивать видео всех молчунов. Детектор активного спикера в Slyber SFU Server считывает уровень громкости из открытого заголовка пакета RFC 6464 без расшифровки самого звука. Механизм Last-N автоматически оставляет активными видеопотоки только N последних говоривших людей, а камеры молчащих участников ставит на паузу. Как только человек начинает говорить, сервер запрашивает ключевой кадр и мгновенно включает его видео без разрыва нумерации пакетов.
Что делает функция FastSwapRouletteTrack для видеорулеток и чатов один на один? +
В стандартном WebRTC для смены собеседника приходится заново обмениваться объемными SDP сообщениями и пересоздавать медиапотоки, что вызывает черные экраны и задержки в 1 или 2 секунды. В Slyber SFU Server для профиля рулетки предусмотрена команда roulette_swap. Сервер просто переключает внутренний указатель подписки со старого собеседника на нового и пересчитывает смещение номеров пакетов через SeqTimestampRewriter. Для браузера зрителя поток продолжается как ни в чем не бывало, а переключение занимает менее одной миллисекунды.
Зачем нужно сквозное шифрование SFrame E2EE, если в WebRTC уже есть встроенное шифрование SRTP? +
Стандартное шифрование DTLS-SRTP защищает трафик на пути от браузера до сервера, но внутри самого сервера пакеты расшифровываются для маршрутизации. Когда включен режим REQUIRE_E2EE, содержимое каждого кадра дополнительно шифруется на устройстве отправителя по стандарту RFC 9605 SFrame с управлением ключами MLS. Сервер проверяет подлинность ключа, защищает от повторной отправки перехваченных пакетов и маршрутизирует видео по открытому расширению RFC 9626 Frame Marking, но технически не может увидеть картинку или услышать звук.
Как подключить голосового ИИ ассистента к комнате через шлюз AI Media Pipe? +
Шлюз /ai/ws позволяет подключить любого голосового ИИ бота (например на базе моделей Gemini Live или OpenAI Realtime) напрямую в комнату через обычный WebSocket без поднятия сложного WebRTC стека на стороне ИИ сервиса. Вы просто отправляете аудиофреймы в сокет, а встроенный пейсер сервера сам раскладывает их по сетке в 20 миллисекунд и раздает людям в комнате. В режиме mode=mux через один сокет можно запустить до 6 разных ботов с собственными голосами. Если человек начинает говорить и перебивает бота, детектор речи (VAD Barge-In) мгновенно очищает очередь воспроизведения бота и уведомляет ваш бэкенд.
Можно ли объединить несколько серверов Slyber SFU в единый кластер для масштабирования? +
Да, в состав сервера входит отдельный шлюз межсерверного каскадирования /cascade/. Вы можете объединить несколько узлов Slyber SFU Server в разных дата-центрах. Когда зритель на сервере Б подписывается на поток издателя с сервера А, узлы устанавливают защищенный UDP канал, где каждый пакет подписывается криптографическим кодом HMAC-SHA256-128 и проверяется защитой от подделки внутренних IP адресов (SSRF).
Руководство по архитектуре и возможностям SFU

Как устроен Slyber SFU Server и почему он понятен каждому разработчику

Создание приложения с видеозвонками, вебинарами или голосовыми ИИ ботами быстро упирается в ограничения прямых соединений между браузерами. Когда в комнате собирается больше трех или четырех человек, отправка видео от каждого к каждому перегружает процессор и исходящий интернет-канал клиента. Slyber SFU Server берет на себя роль центрального коммутатора. Каждый участник отправляет свой видео и аудиопоток на сервер всего один раз, а сервер избирательно пересылает пакеты нужным зрителям с учетом скорости их интернета, без ресурсоемкого декодирования видео на стороне сервера.

Пять ключевых задач, которые решает Slyber SFU Server из коробки

Вам не нужно собирать сложную инфраструктуру из десятка разрозненных сервисов или открывать тысячи UDP портов на хостинге. Весь функционал упакован в один бинарный файл slyber-sfu, написанный на Go с использованием стека Pion WebRTC v4.

  • Работа через единый сетевой порт 4443 по UDP и TCP. Благодаря встроенному режиму ICE-Lite и мультиплексорам ICEUDPMux и ICETCPMux (стандарт RFC 4571) сервер принимает подключения тысяч участников на одном порту 4443. Если пользователь находится в корпоративной сети, где заблокирован протокол UDP, соединение автоматически устанавливается поверх TCP на том же самом порту. Для клиентов со сложным симметричным NAT сервер умеет автоматически выдавать временные учетные данные к внешнему Slyber TURN Server.
  • Умная адаптация качества видео (Simulcast, SVC и Auto-BWE). Отправитель может передавать видео сразу в трех слоях качества (низкое S0, среднее S1 и высокое S2). Модуль оценки канала SubscriberBWE анализирует отчеты TWCC, REMB и потери пакетов у каждого зрителя индивидуально. Зритель с быстрым Wi-Fi получает картинку 1080p, а пользователь со слабым 3G в метро автоматически переключается на легкий слой 270p без зависаний. Для каждого слоя видео работает отдельный кольцевой буфер PacketRingBuffer для мгновенной досылки потерянных пакетов по запросу NACK и независимый фильтр PLICoalescer, защищающий отправителя от шквала запросов ключевого кадра.
  • Экономия трафика в больших конференциях (RFC 6464 и Last-N) и мгновенный свап в рулетке. Детектор активного спикера анализирует громкость голоса по заголовкам RFC 6464 без расшифровки самого аудиопотока. В групповых звонках политика EnforceLastNVideo автоматически ставит на паузу видео от молчащих участников, экономя до 80 процентов трафика. А для анонимных чатов и видеорулеток один на один реализован метод FastSwapRouletteTrack, который переключает зрителя на нового собеседника менее чем за 1 миллисекунду с сохранением непрерывной нумерации пакетов через SeqTimestampRewriter без повторного обмена SDP.
  • Прямое подключение голосовых ИИ ботов через WebSocket шлюз (/ai/ws). Чтобы добавить в комнату голосового ассистента или команду ИИ агентов, вам не нужно поднимать WebRTC стек на Python или Node.js. Достаточно подключиться к сокету /ai/ws с секретным заголовком X-Slyber-Node-Secret. Сервер сам извлекает чистые Opus фреймы из микрофонов участников комнаты и передает их вашему боту, а ответную речь бота выравнивает встроенным таймером по 20 миллисекунд и транслирует в комнату. Если человек перебивает бота голосом, срабатывает детектор VAD Barge-In, который мгновенно очищает буфер несказанных фраз бота.
  • Вещание WHIP/WHEP, сквозное шифрование SFrame E2EE и каскадирование серверов. Ведущие могут запускать стримы напрямую из программы OBS Studio через эндпоинт /whip/{room}/{track}, а зрители подключаются за один сетевой запрос через /whep/{room}/{track}. Для конфиденциальных переговоров поддерживается проверка сквозного шифрования RFC 9605 SFrame с ротацией ключей MLS и окном защиты от повторов на 512 пакетов. А когда одной машины становится мало, шлюз /cascade/ позволяет связать несколько серверов между собой по протоколу UDP с криптографической подписью каждого пакета HMAC-SHA256.
Высокопроизводительный WebRTC SFU медиасервер на Go и Pion

Готовы запустить масштабируемые видеозвонки и стриминг на собственной инфраструктуре?

Забудьте про сложную настройку десятков тысяч UDP портов и тяжелые медиакомбайны. Разверните единый бинарный файл Slyber SFU Server с поддержкой Simulcast, VP9 SVC, WHIP/WHEP и шлюзом для голосовых ИИ ботов прямо сейчас.