Чтобы соединить несколько участников в видеоконференцию, можно купить небольшой MCU (Multipoint Control Unit) от Тандберга за $349 990. А можно научиться использовать и сочетать решения с открытым исходным кодом.
В качестве инструментов для сеанса конференц-связи мной были использованы следующие свободные продукты:
- GNU Gatekeeper версии 2.2.7, далее gnugk;
- GUI для гейткипера от Jan Willamowius, далее gkgui;
- виртуальная машина Sun xVM Virtualbox для Linux и Windows, далее vbox;
- дистрибутив Debian Linux;
- Ekiga версии 3.0.2 для Windows и версии 3.0.1 для Linux;
- OpenMCU 2.2.3.
В конференц-связи участвовало 4 компьютера в следующей конфигурации:
- простой клиент — OS Windows (Pulse*);
- сервер — Debian Lenny (Ekiga + gnugk) + vbox Debian Etch (OpenMCU);
- cложный клиент — OS Windows (Ekiga*) + vbox Debian Lenny (Ekiga);
- простой клиент 2 — OS Windows (Ekiga);
- простой клиент 3 — OS Windows (Ekiga*);
- простой клиент 4 — OS Windows (Pulse*).
Звёздочкой помечены клиенты с включёнными видеокамерами, на остальных был включён режим с плавающей заставкой.
Тестирование прошло успешно, был установлен сеанс связи (H.261) между 7 участниками, с одновременной трансляцией видео и звука, с обходом NAT и без оного. Теперь подробнее о трудностях организации. Вначале, безусловно, необходимо установить настроить все инструменты. Большие трудности вызывает установка OpenMCU, так как он использует постоянно меняющиеся и не совместимые от версии к версии бибиотеки переносимости PWLib (PTLib) и свободную реализацию H.323 OpenH323 (H323Plus). В моём случае нормально построить и установить получилось OpenMCU версии 2.2.3, использующую PTlib 1.12.0 и H323Plus 1.20.2, библиотеки были найдены методом научного тыка и попыток компиляции в различных конфигурациях.
Далее, как оказалось, при перегрузке процессора возможны race conditions в сеансах связи, приводящие к плотному подвисанию, и именно поэтому я вынужден был задействовать большее число простых клиентов и меньшее число виртуальных машин. Также было много проблем с тем, что в Debian в стандартной установке поставляется глючная Ekiga 2.0.3, при том, что текущая версия — 3.0.2, и тут пришлось подключать экспериментальный репозиторий, указанный у них на сайте и устанавливать более позднюю версию оттуда (получилось сделать только с дистрибутивом Lenny). OpenMCU был настроен на использование гейткипера через веб-интерфейс, в качестве имени был выбран MCU. Все Ekiga были настроены на использование гейткипера, так как каждый клиент на виртуальной машине выходил в интернет через NAT, и, соответственно, с OpenMCU они соединялись через него звонком на h323:MCU@
Что необходимо сделать в дальнейшем. Первое и самое главное — H.264. На данный момент OpenMCU обнаруживает и подключает только H.261 видеокодек — при том что в кодеках могут лежать и H.263 из H323Plus, и H.264 из Opal. Совместимость с Opal присутствует, так как кодек H.261 из Opal, положенный вместо H323Plus-овского, обнаруживается и работает нормально. В коде H.264 кодека уже было обнаружено, что часть, касающаяся H.323 протокола, откомментирована, но убрать комментарии недостаточно. Пока в планах — разобраться с H.263 кодеком, представленным в обоих библиотеках — Opal и H323Plus, а потом взяться и за 264.
Второе — механизм микширования видеопотоков в OpenMCU оставляет желать лучшего. При сеансе связи в 1-2 человека это полноэкранный режим, при связи до 4 экран разделяется на 4 части, потом на 9, (16?, 25?) Я бы сделал некоторые настройки микширования а-ля ведущий + слушатели, 2 ведущих + слушатели, и другие популярные композиции.
Третье — в некоторых случаях звонки на MCU из Ekiga (Windows) не проходили по неизвестным причинам, и установить связь можно было только вызовом из самого MCU. Сразу после вызова звонки на MCU магически начинали работать. Причину установить пока не могу, но в дальнейшем планирую разобраться.
3 комментария :
Спасибо. Полезный опыт, видимо, пригодится по работе)
opensors который никому не нужен . только для домашнего использования , ничего серьезного на ней не сделать.
Уже давно существует вполне работоспособный форк - openmcu.ru
Работает H.264,VP8,Opus и др...
Отправить комментарий