Долгое время отсутствовали открытые решения, которые бы составили конкуренцию 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 (интерфейс демо-системы)
Связавшись с автором можно получить доступ к тестированию.