Недавно мы обеспечивали видео-связь на конференции наших товарищей. Хочется поделиться полученным опытом.
В конференции участвовали около 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 в целом справились со своей задачей и обеспечили удаленную связь для конференции, хотя и ценой множества неудобств и нервов. Перспектива у данного инструмента есть, если провести работу над исправлением описанных замечаний.