Открытый MCU

9 февраля 2009, 12:02

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

Sergio Garcia Murillo в списке рассылки asterisk-video привёл описание архитектуры разрабатываемого приложения. Ниже я приведу вольный перевод и выжимку из обсуждений по этой теме.

Для самых нетерпеливых и умелых (программа в очень ранней стадии разработки) ссылка на исходный код: http://sourceforge.net/projects/mcumediaserver/

Архитектура наглядно представлена на схеме:

MCU состоит из двух основных частей: VideoMixer и mcuWeb. Первый компонент представляет собой микшер медиа-потоков (аудио и видео). В его задачу входит получение RTP, распаковка аудио и видео содержимого. В соответствии с имеющимися настройками формируется изображение. Затем кодирование полученных данных и отправка RTP. Этот компонент полностью управляется с помощью XMLRPC интерфейса и не имеет своей самостоятельной настройки и логики. В данный момент доступны следующие XMLRPC методы:

  • Создание и уничтожение конференции
  • Добавление/удаление участника из конференции
  • Установка параметров конференции таких как: размер изображния, количество участников и их распределение на экране
  • Устанока RTP портов для видео/аудио потока для каждого участника
  • Установка кодеков и их параметров (fps, размер) участников
  • Включение/отключение звука в конференции
  • Добавление участников, только просматривающих происходящее (экспериментально: просмотр конференции через flash на web странице)

На данный момент поддерживается только кодек h263p, но не должно быть сложностей в добавлении поддержки других кодеков. Так же некоторые функции практически готовы, дело только за тестированием (поддержка flash). Для работы с изображением используются возможности ffmpeg

Второй компонент, решающий задачи управления конференциями, отделён от Asterisk, что позволяет обойти многие ограничения, связанные с монолитной архитектурой. Выбранная технология реализации - Java, на базе SIP сервера приложений Sailfin. mcuWeb принимает входящие SIP соединения, управляет микшером посредством XMLRPC и предоставляет средства управления конференциями по Web (интерфейс демо-системы)

Связавшись с автором можно получить доступ к тестированию.