Одной из наиболее известных, если не самой известной, бесплатной платформой с открытым исходным кодом для организации онлайн конференций является BigBlueButton. Условно её можно назвать бесплатной заменой Zoom, которую можно поднять на своих серверах.
📌 Базовый функционал BigBlueButton:
◽ видео и аудио конференции в режиме реального времени
◽ проведение публичных презентаций
◽ чаты и опросы, сопровождающие конференции
◽ возможность показа рабочего стола выступающим
◽ запись конференций для последующего доступа к просмотру
В общем случае BigBlueButton ориентируется на сферу обучения. То есть это в первую очередь инструмент учебных заведений для проведения онлайн лекций. В этой роли лично я и видел отзывы о продукте, в том числе от знакомых, которые работают в учебных заведениях.
Продукт не сказать, что простой для установки и освоения. Очень много нюансов в плане потребления ресурсов, полосы пропускания, качества картинки, производительности и т.д. И дело тут не только в самой программе, сколько в тематике онлайн конференций. Это в целом технологичная и непростая отрасль.
С установкой и запуском базовой конфигурации особых проблем не будет. Продукт известный, в сети много руководств. Есть готовый bash скрипт для Ubuntu, который надо запустить, передав ему некоторые базовые параметры в виде домена и почтового ящика для учётной записи Let's Encrypt. Процесс подробно описан в документации. Установка будет выполнена с помощью deb пакетов из подключенного репозитория и кое-что будет запущено в Docker (greenlight — веб панель для управления).
Альтернативным вариантом установки может стать Ansible, с использованием которого написаны различные варианты разворачивания полной инфраструктуры. Например, вариант HA кластера, с PeerTube для стриминга, ELK для логов, Prometheus + Grafana для мониторинга — Ansible roles deploying BigBlueButton.
⇨ Сайт / Исходники / Документация / Demo
#видеоконференции
📌 Базовый функционал BigBlueButton:
◽ видео и аудио конференции в режиме реального времени
◽ проведение публичных презентаций
◽ чаты и опросы, сопровождающие конференции
◽ возможность показа рабочего стола выступающим
◽ запись конференций для последующего доступа к просмотру
В общем случае BigBlueButton ориентируется на сферу обучения. То есть это в первую очередь инструмент учебных заведений для проведения онлайн лекций. В этой роли лично я и видел отзывы о продукте, в том числе от знакомых, которые работают в учебных заведениях.
Продукт не сказать, что простой для установки и освоения. Очень много нюансов в плане потребления ресурсов, полосы пропускания, качества картинки, производительности и т.д. И дело тут не только в самой программе, сколько в тематике онлайн конференций. Это в целом технологичная и непростая отрасль.
С установкой и запуском базовой конфигурации особых проблем не будет. Продукт известный, в сети много руководств. Есть готовый bash скрипт для Ubuntu, который надо запустить, передав ему некоторые базовые параметры в виде домена и почтового ящика для учётной записи Let's Encrypt. Процесс подробно описан в документации. Установка будет выполнена с помощью deb пакетов из подключенного репозитория и кое-что будет запущено в Docker (greenlight — веб панель для управления).
Альтернативным вариантом установки может стать Ansible, с использованием которого написаны различные варианты разворачивания полной инфраструктуры. Например, вариант HA кластера, с PeerTube для стриминга, ELK для логов, Prometheus + Grafana для мониторинга — Ansible roles deploying BigBlueButton.
⇨ Сайт / Исходники / Документация / Demo
#видеоконференции
С момента начала пандемии резко возросла потребность в сервисах для аудио и видео встреч. И с тех пор этот сфера программных продуктов активно развивается. Среди open source проектов один из самых популярных - Jitsi. Он может работать как самостоятельный продукт, так и интегрироваться в состав других. К примеру, Rocket.Chat использует его в качестве внутренних видеозвонков, а так же чат сервер Matrix-Synapse.
Попробовать Jitsi можно как в публичном сервисе, так и развернув его у себя. Покажу, как это сделать на Debian 12. Проверил на этой версии, но инструкция будет актуальна для любого deb дистрибутива, так как используется общий репозиторий разработчиков.
Перед установкой я подготовил VPS с внешним IP адресом, создал для него DNS запись и прописал её в качестве hostname, чтобы можно было сразу получить бесплатный сертификат от Let's Encrypt.
Устанавливаем необходимые зависимости:
Подключаем репозиторий и импортируем его ключ:
Устанавливаем сервер Jitsi. Он, кстати, работает на Java:
В процессе установки вас попросят ввести полное FQDN имя сервера. А затем спросят, хотите ли вы получить сертификаты от Let's Encrypt. Если у вас с DNS всё в порядке, то заказывайте сертификаты, если нет, то выберите вариант с self signed.
Далее вся установка и настройка выполнятся автоматически. Проверить статус службы можно вот так:
Если всё в порядке, заходите по FQDN имени браузером, увидите свой сервер Jitsi с возможностью создать комнату для конференции. Если вас будет выкидывать из комнаты при подключении второго человека, то перезапустите службу:
Это, похоже, какой-то старый баг, описание, как и решение, которого я увидел в одном из issue в репозитории.
После установки сервер доступен для всех без аутентификации, как при создании конференции, так и подключении. Подозреваю, что вы не собираетесь делать его публичным, так что сразу настройте одну из аутентификаций. Описание есть в документации.
Можно настроить аутентификацию на создание конференций, а подключения к уже существующим комнатам позволить в том числе анонимным пользователям, если их подтвердит модератор, либо они будут знать пароль от комнаты. Jitsi поддерживает как внутреннюю аутентификацию (смотри настройку Prosody), так и внешнюю через LDAP.
По умолчанию Jitsi работает через Nginx, так что конфигурацию веб сервера или http логи смотреть надо в нём. А логи самого сервера живут в
⇨ Сайт / Исходники
💡Аналогом Jitsi можно считать тоже бесплатный open source проект BigBlueButton, про который я уже писал. Также можно воспользоваться бесплатной версией TrueConf Server Free с ограничением в 10 абонентов (считаются пользователи онлайн).
#видеоконференции
Попробовать Jitsi можно как в публичном сервисе, так и развернув его у себя. Покажу, как это сделать на Debian 12. Проверил на этой версии, но инструкция будет актуальна для любого deb дистрибутива, так как используется общий репозиторий разработчиков.
Перед установкой я подготовил VPS с внешним IP адресом, создал для него DNS запись и прописал её в качестве hostname, чтобы можно было сразу получить бесплатный сертификат от Let's Encrypt.
Устанавливаем необходимые зависимости:
# apt install apt-transport-https gnupg
Подключаем репозиторий и импортируем его ключ:
# echo 'deb https://download.jitsi.org stable/' \
| tee /etc/apt/sources.list.d/jitsi-stable.list
# wget -qO - https://download.jitsi.org/jitsi-key.gpg.key \
| apt-key add -
Устанавливаем сервер Jitsi. Он, кстати, работает на Java:
# apt update
# apt install jitsi-meet
В процессе установки вас попросят ввести полное FQDN имя сервера. А затем спросят, хотите ли вы получить сертификаты от Let's Encrypt. Если у вас с DNS всё в порядке, то заказывайте сертификаты, если нет, то выберите вариант с self signed.
Далее вся установка и настройка выполнятся автоматически. Проверить статус службы можно вот так:
# systemctl status jitsi-videobridge2
Если всё в порядке, заходите по FQDN имени браузером, увидите свой сервер Jitsi с возможностью создать комнату для конференции. Если вас будет выкидывать из комнаты при подключении второго человека, то перезапустите службу:
# systemctl restart jitsi-videobridge2
Это, похоже, какой-то старый баг, описание, как и решение, которого я увидел в одном из issue в репозитории.
После установки сервер доступен для всех без аутентификации, как при создании конференции, так и подключении. Подозреваю, что вы не собираетесь делать его публичным, так что сразу настройте одну из аутентификаций. Описание есть в документации.
Можно настроить аутентификацию на создание конференций, а подключения к уже существующим комнатам позволить в том числе анонимным пользователям, если их подтвердит модератор, либо они будут знать пароль от комнаты. Jitsi поддерживает как внутреннюю аутентификацию (смотри настройку Prosody), так и внешнюю через LDAP.
По умолчанию Jitsi работает через Nginx, так что конфигурацию веб сервера или http логи смотреть надо в нём. А логи самого сервера живут в
/var/log/jitsi/jvb.log
. ⇨ Сайт / Исходники
💡Аналогом Jitsi можно считать тоже бесплатный open source проект BigBlueButton, про который я уже писал. Также можно воспользоваться бесплатной версией TrueConf Server Free с ограничением в 10 абонентов (считаются пользователи онлайн).
#видеоконференции
С появлением open source технологии WebRTC связано создание огромного количества продуктов для онлайн разговоров и конференций через браузер. Практически все бесплатные продукты и множество платных построены на его базе. Среди них известный Яндекс.Телемост, Сферум от mail ru, self-hosted сервисы BigBlueButton и Jitsi, и многие другие.
Очень простым сервисом на основе WebRTC, который можно развернуть у себя буквально в несколько действий, является MiroTalk P2P. Его можно вообще не настраивать. По умолчанию всё заработает. Как он работает, можно посмотреть на публичном сервисе:
⇨ https://p2p.mirotalk.com
Локально он будет выглядеть один в один.
🟢 Основные возможности:
▪ Полный open source, никаких ограничений.
▪ Аутентификация пользователей, защита конференций паролем.
▪ Оптимизация под смартфоны.
▪ Шаринг экрана, приложения, вкладки браузера, в том числе прямой видео поток.
▪ Качество до 4K и 60 FPS.
▪ Запись конференций.
▪ Поддержка REST API.
На самом деле очень удобно и просто сделано. Я погонял и разговоры, и шаринг экрана, и работу на смартфонах. Тема с QR кодами для смартфонов удобна. Всё везде сразу заработало. Ничего качать, устанавливать, настраивать не надо. Кинул ссылку клиенту, он подключился бразуером.
Чтобы Mirotalk запустить у себя, достаточно воспользоваться инструкцией. Не буду её тут приводить. Я немного с ним поразбирался, поэтому запускал и в Docker, и напрямую через npm (Nodejs). MiroTalk написан на JavaScript.
В инструкции в том числе показано, как запустить сервис за прокси с помощью Nginx или Apache. Если будете так делать, то перепроверьте конфиги из руководства. Они неаккуратно сделаны с некоторыми очень неоптимальными настройками. Например, для редиректа с HTTP на HTTPS в Nginx используется if. Так делать не надо. А вот так надо.
Для тех, кто будет реально устанавливать и пробовать, дам подсказку. Современные браузеры запрещают доступ к микрофону и камере сайтам без HTTPS. MiroTalk можно запустить без шифрования, выбрав в
Я тестировал в локалке, соответственно STUN и TURN просто отключил. По умолчанию используются бесплатный сервер STUN от google и какой-то канадский TURN metered_ca, завязанный на учётку автора программы. Если хотите полностью независимый сервер с p2p между интернет клиентами, то можете поднять свои STUN и TURN серверы с помощью Coturn. Там настройка очень простая.
На картинке снизу я смартфон направил в окно, а у себя расшарил вкладку браузера.
⇨ Сайт / Исходники
#видеоконференции
Очень простым сервисом на основе WebRTC, который можно развернуть у себя буквально в несколько действий, является MiroTalk P2P. Его можно вообще не настраивать. По умолчанию всё заработает. Как он работает, можно посмотреть на публичном сервисе:
⇨ https://p2p.mirotalk.com
Локально он будет выглядеть один в один.
🟢 Основные возможности:
▪ Полный open source, никаких ограничений.
▪ Аутентификация пользователей, защита конференций паролем.
▪ Оптимизация под смартфоны.
▪ Шаринг экрана, приложения, вкладки браузера, в том числе прямой видео поток.
▪ Качество до 4K и 60 FPS.
▪ Запись конференций.
▪ Поддержка REST API.
На самом деле очень удобно и просто сделано. Я погонял и разговоры, и шаринг экрана, и работу на смартфонах. Тема с QR кодами для смартфонов удобна. Всё везде сразу заработало. Ничего качать, устанавливать, настраивать не надо. Кинул ссылку клиенту, он подключился бразуером.
Чтобы Mirotalk запустить у себя, достаточно воспользоваться инструкцией. Не буду её тут приводить. Я немного с ним поразбирался, поэтому запускал и в Docker, и напрямую через npm (Nodejs). MiroTalk написан на JavaScript.
В инструкции в том числе показано, как запустить сервис за прокси с помощью Nginx или Apache. Если будете так делать, то перепроверьте конфиги из руководства. Они неаккуратно сделаны с некоторыми очень неоптимальными настройками. Например, для редиректа с HTTP на HTTPS в Nginx используется if. Так делать не надо. А вот так надо.
Для тех, кто будет реально устанавливать и пробовать, дам подсказку. Современные браузеры запрещают доступ к микрофону и камере сайтам без HTTPS. MiroTalk можно запустить без шифрования, выбрав в
.env
настройку HTTPS=false
. Всё запустится без каких-либо ошибок. Но в браузере не будет выскакивать запрос на доступ к микрофону. Сервис, соответственно, работать не будет. Я долго возился с сервером, пока не понял, в чём дело и почему не работает. Достаточно включить HTTPS=true
и всё заведётся на самоподписанном сертификате. С ним браузеры будут работать. Я тестировал в локалке, соответственно STUN и TURN просто отключил. По умолчанию используются бесплатный сервер STUN от google и какой-то канадский TURN metered_ca, завязанный на учётку автора программы. Если хотите полностью независимый сервер с p2p между интернет клиентами, то можете поднять свои STUN и TURN серверы с помощью Coturn. Там настройка очень простая.
На картинке снизу я смартфон направил в окно, а у себя расшарил вкладку браузера.
⇨ Сайт / Исходники
#видеоконференции