Наш опыт проведения видео-конференции с помощью Jitsi Meet

Недавно мы обеспечивали видео-связь на конференции наших товарищей. Хочется поделиться полученным опытом.

В конференции участвовали около 10-15 человек лично, и от 3 до 5 удалённо. В качестве инструмента был выбран Jitsi Meet и его демонстрационная инсталляция. Это полностью свободное программное обеспечение, предлагающее функционал видеоконференций. Оно работает через веб-браузер. Также допускается установка всего необходимого для связи ПО исключительно на своих мощностях, что позволяет обеспечить автономность и приватность.

Как это работает

Jitsi Meet — это веб-приложение, которое использует протокол WebRTC в качестве фронтэнда, а Jitsi Videobridge в качестве бэкэнда.

В качестве контрольного канала используется XMPP, а медиа-данные маршрутизируются через Videobridge. Для доступа к камере и микрофону используются возможности WebRTC, что позволяет использовать в качестве клиента современный браузер и обойтись без установки ПО на компьютеры клиентов, и дает возможность подключиться к конференции, используя обычную гиперссылку. Благодаря использованию Videobridge, требования к каналу у хоста конференции остаются низкими, потому что медиапоток доставляется на Videobridge, а он сам уже занимается рассылкой потока по остальным участникам.

Что у нас получилось

В процессе мы столкнулись с двумя основными проблемами: неудобство и глюки веб интерфейса Jitsi Meet, особенно сильно оказывающие влияние на хоста конференции и проблемы с интернет каналом.

Мы разослали ссылку на конференцию участникам, подключение участников происходило без трудностей, люди видели видео и слышали аудио, мы могли видеть и слышать их. Конференция шла два дня. В первый день мы использовали Firefox для хоста, а также в первый день мы работали в режиме трансляции только звука. Мы столкнулись с ужасно неприятной проблемой, которая заключается в том, что когда хост отключает микрофон участнику, включить микрофон обратно становится невозможным до тех пор, пока участник не переподключится. Это был известный и исправленный баг, но исправление не успело попасть в стабильную версию, установленную на meet.jit.si. По этой причине, на второй день мы перешли на Chromium. Там этой проблемы не было, но мы начали транслировать видео, и там была похожая проблема, которая заключается в том, что если камера с нашей стороны отключалась из веб-интерфейса, включить ее обратно уже не получалось. Это тоже известный и исправленный баг, но он опять же не был внесен на стабильную ветку. Это было еще более неприятно, поскольку требовало пересоздания конференции. Наши бедные участники были вынуждены мигрировать на новую конференцию каждый раз, когда такое происходило.

Из других особенностей веб-интерфейса, которые скорее всего не столько ошибки, сколько недоработки в функционале. Во-первых полностью отсутствует система управления правами в конференции. Права владельца даются создавшему конференцию, и если вдруг он по какой-то причине отключается (например, даже просто обновляя страницу) права начинают вести себя непредсказуемо. Иногда они отдавались другому участнику, а иногда возвращались обратно. Закрепить права за конкретным участником возможности нет. Передать права тоже возможности нет. Это было одной из причин, вызвавших необходимость пересоздавать конференцию каждый раз, когда что-то шло не так. А помимо вышеописанных случаев, когда что-то шло не так, были еще ситуации, связанные с горячими клавишами в конференции. В конфе есть текстовое окно для чата. Вне текстового окна нажатия клавиш обрабатываются как горячие, и имеют свой эффект, например отключение микрофона. Напомню, что клавиша Backspace в браузере обрабатывается как переход назад, что эквивалентно выходу из конференции (скорее всего, с потерей прав хоста). Надо ли говорить, что достаточно легко было случайно нажать клавишу, забыв переключить фокус на текстовое окно. Никакого подтверждения о покидании конференции приложение не предлагает, что с учетом других проблем просто катастрофа.

Другой проблемой, не связанной с софтом как таковым, были проблемы интернет-канала. По дизайну, при использовании Jitsi Videobridge для конференции большой канал не нужен, поскольку требуется только передавать потоки на сервер и с сервера, и не нужно рассылать их всем. Но это нас не спасло. Изначально мы использовали WiFi соединение помещения, в котором мы работали, и это было ошибкой, поскольку в этой ситуации нам совершенно не гарантировалось соблюдение минимально необходимой пропускной способности. Вероятно, в какие-то моменты непричастные к конференции начинали использовать то же подключение, и наша скорость проваливалась. В дальнейшем мы перешли на использование мобильного 3G подключения через телефон. Стало лучше на какое-то время, но в дальнейшем были проседания в пропускной способности и с ним.

Что можно поменять в следующий раз

Помимо доработки самого веб-интерфейса Jitsi Meet с учетом описанных проблем, можно попробовать хостить конференцию используя стандартный Jitsi. Судя по рассказу разработчиков, Videobridge реализован таким образом, чтобы не быть привязанным именно к Jitsi Meet и работает по достаточно стандартизованным протоколам, поэтому вероятно, что удастся использовать альтернативные приложения в той же самой инфраструктуре.

Помимо этого было бы интересно использовать свою собственную установку Jitsi Meet и Videobridge, поскольку тогда используемая версия была бы под нашим контролем и мы могли бы позволить себе использовать последнюю версию с исправленными ошибками, и даже внести собственные доработки. Плюс это важно с точки зрения приватности, поскольку по дизайну Videobridge имеет доступ к незашифрованному медиапотоку.

Что касается интернет канала, хотелось бы иметь резервные каналы передачи и возможность быстро переключаться между ними. В идеале — одновременное дублирование потока по нескольким каналам. Думаю, что в данный момент это скорее всего нереализуемо из-за ограничений софта. Хотя это важно, поскольку канал с гарантированной пропускной способностью в наших условиях это редкодоступная роскошь.

Вывод

Jitsi Meet и его инсталляция на meet.jit.si в целом справились со своей задачей и обеспечили удаленную связь для конференции, хотя и ценой множества неудобств и нервов. Перспектива у данного инструмента есть, если провести работу над исправлением описанных замечаний.

Как мы всю ночь играли в открытые и свободные игры

2colours_ready_smallВ ночь с 7 на 8 ноября в московском хакспейсе «Нейрон» прошла «Ночь свободных компьютерных игр», организованная Московской Либертарной Технической Группой.IMG_3992

Сначала выступил представитель хакспейса, рассказавший об этом новом для Москвы заведении.

Затем представитель МЛТГ Сеня выступил с обзором существующих свободных компьютерных игр. (Слайды презентации).

IMG_3995Следующие приблизительно 40 минут после выступления были выделены на общение участников и подготовку к игре. Участники знакомились, помогали друг другу устанавливать игры. Например, были сложности с запуском игры Xonotic на компьютере с Windows 8, которые были решены при помощи запуска Xonotic с LiveUSB Ubuntu.

Затем сформировались группы по интересам.

Часть людей начали рубиться в Xonotic. Это плавно перетекло в соревнование.

 IMG_4006IMG_3999

IMG_4000Другие запустили партию в 0 A.D. По ходу участник МЛТГ объяснял игровую механику.

Иногда участники отдыхали от компьютеров за настольным футболом:

IMG_4004

Ранний завтрак:

IMG_4008

IMG_4015В соревновании по Xonotic наметились два лидера — MEJIOMAH17 и Zork. Они шли ровно примерно до 5-ти очков, после чего Zork резко вырвался вперед и его было уже не догнать. Он и стал первым победителем, получившим в качестве приза Arduino и наградную грамоту от МЛТГ.

IMG_4018По стратегиям было сыграно заметно меньше партий, поскольку они требовали больше времени на то, чтобы разобраться с игровой механикой, и сами партии длились дольше, чем партии в Xonotic. В связи с этим выбор победителей был затруднен. В итоге оргкомитет принял решение выдать приз за 0 A.D. опытному игроку grima, показавшему себя лучше всех.

По Warzone 2100 победитель определен не был, и поэтому последний приз был разыгран при помощи «серии пенальти», то есть игрой в ArmagetronAD. Приз забрал участник с ником KiRiLL:

IMG_4021

Когда большинство участников разошлись, организаторы вместе с grima в спокойной обстановке встретили утро за еще одной партией в 0 A.D:

IMG_4022

Конечно не обошлось без организационных проблем, связанных в первую очередь с тем, что опыта проведения такого рода мероприятий у нас ранее не было. Одной из неприятностей было то, что компьютеров было меньше, чем участников, и не всем кто хотел поиграть удавалось поиграть достаточно долго.

«Подтверждение о регистрации на почту так и не пришло. Поэтому о необходимости взять ноутбук я узнал от другого участника ближе к вечеру пятницы и заехать домой уже не успевал.» — OlegDit

Но в целом Ночь Свободных Игр людям понравилась:
«Очень классное мероприятие , было приятно пообщаться с интересными людьми , очень много узнал про свободные игры . :)» — suslik

«Для своего уровня, все прошло отлично. Отличное место, отличная компания. И wi-fi роутер при дюжине ноутов держался нормально.» — Sanikadze

Мы благодарим хакспейс «Нейрон» за любезно предоставленное помещение, пришедшим за отличную компанию и желаем вам всем больше хороших и свободных программ 🙂

Все фотографии можно скачать здесь.