Jitsi Meet
Open-source платформа видеоконференций на WebRTC: работает в браузере без установки и разворачивается на своём сервере.
Что такое Jitsi Meet
Jitsi Meet — платформа видеоконференций с открытым исходным кодом под лицензией Apache 2.0. Участник открывает ссылку в браузере и попадает в конференцию: ни аккаунта, ни установки клиента не нужно. Всё работает на WebRTC.
Ключевое отличие от Zoom и Google Meet — Jitsi можно поднять на собственном сервере целиком. Тогда медиапоток не проходит через чужую инфраструктуру, и это единственная причина, по которой большинство и связывается с самостоятельным развёртыванием.
Публичный инстанс meet.jit.si доступен бесплатно и без регистрации — им пользуются как обычным сервисом, не разворачивая ничего. Разработку ведёт компания 8x8.
Из чего состоит
Jitsi — не одна программа, а набор сервисов, и понимать их роли нужно до установки:
| Компонент | Роль |
|---|---|
| Jitsi Meet | веб-интерфейс в браузере |
| Prosody | XMPP-сервер: сигнализация, кто в комнате, кто говорит |
| Jicofo | Conference Focus: управляет конференцией и раздаёт участников бриджам |
| JVB (Videobridge) | сердце системы: маршрутизирует медиапотоки |
| Jibri | запись конференции и трансляция по RTMP |
| Jigasi | шлюз в SIP — вход в конференцию с телефона |
SFU: почему сервер не задыхается
Jitsi Videobridge работает как SFU — Selective Forwarding Unit. Он не микширует видео: каждый участник отправляет свой поток один раз, а бридж просто пересылает его остальным. Перекодирования нет.
Отсюда главный практический вывод: упор идёт в сетевой канал, а не в CPU. Считать нужно пропускную способность канала, а не ядра. GPU для Jitsi не нужен вовсе — его нечем занять там, где никто не кодирует видео.
Трафик растёт квадратично: в конференции из N человек бридж принимает N потоков и отдаёт до N×(N−1). Поэтому в больших конференциях включаются simulcast (клиент шлёт несколько качеств, бридж выбирает подходящее для каждого получателя) и last-N (передаются только последние говорившие, остальные — статикой).
Исключение по нагрузке — Jibri: он запускает headless-браузер и пишет картинку через ffmpeg, то есть кодирует по-настоящему. Jibri прожорлив по CPU, ставится на отдельную машину, и один процесс пишет одну конференцию.
Сеть — где ломается чаще всего
Самостоятельная установка Jitsi обычно упирается не в сам Jitsi, а в сеть:
- 10000/UDP — медиатрафик JVB. Порт должен быть открыт, и это UDP. Если он закрыт, конференция «подключается» и рассыпается: сигнализация по 443 прошла, медиа — нет.
- 443/TCP — веб-интерфейс и fallback для медиа, когда UDP недоступен у клиента.
- NAT — если VPS за NAT и видит только приватный IP-адрес, нужно явно указать бриджу его внешний адрес, иначе он раздаст участникам нерабочие кандидаты:
org.jitsi.videobridge.NAT_HARVESTER_LOCAL_ADDRESS=10.0.0.5
org.jitsi.videobridge.NAT_HARVESTER_PUBLIC_ADDRESS=203.0.113.10
- Задержка канала важнее его ширины. Для видеосвязи latency и джиттер решают больше, чем гигабиты: сервер стоит размещать географически ближе к участникам.
Установка
Официальный путь — пакеты Debian из репозитория Jitsi (apt install jitsi-meet) или docker-jitsi-meet для Docker. Инсталлятор сам поднимет все компоненты, попросит доменное имя и получит SSL-сертификат Let's Encrypt.
До установки понадобятся: домен с A-записью на сервер, публичный IP и открытые 443/TCP и 10000/UDP.
По умолчанию комнату может создать любой, кто знает адрес, — имя комнаты и есть весь «пароль». Для корпоративной установки первым делом включают аутентификацию (prosody internal auth или OIDC-связка с внешним провайдером) и enableGuestDomain, иначе ваш сервер быстро станет чужой бесплатной переговоркой.
Шифрование: важная оговорка
Трафик всегда шифруется на участке клиент—сервер (DTLS-SRTP). Но SFU по своей природе видит потоки в открытом виде — иначе он не смог бы ими управлять. Настоящее сквозное шифрование (E2EE) в Jitsi есть, но включается отдельно и накладывает ограничения на функциональность.
Вывод: конфиденциальность при self-hosting обеспечивается прежде всего тем, что сервер ваш, а не тем, что данные недоступны серверу.
Связанные термины
- TCP и UDP — почему медиа идёт по UDP, а не по TCP
- NAT — главный источник проблем при развёртывании
- latency — определяет качество связи сильнее ширины канала
- OBS — подключается к Jitsi как виртуальная камера
- Rocket.Chat — мессенджер, в который Jitsi встраивают для звонков
- VPS — где обычно разворачивают свой инстанс
Готовы запустить GPU-задачу?
Запустить GPU-сервер