Два года назад я и моя команда тоже считали, что Tandberg, Polycom, RADVision и прочие монстры ВКС действительно о… ли. так как и клиенты, и серверы мультиточечной видеоконференции лежат в открытом доступе…
Все не так сладко. Во всех opensource-проектах корректно и быстро (25 fps и выше) работает только QCIF 176x144. CIF (352x288) — очень редко. Для развлечения и для поговорить тиммэйтом этого достаточно вполне, но для бизнеса нужно не меньше 640х480, а то и HD, а вот это разрешение при высоком фрэймрэйте есть только у большой тройки + 2-3 компании.
Уже достаточно давно веду разработку MCU и клиента под Win32. Используем DirectShow. Есть достаточно интересные наработки и результаты (30 кадров в секунду 640х480, но в почти идеальных сетях). Огромный затык в сетевых технологиях — нет нормального контроля целостности пакетов, мультикаст тот же… Компрессия видео в порядке. Кто интересуется ВКС — обращайтесь в хабрапочту, может чем-то помогу, может чем Вы поможете.
OpenMCU — очень простая реализация мультиточки, для домашнего использования максимум.
Есть пару моментов, очень сильно портящих общее представление:
— общая глюкавость кода, для серьезной работы требуется очень тщательная доработка напильником
— хорошая совместимость кодеков только в рамках продуктов, основанных на h323plus/opal. Если в конференции участвует серьезное оборудование, типа Polycom или VCON, то будете разочарованы. В частности, Polycom не понимает вообще H.261 из opal'а
— низкая производительность => серьезные требования к железу (кодирование/декодирование/микширование...)
— частичное соотвествие стандартам H.323 (очень много функционала не реализовано)
ну и кодек H.261 — моветон, не используют его уже серьезно
Есть достаточно большой опыт в ВКС-девелопменте, и в opal/h323plus особенно. Так что, если есть вопросы — в хабрапочту, может посоветую что-нибудь полезное;)
Мы у себя в VideoPort SBS это всё уже реализовали. И даже с H.323 подружили. А начали именно с сетевых технологий. И 640 на 480 можно вполне гонять через инет, проблем особых нет. Вопрос кодека. У нас он собственный.
Вообще вопрос кодека — самое веселье. Очень часто наша картинка (320*240) кажется людям сильно лучше передаваемой 323-им 640*480. Просто в силу восприятия и не распадания на квадраты. Ну и гарантированная доставка пакетов тоже помогает.
Неужели Вы смогли разработать свой кодек? Не утащили кусочки его кода по частям из разных проектов с открытым кодом и несовместимыми лицензиями, а взяли и изобрели что-то своё? Вы — такие молодцы, что даже не верится!
А в чем супер трабл-то? Сейчас практически любая SIP'овская АТС (софтовая, железная) может делать какие-хочешь видео конференции (наша не сключение octopusline.ru). Я не наезжаю, просто может быть я чего-то недопонимаю.
у вас просто иное видение бизнеса, в виду чего иные видения ценовых политик.
Но, предположим, вы глава очень (ну очень-очень) крупной корпорации и ведете раздачу люлей по всем своим отделениям (а отделения, следует заметить, есть в каждой точке мира), то летать вам туда ну вот ни разу не интересно. А здесь запускаете конференцию в АшДи и раздаете массово всем и сразу. Утрирую, конечно, но, надеюсь, что суть передал. Для мегамощноймонстркорпорации такие деньги за лицензию «пшик»… это ж не для физических лиц и домашнего использования, чтоб с подругой пообщаться и развести ее показать сиськи. Для подобных вещей можно и оупенсорсе использовать.
так никто и не заставляет покупать лицензии в период кризиса. Мегамонстркорпарации не в один день складываются и кому надо — тот либо уже купил, либо планирует, потому как штука удобная.
интересно, когда Skype позволит устраивать видео-конференции
непонятно, почему эта возможность до сих пор не реализована — может хотят сделать платную версию? или им Тандберг платит, чтобы не делали? или просто руки не доходят?
с видео конференций в skype никогда не было.
И, в общем, понятно почему — для форвардинга скайповского траффика используются всякие в основном не подозревающие об этом люди с прямым IP, и если 32 kbit для аудиозвонка и 5х32 для аудиоконференции еще можно не заметить, то занятые для видеоконференции 5х128kbit канала не заметить уже трудно…
Вы сами ответили на свой вопрос зачем платить больше:
1.библиотеки были найдены методом научного тыка…
2.механизм микширования видеопотоков в OpenMCU оставляет желать лучшего…
3. в некоторых случаях звонки на MCU из Ekiga(Windows) не проходили по неизвестным причинам
так что платить за реально вбуханную кучу денег в этот сектор в течении последних лет десяти и более-менее стабильную работу коммерческих решений.
Что касается средненьких стартапов, то моментально встает проблема проведения конференции. Как в OpenMCU осуществить типичную конференцию, когда все молчат, но в какой-то момент времени слово предоставляется начальнику транспортного цеха? OpenMCU это просто микшер.
Даже более того, все приложения openh323 абсолютно неработоспособны в реальной жизни, но зато представляют из себя каркас для коммерческих решений.
Искать библиотеки второй раз не надо — работающие версии указаны в тексте.
Пожалуйста, обоснуйте, почему «все приложения openh323 абсолютно неработоспособны в реальной жизни».
Да мы успешно пробуем библиотеку openh323 давно. Для тестирования надёжности запускали клиенты на несколько суток — и ничего, работают, шлют себе видео. :-)
Ну вот я там уже упоминал о типичной проблеме из реальной жизни: необходимо обеспечить «право голоса» во время конференции. Как вы это делаете с использованием OpenMCU?
В умелых руках OpenMCU может работать c HD — конечно, придётся доработать напильником. А неумеха даже на запуск видео на gnugk может три месяца потратить.
Лет 5 назад я пытался поднять примерно такое решение в маленьком провайдере. Приятно видеть, что за эти годы геморрой со сборкой библиотек, глюки и падения никуда не делись. Верной дорогой идёт H.323 — в могилу.
Линукс это линукс. А h.323 это сложный двоичный протокол построенный по принципам телефонных телефонных технологий сигнализации.
Получилось слишком сложно и не для опенсорса.
Dlink, например, был вынужден даже полностью отказаться от поддержки устройств h.323, настолько это сложно.
Задача была понять, как технически осуществить ту услугу, которая на официальном сайте компании значилась как имеющаяся в наличии — телеконференции через сеть. Решать пытался так же, как описано у автора — сборкой OpenH323, GnomeMeeting (ныне Ekiga), GNU GateKeeper. Уж не помню, дошло ли дело до OpenMCU, но что-то такое поднять пытался. Так как это было в принципе не моё поле деятельности, забросил, а потом и вовсе уволился. Но ощущение, что вся эта обвязка крайне кривая снизу доверху, осталось.
Толково! Я видеоконференциями не занимался, но почитать было весьма интересно
PWlib и OpenH323 действительно подарочек еще тот :) отсюда вопрос почему не SIP?
Вообще сигнальный протокол (SIP или H.323) в видеосвязи — не самое сложное. Сложно сжимать, восстанавливать и синхронизовать видео и звук — а это одни и те же алгоритмы, даже во флэше.
Там в сетевом стеке по умолчанию буфера очень большие. Секунда-полторы видео входит. Поэтому да, задержки.
У Упомянуты решений задержек на буферезацию из сети нет?
Я правильно понял, что это тоже, что и iChat в нескольких миллионах компьютеров, только с уродским интерфейсом, без возможности транслировать документы, слайдшоу, презентации и видео? Или не правильно?
Т.е. «Зачем платить больше $350 000, если есть OpenMCU и нет денег на Мак?»? Или как? Преимущества перед айчатом у этой штуки есть? Минусы я описал уже.
существует ведь флеш медиа сервер: www.adobe.com/products/flashmediainteractive/
стоит всего $4.500
поддерживает H.264
под него флешечку разрабатываем (во флеше классы для работы с медиасервером уже существуют, так что подключиться к медиасерверу — это дело 15 минут.)
ну а дальше все очень просто…
А какие Вы знаете адекватные, хоть и платные решения? Использую Polycom Realpresence, но там много чего кастрировано — в режиме дуалскрин транслирует только камеру+экран, иногда нужно две камеры транслировать. Нельзя настроить прием дуалскрина на два разных экрана. Смотрел решение от LifeSize, оно не лучше. Но есть плюс Realpresence — стоимость, чуть больше $100
Зачем платить $350 000, если есть OpenMCU?