Архитектурный сдвиг: переход на Multistream
Основной веткой репозитория meetecho/janus-gateway теперь стала версия с поддержкой multistream. Это не просто обновление, а фундаментальное изменение архитектуры, позволяющее серверу эффективнее обрабатывать множество медиапотоков одновременно. Пользователям старой версии (0.x, «legacy») рекомендуется мигрировать, так как поддержка legacy-ветки вынесена в отдельный репозиторий.
Ключевые зависимости и требования к среде
Janus — это C-библиотека, требующая тщательной настройки окружения. Официальная поддержка распространяется на Linux и MacOS. Для Windows проект не предоставляет нативных бинарников (.exe), утверждая, что любые такие сборки являются неофициальными и не поддерживаются. Единственный рабочий вариант для Windows — использование Windows Subsystem for Linux (WSL).
Базовый стек зависимостей включает:
- GLib, zlib, pkg-config: фундаментальные библиотеки.
- Jansson, libconfig: для работы с JSON и конфигурационными файлами.
- libnice: STUN/TURN клиент. Рекомендуется версия 0.1.18 (минимум 0.1.16). Важно: штатные пакеты Ubuntu часто содержат устаревшую версию, вызывающую сбои, поэтому разработчики рекомендуют компилировать libnice из исходников (master).
- OpenSSL: минимум v1.0.1e. Также поддерживается BoringSSL (от Google) для получения преимуществ оптимизации DTLS-таймаутов.
- libsrtp: критически важна версия 2.x. Версии 1.4.x известны проблемами с WebRTC. При сборке обязательно использовать флаг
--enable-opensslдля поддержки AES-GCM.
Опциональные модули и плагины
Гибкость Janus достигается за счет плагинов, каждый из которых требует своих зависимостей. Ниже приведена сводка по ключевым расширениям:
| Функционал | Необходимая библиотека | Примечание |
|---|---|---|
| Data Channels | usrsctp | Обычно отсутствует в репозиториях, требует ручной сборки. |
| REST API | libmicrohttpd | Минимум v0.9.59. |
| WebSockets | libwebsockets | Минимум v4.x. Требует cmake для сборки. |
| SIP-шлюз | Sofia-SIP | Для интеграции с телефонными сетями. |
| Аудиомосты | libopus, libogg | Для плагина AudioBridge и записи медиа. |
| RTSP/Streaming | libcurl | Для плагина Streaming и Event Handler. |
| MQTT/RabbitMQ | paho.mqtt.c / rabbitmq-c | Для событийной шины и интеграции с брокерами. |
Рекомендации по сборке
Процесс установки требует внимания к деталям. Например, при использовании x86_64 систем может потребоваться явное указание пути к библиотекам через --libdir=/usr/lib64. Если вы решите использовать BoringSSL вместо OpenSSL, необходимо установить его в /opt/boringssl и передать флаг --enable-boringssl при конфигурации Janus. Также для новых версий BoringSSL может потребоваться установка переменной CCLD=c++ для корректной линковки.
Проект активно развивается через GitHub. Сообщество Meetecho настоятельно рекомендует читать гайды перед созданием issue, а для обсуждения использовать официальный Community-канал.
Источник: Github ↗
