Вычислительные мощности современного ПК и сервера начального уровня на сегодняшний день позволяют решать задачи, которые лет 10 назад решались специализированными кластерными системами. Но и разработка ПО не стоит на месте. В частности, в области видео-конференц-связи, программные решения зачастую используют различные технологии, позволяющие минимизировать нагрузку на сервер. Например, SVC (Scalable Video Coding), используемое в некоторых современных решениях ВКС, существенно снижает нагрузку на сеть, а нагрузку на сервер делает такой низкой, что подобные системы можно использовать на практически любой конфигурации ПК последнего поколения.

Понятное дело, что само понятие «сервер» накладывает особые требования к аппаратной части. Это и стоечное исполнение, и резервирование БП, и отказоустойчивая дисковая подсистема. Поэтому вряд ли кто-то захочет разместить какой-либо важный бизнес-процесс на десктопной платформе без должной отказоустойчивости со всеми вытекающими последствиями.

Заглавная картинка и само название статьи имеет в первую очередь психологический замысел. До сих пор аппаратные MCU для видео-конференц-связи строятся на базе специализированных плат DSP и стоят миллионы рублей, причём портовая ёмкость у них весьма ограничена. А решения отечественных разработчиков программных продуктов для ВКС, таких как TrueConf или VideoMost — могут реализовать аналогичный функционал хоть на карманном ПК Intel Stick с 4-ядерным Atom на борту.

Как раз о подобном программном решении ВКС от компании SPIRIT DSP и пойдёт речь в этой статье.

VIDEOMOST — это комплекс программного обеспечения на базе Linux (Debian, RHEL, CentOS, Ubuntu, AltLinux, AstraLinux), позволяющий реализовать полноценный функционал: видео-конференц-связи, видео и голосовых звонков, чата и совместной работы с документами (демонстрация рабочего стола, презентация и обмен файлами)

Архитектура решения



Решение ВКС VideoMost имеет классическую для аналогичных продуктов архитектуру. Есть единый сервер (или несколько, в зависимости от задачи) который обеспечивает коммуникацию между пользователями локальной сети организации, удалёнными сотрудниками через VPN, и внешними участниками через интернет.

Преимущественно соединение происходит через браузер (через WebRTC или собственный плагин) или клиентское приложение под различные ОС, в том числе и мобильные.

Установка и настройка


Videomost можно установить вручную на любую из поддерживаемых ОС, либо развернуть уже готовый образ. Но, к сожалению, не все настройки производятся через веб-интерфейс, и придётся использовать настройку из под Linux.

Скачать образ возможно, пройдя регистрацию на сайте videomost.com

Скрины этапов установки
Выбираем язык


Устанавливаем часовой пояс


Размечаем диски


Заводим доменное имя сервера и кучу паролей от различных сервисов (MySQL, openfire, Videomost)


Вводим данные о компании




Переходим к активации (с помощью триального или платного ключа)


В некоторых случаях в момент установки сервер может не достучаться до сервера активации, и результатом будет следующее сообщение об ошибке активации:


Но в этом нет ничего страшного — сервер на данном этапе уже установлен и можно перейти к активации через веб-интерфейс.

При первом входе в веб-интерфейс по IP-адресу сервера появляется сообщение следующего содержания:

Подключение к ВКС Видеомост осуществляется по доменному имени.
Если настройка службы DNS в сети для доменного имени videomost.local
(в нашем случае) невозможна, можно использовать локальное разыменывание доменов на каждом клиентском месте, для этого необходимо пользователю с правами администратора отредактировать файл hosts.

Далее идёт инструкция, какие строки необходимо добавить, но при массовой настройке проще использовать прилагаемый bat-ник, который внесёт все изменения автоматически.

Добравшись до веб-интерфейса необходимо залогиниться под админом:


У админа доступен расширенный функционал управления:


В первую очередь необходимо произвести регистрацию лицензии:


После установки и удачной активации сервиса, результат отображается в следующем виде:



В закладке «Настройки» производится управление качеством конференций, авторизацией LDAP, битрейтом и прочими параметрами.

Но интерфейс, к сожалению, не интуитивно понятный всем, и возможно придется обращаться к руководству администратора.

Закладка Настройки


В закладке «Видео профиль» размещаются json-файлы параметров качества видеоконференций. Эти профили можно скачивать для резервирования и подгружать в систему в случае необходимости.

Закладка Видео профиль


В закладке «Почтовые сообщения» настраиваются шаблоны писем для уведомления пользователей при определённых сценариях.

«Настройки пользователя» позволяют управлять активными пользователями и устанавливать ограничения на битрейт канала для конкретной конференции.

«Масштабирование» позволяет добавлять в систему серверы VideoMost, перераспределяя нагрузку на аппаратную часть с одного сервера на группу (кластер) из необходимого количества серверов.

Закладка «Сервисы» показывает статус Сервера конференций Jconfsrv и сервиса сигнализации Openfire. Из управления — запустить, остановить, перезапустить.

Перед тем, как начать использовать сервис и заводить новых пользователей (либо автоматизировать процесс самостоятельной регистрации) необходимо пройти в закладку «Тарифы»



Создаваемый тариф — это своеобразный профиль, который прикрепляется за каждым пользователем и описывает перечень возможностей и ограничений сервиса видео-конференц-связи. Используя тарифы, можно установить различные права для пользователей с разными потребностями и полномочиями.

Ну и после того, как проведены основные настройки и созданы тарифы — можно переходить к созданию групп и пользователей (если не используется интеграция с AD).



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

Администратор может применять тарифы к новым пользователям самостоятельно, но может и создать «тариф по умолчанию», который будет присваиваться всем новым пользователям.

Пользовательский интерфейс


В пользовательском веб-интерфейсе есть закладка «Загрузка ПО»



По умолчанию доступны плагины для различных браузеров под различные ОС и облегчённая версия клиента VideoMost Lite для Windows, которая идентична интерфейсу браузера.

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



При входе в мероприятие система предлагает войти через браузер либо через приложение VideoMost Lite. Функционал ограничен относительно полной версии приложения VideoMost Space и не позволяет создавать многопользовательские конференции с использованием адресной книги.

А в целом, интерфейс VideoMost Lite выглядит следующим образом:



Вверху основного окна есть несколько закладок:

Видео — основное окно видеоконференции, в котором отображаются видеопотоки от всех участников.

Документы — обеспечивает совместный просмотр документов, позволяет выбрать для демонстрации либо рабочий стол целиком, либо отдельное открытое окно из списка.

Материалы — эта опция позволяет загружать различные документы и файлы, и передавать их в общий доступ всем участникам. Загруженные файлы отображаются в общем чате и в закладке «Материалы», и могут быть скачаны любым участником.

Электронная доска — классический вариант электронного флип-чарта, наделённый стандартным функционалом графического редактора.



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

Под основными закладками находится панель управления. В ней можно управлять видом и размером окна, включать или отключать микрофон, камеру и динамики.

Справа от основного окна интерфейса располагаются закладки, в которых производится управление правами участников, работа в чате (приватном и коллективном), настройка аудио и видео устройств, и прочий функционал администрирования конференции.

Функционал Videomost Lite примерно соответствует браузерному интерфейсу. Если же пользователю требуется более расширенный функционал и возможность создавать и управлять конференциями через приложение, тогда потребуется установка клиента VideoMost Space.

VideoMost Space — это полноценный ВКС-клиент с адресной книгой и возможностью организовывать многоточечные видеоконференции.

Для того, чтобы открыть VideoMost Space для скачивания в закладке «Загрузка ПО» пользовательского интерфейса, необходимо его скачать и залить на сервер VideoMost. Для удобства можно использовать WinSCP и PuTTY.

Далее устанавливаем дополнительный пакет p7zip:

# apt-get install p7zip-full                         - для Debian/Ubuntu Linux
# yum install p7zip                                  - для CentOS/RHEL Linux  

Переходим в каталог с инсталляционным пакетом VideoMost Space и производим распаковку:

# dpkg -i videomost-space*.deb                       - для Debian/Ubuntu Linux
# rpm -ihv videomost-space*.rpm                      - для CentOS/ RHEL Linux 

После перезагрузки сервиса приложение VideoMost Space появится в закладке «Загрузка ПО»:



После установки приложения, запуска и авторизации открывается рабочее окно VideoMost Space.


Здесь можно управлять адресной книгой, смотреть историю конференций и звонков. Также можно, кликнув на онлайн-пользователя из списка, активировать с ним чат или мгновенную конференцию (видео звонок точка-точка).

Если же необходимо создать многостороннюю видеоконференцию, необходимо нажать кнопку «Создать конференцию»



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

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

Окно активной конференции в VideoMost Space выглядит следующим образом:



Здесь можно менять раскладки окон участников. Остальной функционал вынесен в боковую панель управления, в которой реализован чат, управление файлами и пользователями, а так же настройка оборудования.

Лицензирование


Для работы сервера VideoMost существуют три вида базовых лицензий:

1. Серверные порты (максимальное количество одновременных участников всех конференций)
Любые участники, в т.ч. не имеющие учётной записи, способные участвовать в конференциях на сервере.

2. Вебинарные порты — лицензия для слушателей вебинара (без обратной видео связи)

3. Учетные записи РС-пользователей (VideoMost Space и\или организатор web-конференций)
Участники, имеющие регистрацию на сервере и способные создавать и управлять конференциями.

Такой подход к лицензированию может снизить суммарную стоимость лицензий.

Например, если необходимо на сервере реализовать 50 портов (пользователей), а функционал создания и управления многоточечными мероприятиями нужен только 5 сотрудникам, то достаточно обеспечить всех лицензиями на подключение, и дополнительно приобрести 5 лицензий на учётную запись. Либо часть участников могут быть только зрителями — вебинарные порты стоят значительно дешевле.

Возможность участия через мобильный клиент или SIP-устройство лицензируются дополнительно, так же как и flash-трансляция мероприятий.

Нагрузка на сервер и каналы


Так как VideoMost использует технологию SVC, нагрузка на канал рассчитывается следующим образом:

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

Таким образом, если мы имеем FullHD камеру и панель с таким же разрешением, канал в одну и другую сторону загрузится на 2-4 Мбит/с.

Нагрузка на вычислительную подсистему клиента в данном случае будет эквивалентна просмотру пары FullHD-роликов. Поэтому при выборе процессора для FullHD ВКС-терминала, лучше воздержаться от использования Atom, Pentium или Celeron, а отдать предпочтение неурезанным вариантам — i3, i5 или i7.

Сервер, если в конференциях участвуют только VideoMost-клиенты, не занимается кодированием видео, а лишь грамотно коммутирует потоки между клиентами, в зависимости от их параметров и каналов связи. Таким образом, канал до сервера должен обеспечивать пропускную способность равную нагрузке одного клиента, умноженную на количество клиентов. Также стоит отметить, что система отслеживает качество канала до клиента, и сервер будет выдавать клиенту потоки, учитывая пропускную способность сети.

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

Но если в конференцию добавляется SIP/H.323-клиент, то серверу понадобятся дополнительные ресурсы для транскодирования SIP-потоков и микширования общей картинки для всех участников. И здесь уже важно учитывать количество сессий с участием SIP/H.323-устройств, которые будут требовать увеличение количества ядер центрального процессора сервера.

Типовые модели и конфигуратор решения


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

VideoMost113.5-004LH — модель начального уровня. Поддерживает работу до 100 подключений через клиентское приложение VideoMost. Эта модель актуальна, когда нет необходимости подключать к системе SIP-устройства или производить Flash-трансляции видеоконференций.

VideoMost217.4-004LH — мощный сервер, который обеспечивает работу до 500 подключений через клиентское приложение VideoMost, и плюс ко всему ещё до 40 SIP/H.323-сессий.

Воспользовавшись конфигуратором, можно рассчитать решение ВКС с учётом всех необходимых лицензий, а так же сравнить его с аналогами других производителей или разработчиков.

В лицензировании VideoMost есть одна особенность, и это важно учитывать при работе с конфигуратором. Опции: мобильный клиент, SIP и трансляция не имеют фиксированной стоимости, но увеличивают стоимость всех базовых лицензий. Поэтому, при выборе базовых лицензий, необходимо проследить, чтобы они были с одним и тем же набором опций.

Например, мне необходимы лицензии на серверные порты и на учётные записи, но в системе будет использоваться подключение через мобильные устройства. Значит в конфигураторе я выбираю необходимое количество лицензий на «Серверный порт + Мобильный клиент, бессрочная + 1 год Тех.поддержки» и нужное количество лицензий на «Учётная запись + Мобильный клиент, бессрочная + 1 год Тех.поддержки». И так далее — главное чтобы в базовых лицензиях совпадал набор опционала.

Если у Вас возникнут вопросы по этому решению — буду рад ответить в комментариях.

Спасибо за внимание!
Поделиться с друзьями
-->

Комментарии (8)


  1. NikiN
    30.11.2016 11:41

    а в чем ваше решение превосходит http://bigbluebutton.org/?


    1. Usikoff
      30.11.2016 12:10
      +1

      Предположу, что bbb не сможет симметричную видеоконференцию на 100 участников. Поправьте меня, если я не прав — не смог найти подробное описание функционала…


      1. NikiN
        30.11.2016 12:55
        +1

        не тестировал на таком объеме, но скорее всего да, вы правы.


        1. sergarcada
          30.11.2016 15:57

          100500 участников — это уже для провайдеров. Вряд ли кому придет в голову провести симметричную конференцию даже с 50 участниками. Но вот РТ, например, продает этот же видеомост как услугу.


  1. vviz
    01.12.2016 14:57

    Честно сказать, не понятно, в чем тут революция. Очередной видеокоммутатор. Есть десять клиентов, каждый отдает 2Мб/с. Каждый клиент получает 18Мб/с. В локальной сети это нормально. А из Краснодарской области в Новосибирскую? Вся вкусность в мультиплексоре, как например OpenMCU. Но тогда два ядра — и максимум 5-6 клиентов. А нужно больше — будьте любезны прикупить навороченный сервер. У Вас то же самое. В чем выигрыш?


    1. Usikoff
      01.12.2016 15:04
      +1

      Не совсем верно Вы подметили. Отдаёт 2Мб/с — да, но получает не 18, а примерно те же 2-3Мб/с, так как сервер ему пересылает не полное разрешение, а тот слой, который нужно. За счет этого и клиенту не нужно раскодировать 100500 потоков FullHD, и каналы до клиента загружены предсказуемо и независимо от кол-ва участников.

      На счет межгорода. По сути самый жирный канал нужен серверу. А клиентам достаточно обеспечить свои 2-4Мб/с в обе стороны.

      По поводу ядер. Тут как раз на пару ядер можно сотню клиентов посадить. Дополнительные ядра нужны для интеграции с SIP/H.323-клиентами.


      1. vviz
        01.12.2016 15:13

        "… сервер ему пересылает не полное разрешение, а тот слой, который нужно" — он, сервер, как то же получил видоизмененые данные, полученные от одного из клиентов? Как он это сделал без перекодирования потока?
        Хотя может я и отстал от жизни…


        1. Usikoff
          01.12.2016 15:20
          +1

          Это и есть основа SVC. Клиент отправляет слоёный поток, включающий несколько слоёв с разным разрешением, частотой кадров и пр. Создать такой поток ему не составляет труда, т.к. ресурсов утилизируется не много: основная нагрузка это FullHD, а чем ниже — тем кратно снижается нагрузка на процессор.
          Этот «пирог» отправляется на сервер и весит не многим больше обычного FullHD. А сервер производит анализ: какой канал у клиента получателя, в каком размере он смотрит сейчас запрашиваемый поток и шлёт ему не всё, а только нужный слой.
          В результате — предсказуемая нагрузка на клиента и каналы.