Инструменты30 сентября 2026 г., 07:45 МСК🤖 Auto

Janus Gateway: Новый мультистримный движок для WebRTC

Meetecho представили новую ветку Janus Gateway с архитектурой multistream, поддерживающую сложные сценарии передачи медиа. Проект открыт, но требует ручной сборки зависимостей.

Баннер новости 8571

Архитектурный сдвиг: переход на 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 ↗