Короткое определение

C-ориентированный универсальный шлюз WebRTC от Meetecho. Архитектура на основе плагинов: SFU, стриминг, запись и мостование – всё это реализовано в виде плагинов над общим ядром. Лицензия – GPL 3.0.

Janus (запущен в 2014 году) был одним из первых open-source WebRTC-серверов и до сих пор активно используется. В отличие от mediasoup или LiveKit, позиционирующих себя как SFU, Janus – это универсальный WebRTC-гейтвей с плагинной архитектурой: SFU – лишь один из плагинов (`videoroom`), наряду с one-way streaming (`streaming`), записью (`recordplay`), SIP-шлюзом (`sip`), TextRoom и другими. Благодаря этому Janus становится «швейцарским ножом» для проектов, которым нужна интеграция WebRTC с различными не-WebRTC-системами.

Janus написан на C ради производительности и поддерживает HTTP-, WebSocket- и Unix-socket API для управления. Работает в режиме одного процесса с worker-потоками – более традиционный подход по сравнению с моделью mediasoup, основанной на процессе на каждый процессор. Сообщество большое и активное; коммерческую поддержку обеспечивают Meetecho и партнёры. Крупные развёртывания – Slack Huddles, Linphone и множество телеком-решений для конференц-связи.

Сильные стороны Janus – гибкость (плагины на всё) и поддержка broadcast/стриминга. Слабые – более крутой learning curve по сравнению с LiveKit и менее дружелюбный к JavaScript API, чем у mediasoup. Для простого SFU на чистом WebRTC mediasoup или LiveKit обычно проще. А для сложных гибридных развёртываний – WebRTC + SIP + стриминг + запись – плагинная экосистема Janus трудно превзойти.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.