by Vektor T13
ЭФИР · 500 мест

Вебинар, который понимает, что происходит.

Персональная платформа для ваших вебинаров. Один ведущий, приглашённые спикеры, до 500 зрителей — с живыми субтитрами, синхронными слайдами и AI, который слушает эфир. Полностью на вашем сервере. Без Vercel, без чужих облаков.

500зрителей на одном узле
~$5инфраструктура на эфир
<1.5сзадержка субтитров
100%self-hosted
Интерфейс эфира

Так выглядит комната

Сцена ведущего, плитки спикеров, чат и вопросы, живые субтитры, синхронизированные слайды и панель управления — в эстетике Tron: неон живёт на рамках, а не на пикселях видео.

Как устроен пассивный деанон в открытых сетях
ЭФИР ● REC 01:24:07 👁 487
VT
Vektor T13 Ведущий
Анна · со-спикер
✋→◍Гость (из зала)
Экран
RU→EN …so the passive observer never sends a single packet — it only listens to what the network already leaks.
Слайд 17 / 48 синхронно с ведущим
7
Плитка гостя из зала перекрашивается оранжевый → циан в момент повышения до спикера — это буквально «перепрошивка программы» из Tron и одновременно понятный статус: «теперь ты в эфире».
Дизайн-система

Свет Грида

Десатурированный тёмно-синий мир, освещённый только неоновыми линиями. Циан — протагонист, оранжевый — «противоборствующая программа» (действия ведущего). Насыщенный неон ≤10% экрана, чтобы глаза выдержали двухчасовой эфир.

Primary
#00E5FF · неон циан
13.0:1 AAA
Accent
#FFA02E · CLU orange
9.9:1 AAA
Primary Soft
#6FC3DF · металлик
заливки/линии
BG
#05080F · не #000
фон
Surface
#121C30 · карточки
панели
Success
#2EE6A6
12.4:1
Warning
#FFC94D
13.1:1
Danger
#FF5C6C
6.7:1 AA
DISPLAY · Russo One · кириллица ✓ проверено · лого, «ЭФИР», заголовки
Grid · Эфир начинается
ЗАГОЛОВКИ · Exo 2 · кириллица · секции, панели, модалки
Живые субтитры и синхронный перевод
ТЕКСТ / UI · Inter · кириллица · чат, интерфейс, субтитры
Пять временно подключённых спикеров, 487 зрителей, массовый поток сообщений в чат — интерфейс читается спокойно два часа подряд.
МОНО · JetBrains Mono · кириллица · таймеры, счётчики, ключи
17 / 48 · REC 01:24:07 · 487 online · 0.7 Гбит/с

Неон-свечение

Только заголовки, бейджи и акценты. Никакого glow на чате, субтитрах и длинном тексте — размытые края режут скорость чтения.

Стекло с умом

backdrop-filter только над статичным фоном (чат, модалки). Над видео — сплошная плашка rgba(5,8,15,.82), иначе пер-кадровый GPU-налог поверх декодирования.

Сетка-пол и сканлайны

Перспективная сетка Tron и сканлайны — только на лобби и финальном экране, opacity ≤ .04, никогда над видео (муар с артефактами кодека).

Срезанные углы

clip-path на кнопках и активной плитке — фирменный киберпанк-силуэт, практически бесплатный в рендере.

Одна живая анимация

Пульсирует только точка LIVE. Остальное — переходы 150–250 мс на смену состояния. prefers-reduced-motion уважается.

Кириллица — self-hosted

Все woff2 (латиница+кириллица) на своём сервере, font-display: swap. fonts.googleapis.com у части RU-аудитории режется — зависимости нет.

План внедрения

Шесть фаз до живого эфира и дальше

На базе LiveKit — свой WebRTC-медиасервер писать не нужно. Порядок фаз выстроен по риску: сначала снимаем самые опасные неизвестные (мобильные, reconnect, нагрузка), потом строим контент и AI. Реалистичный срок до первого настоящего вебинара на 500 человек — ~2–2.5 месяца.

ФАЗА 0

Прототип

2–4 дня

LiveKit v1.13.x через официальный docker-compose (Caddy + авто-TLS + встроенный TURN). Тестовый звонок с телефона и десктопа. Первая проба нагрузки lk load-test.

ФАЗА 1

Ядро вебинара · MVP

4–6 недель

Самая рискованная фаза: здесь мобильные браузеры, reconnect и модерация.

  • Вход зрителя по подписанной ссылке + имя, гейт «нажмите для звука» (iOS autoplay)
  • Роли host/moderator/speaker/attendee, «поднять руку» → повышение до спикера
  • Чат + отдельные Вопросы с апвоутами, модерация (kick/ban/slow mode/мьют)
  • Snapshot-эндпоинт состояния для входа и reconnect
  • Тест на iOS Safari + бюджетном Android — критерий выхода фазы
ФАЗА 1.5

Нагрузка и надёжность

1–2 недели

До контент-фич, не после. Проверяем 500 подписчиков на одном узле через реальные NAT.

  • lk load-test: 100 → 300 → 600–700 подписчиков, смотрим CPU / NIC / packet loss
  • TURN/TLS:443 из мобильных и корпоративных сетей, мониторинг ICE-фейлов
  • Prometheus + Grafana, раннбук «падение SFU → рестарт < 60 с → авто-rejoin»
ФАЗА 2

Контент: запись → слайды → видео

3–5 недель

По риску: запись (самая капризная) первой, синхронное видео последним.

  • Egress RoomComposite (наш UI) → MP4/HLS → Spaces + локальный OBS-бэкап
  • PPTX → LibreOffice → PDF → WebP @2x, синхронизация номером слайда + snapshot
  • Синхронное видео: сервер-авторитетный таймлайн, коррекция дрейфа через playbackRate
🚦 ГЕЙТ

Репетиционный эфир

обязателен

Дружеский эфир на 50–100 человек на продовой инфре: запись включена, SFU намеренно убиваем — смотрим reconnect. Критерий запуска первого вебинара — пройденная репетиция, а не «фичи готовы».

ФАЗА 3

AI v1: субтитры и перевод

3–4 недели

LiveKit Agents (Python 1.6.x): аудио ведущего → STT → субтитры → перевод.

  • STT за интерфейсом провайдера: ElevenLabs Scribe v2 / Deepgram Nova-3 (RU «excellent»); self-hosted faster-whisper на GPU-droplet как суверенный вариант
  • Перевод субтитров дешёвым LLM + словарь терминов, задержка 0.8–1.5 с
  • Шумодав: браузерный noiseSuppression + тумблер DTLN (замена Krisp для self-hosted)
ФАЗА 4

AI v2: пост-ивент продукты

4–6 недель

Всё на транскриптах Фазы 3: конспект с таймкодами, умные закладки, AI-группировка вопросов, RAG-ассистент (pgvector + BGE-M3 для кириллицы), авто-нарезка клипов.

ФАЗА 5

Продвинутое · по спросу

позже

Голосовой перевод RU→иностранные (русского голоса на выходе пока нет ни у кого), живой RAG каждому зрителю, пульс аудитории, ветвящиеся вебинары, автовебинар 24/7, per-event Terraform.

Инфраструктура · DigitalOcean, июль 2026

Дёшево, потому что эфир — по требованию

Маленький постоянный контур + мощный SFU, который поднимается под эфир и уничтожается после. Посекундный биллинг (с 01.01.2026) делает трёхчасовой эфир почти бесплатным по инфраструктуре.

Постоянно включено · ~$60–110/мес

КомпонентТариф$/мес
App (API+UI+worker)s-4vcpu-8gb56
PostgreSQL + pgvector1 GiB15.15
Valkey (кэш)1 GiB15
Spaces + CDN250 GiB / 1 TiB5

На каждый эфир · ~$5–20

КомпонентТариф~4ч
SFU (10 Гбит/с!)c-16-intel Premium2.9
Egress (запись)c-8-intel1.3
GPU для STT (опция)RTX 4000 Ada3.0
AI-API субтитры+перевод1–10
Важно: обычный droplet ограничен 2 Гбит/с — впритык для 500 зрителей (пик ~0.75–1.25 Гбит/с). Нужен Premium Intel с 10 Гбит/с. И между эфирами SFU надо уничтожать, а не выключать — выключенный тарифицируется полностью.
AI-слой

Grid слушает эфир

Не «ещё один Zoom», а вебинар, который понимает речь, вопросы и внимание зала — помогает ведущему в прямом эфире и делает контент после.

🗣 Живые субтитры + перевод

Речь ведущего → распознавание один раз → перевод на нужные языки. Зритель выбирает язык субтитров. Задержка <1.5 с.

🎧 Чистый звук

Браузерное эхо/шумоподавление + опциональный DTLN. Звук очищается до отправки в сеть — чисто для всех: зрителей, записи и распознавания.

🤖 AI-группировка вопросов

«43 человека спрашивают про X» вместо 300 сообщений. Дедуп, ранжирование, черновик ответа для ведущего.

📝 Конспект с таймкодами

Автоглавы, тезисы, упомянутые инструменты, ссылки — интерактивная страница вместо двухчасового видео.

🔖 Умные закладки

Зритель жмёт «сохранить момент» → личный список с таймкодами, скрином слайда и фрагментом расшифровки.

💬 RAG-ассистент

«Что я пропустил?», «объясни последний слайд» — ответы только по расшифровке, слайдам и базе знаний автора. Эмбеддинги BGE-M3 — сильнее на кириллице.

✂️ Авто-нарезка клипов

Система находит лучшие моменты по смыслу и всплескам реакций — вертикальные Shorts, цитаты, посты из одного эфира.

📊 Пульс аудитории

Анонимные кнопки «понятно / нужен пример / слишком быстро» + агрегированное внимание зала для ведущего.