Pull to refresh

Comments 45

Спасибо, на мой взгляд, очень полезное дело делаете.

Возился с jibri не так давно, тоже поплясать пришлось с конфигами и попереписываться с разработчиками. Есть ньюансы, не прописанные в мануалах. Дочитаю весь ваш цикл и отпишусь, чтобы не бежать впереди паровоза.
Есть один вопрос, напишите конфигурацию железа, на котором все это работает и точные версии сервисов. Спасибо.

root@matrix:~# dpkg -l |grep jitsi
ii  jitsi-meet             2.0.5142-1           all    WebRTC JavaScript video conferences
ii  jitsi-meet-prosody     1.0.4466-1           all    Prosody configuration for Jitsi Meet
ii  jitsi-meet-web         1.0.4466-1           all    WebRTC JavaScript video conferences
ii  jitsi-meet-web-config  1.0.4466-1           all    Configuration for web serving of Jitsi Meet
ii  jitsi-videobridge2     2.1-376-g9f12bfe2-1  all    WebRTC compatible Selective Forwarding Unit (SFU)


root@Jibri:~# dpkg -l |grep jibri
ii  jibri                   8.0-61-g99288dc-1                 all          Jibri


Jitsi и Jibri на виртуалках в VMware со следующими характеристиками:
2 ЦП по 4 ядра и 8 ГБ RAM
Железный сервер имеет следующие характеристики:
Процессор: Intel® Xeon® CPU E5-26200
2 ЦП по 6 ядер с частотой 2.0ГГц
Какое то время назад, поставили мне задачу поднять систему видеоконференций, но с модерацией. К сожаления, всем хорош был Jitsi, кроме этой самой модерации (кого выводим на главное окно, принудительное переключение между пользователями, дистанционное управление аудиопотоками (мьют/соло) на клиенской стороне. Впрочем, как и в большинстве других открытых или бесплатных решений, присутствоваших на тот момент. В итоге самым приемлемым, хотя и немного корявым оказалось решение от OpenMCU. Как сейчас с этим вопросом в Jitsi?
Сейчас есть такие опции, админ конференции может запаролить конференцию, заставить всех задать себе имя (если аутентификации через сторонние сервисы нет) — функция «лобби»; «следовать за мной» — администратор регулирует то, что видят другие участники, отключить звук и камеру у участников конференции, предоставить право голоса и т.д.
Это всё хорошо, но это администрирование! Я же про модерацию именно в ходе конференции. В OpenMCU, пусть и коряво, но есть возможность напрямую управлять внешним видом экрана, что и как видят все участники. То есть, кого ставить на первый план, кого принудительно отключить. Можно управлять кто отображается в уменьшенных форматах на основном экране и т.д. И всё это с помощью GUI в реальном времени! Плюс ещё есть такая возможность как виртуальные комнаты, которые позволяют заранее сформировать разные пулы трансляции, и переключаться между ними в ходе конференции.
Очень жаль, что проект фактически заброшен, так как по отношению к остальным бесплатным, он имел много функционала нужного при большом количестве участников.
в ходе конфы админ сожет все это регулировать. вы чтото путаете…
юзер смотрит то, что админ настроил.
Видимо, вам не приходилось именно модерировать конференцию, иначе бы вам разница была понятна.

Спасибо за статью, можно ли в jitsi настроить доступ через доменную авторизацию?

вроде можно, он LDAP умеет

# Select authentication type: internal, jwt or ldap
AUTH_TYPE=jwt


а ещё весь этот комбайн в докере умеет работать.

Самое главное разочарование с Jitsi — не смог осилить аутентификацию через OIDC (oauth через Gitlab или Google G.suite). Приходится прикрывать колхозным паролем от мира.

UFO just landed and posted this here
На самом деле сложно, особенно если шаг влево или шаг вправо от стандартной инсталляции.
Сходу примеры.
1. Сервер под NAT, настроили, живем, но изредка падает videobridge в невразумительной ошибкой, и что печально, падает во время важных мероприятий. Месяц бились, нашли на форуме разрабов, что есть одна ни фига не документированная опция, с которой они у себя гоняют тестовую среду и поэтому воспроизвести проблему не могут. Прописали, полет норм уже месяцев 6, ни единого разрыва…
2. Понадобилось включить stun/turn. Все по докам и по coturn chronicles. Не работает. Тоже еле-еле на форуме нашел, что в случае включенной авторизации, надо еще пару вещей в конфиг prosody добавить.
И вот так во всём с этим джитсиком :(

Ато что конкретно прописали п.1 и п.2?

Подымал как то для нужд конторы, что узнал:
— есть ограничение на кол-во одновременно работающих в одной конфе людей — 50, если не ошибаюсь. При попытке больше подключиться — выкидывает других.
— также можно масштабировать на несколько серверов — туда будут новые комнаты перекидываться, нагрузка автоматом регулируется в зависимости от нагрузки ноды.
— также можно настроить трансляцию на ютубчик, если народу более 50 чел.

Есть клиент под андроид, работает приемлемо.
Есть клиент и под ios.
Про ограничения вы ошибаетесь, все зависит от того, сколько сервер выдержит. Про масштабирование вы правы (Я писал, что об этом будет вторая статья). Транслировать или записывать видео помогает сервис Jibri, но ограничений по количеству человеков нет.
Вы не поняли — оно не заложено программно, просто больше не тянет движок. Авторы обещали оптимизировать…
Не стану спорить, не довелось еще проверить на 50+ человек.(
Зависит не только от сервера. Jitsi гоняет кучу служебной инфы. Часть этого можно подрезать в конфигах, типа инфы о качестве соединения и прочих не сильно нужных красявостей.
Проверяли на своем сетапе. Стабильно тянет 120-150 человек онлайн. Дальше начинают отваливаться рандомно юзеры на хреновом вайфае (а-ля роутер за 3-4 стены от клиента).
Если есть мобильные клиенты, то немного печальнее. Старые девайсы превращаются в печки, лагают и отваливаются, если больше 50 участников. Современные при 80, т.к. им похоже тупо мобильного канала не хватает.
Ну и все это проводим при условии, что мик и видео вырублены у всех кроме 1-2 выступающих/модеров.

а какие варианты есть для трансляции видеопотока с webrtc больше 20ти людям? на данный момент все упирается в bandwith меш сети. Я так понимаю надо использвать медиасервер типа Jibrі, писать видеопоток, а потом отдавать всем?

Jibri умеет писать и потом видеофайл можно отдать всем. Я сам не пробовал, но он так же умеет транслировать сразу куда-то конфу, например на YouTube.

UFO just landed and posted this here
Я ставил целью показать как и куда все подключается отсюда и стрелочки. Ну и цель статьи дать мануал по настройке (тут еще много можно настраивать и крутить для получения лучшего функционала) для того, чтобы работало для самых неискушенных и не слишком требовательных человеков. Раскрывать все тайны работы сервиса не мой конек. Однако благодарю за комментарий.)
UFO just landed and posted this here
Тогда прошу прощение, я не понял вас. В час ночи уже думал о том, как буду спать)
Подымал по весне 2020, когда пошёл массовый исход на удаленку. Сервер за NAT, доступен снаружи. Прикрутил авторизацию виндового домена.

Не рассматривали rocket.chat в плане как он работает с видеоконференциями? Они внедрили к себе сервисы jitsi.

Ага. Создает конфу и открывает ее в масеньком фрейме или в новом окне. Не сказать что прям огонь интеграция, не сильно отличается от «скинуть урл конфы в чат», но хоть так…
Прикручивал rocket.chat + jitsi.
Можно по jwt-token-ам или просто по паролю\без пароля.

Выше кто-то писал про проблемы при 50+ человек одновременно. В конфигах Джитси гибко регулируется min, ideal, maх разрешение для видеопотока.

cat /etc/jitsi/meet/name-config.js
...
// Sets the preferred resolution (height) for local video. Defaults to 720.
// resolution: 720,
// resolution: 480,
// resolution: 240,
resolution: 180,
maxFps: 15,

constraints: {
video: {
aspectRatio: 16 / 9,
frameRate: {
max: 15
},
height: {
ideal: 180,
max: 180,
min: 180

}
}
},

...

// https://community.jitsi.org/t/performance-optimization-jitsi-with-separate-videobridges-rather-poor-quality/31699/8
//My users are helped a-lot by disable measuring audio levels and rendering of the blue “i am talking dots”
//This setting along reduces CPU load on slower client computers 70% and will improve audio performance.
//A lot of the errors you see in the server log originate from overloaded client computers.
disableAudioLevels: true,
...


Вообще, в конфигах у Джитси много всего интересного (и с комментариями, что приятно). Покопайтесь.

Зы. Про jibri (запись конференций)
Install recording fot Jitsi devopstales.github.io/home/jitsi-jibri
Set Up Jibri for Jitsi Recording/Streaming nerdonthestreet.com/s/15

Зы2. Есть же еще Apache Openmeetings (недавно 5-ка зарелизилась на html5 www.opennet.ru/opennews/art.shtml?num=53645) и bigbluebutton (bbb, существует скрипт для установки на убунту 16). Вот у этих обоих и админка имеется.
Спасибо автору за хороший материал, документация по jitsi и его микросервисам действительно разбросана по многим местам и, если хоть немного отойти от типовых конфигураций, то можно встрять на долгие часы разбора и поиска информации.

Примерно в одно время с автором я разворачивал и настраивал связку jitsi+jibri, но к разработчикам и форуму сообщества обратился только сейчас, когда дело дошло до включения функциональности видео sip шлюза в jibri.
Если будут какие-то подвижки в этом вопросе — постараюсь изложить свой опыт по настройке этой функциональности здесь.
К слову, sip-шлюза с видео нет и в облачном «jitsi as a service».
UFO just landed and posted this here

Кто сможет подсказать, Jitsi на смартфонах не хочет фнукционировать? Куда можно копать?

В вебе или приложение?

Именно в приложении . Веб-версия работает.

Сертификаты ssl нужны и все заработает.

Если внимательно прочитать статью, то в ней говорится об этом

В процессе установки будет запрошен IP сервера или его dns имя. Если сервер должен работать с мобильными приложениями, то должно быть dns имя и ssl сертификат. Далее утилита спросит про сертификат ( первый вариант применим для автоматического подписания сертификата, при условии что IP адрес белый и есть dns-имя, второй – если уже есть сертификат, но тогда надо будет еще указать пути, где лежат сертификаты). Важное замечание: для подключения андроид устройств нужно добавить третий сертификат и прописать к нему путь в apache/nginx.

Да, спасибо. Перечитал, переустановил и вроде-бы все запустилось.

Теперь остается разобраться, почему jibri не пишет и даже из меню пропала кнопка "записи" ))))

Кнопка пропала, потому что эту функцию надо включить в конфиге джитси. А Jibri может не работать по многим причинам от слабого сервера, до неправильных/неполных настроек Jibri/Jitsi. Если внимательно будуте идти по ману, то все получится!

Прошелся уже несколько раз.

Лог выдает такую инфу:

WARNING: [28] [hostname=webrtc..com id=..com] MucClient.lambdagetConnectAndLoginCallable8#642: Failed >
INFO: [28] [hostname=..com id=..com] MucClient2.connectionClosed#316: Closed.INFO: [28] [hostname=webrtc..com id=webrtc..com] MucClie2.connected#304: Connected.
INFO: [28] [hostname=..com id=..com] MucClient.lambdagetConnectAndLoginCallable8#628: Logging in.
WARNING: [28] [hostname=..com id=..com] MucClient.lambdagetConnectAndLoginCallable8#642: Failed >
INFO: [28] [hostname=..com id=..com] MucClient$2.connectionClosed#316: Closed.

В консоли браузера при нажатии на запись выдает следующее:

Я таки победил.

Решение в следующем:

нужно обязательно проверить заполненные поля созданного пользователя jibri в conf файлах. Ошибка закраласть в том, что я вместо jibri пользователя прописал jibri@.....com при установке. /etc/jitsi/jibri/jibri.conf

Поздравляю) По себе знаю, как неприятно долго колупаться над какой-то проблемой, а в итоге она оказывается в мелочи.

Да, пришлось пройтись несколько раз по всему процессу, всем конфигам )

Sign up to leave a comment.

Articles