Search
Write a publication
Pull to refresh

Видео конференции на основе Adobe Stratus

Что такое Adobe Stratus знают уже многие. Технология предоставляет возможность связать удаленные клиенты между собой в p2p сеть, что, в свою очередь, избавляет от необходимости использования сторонних серверов, контролирующих передачу данных.

Вспомним нашумевший chatroulette. Вот яркий пример использования Stratus. Можно забыть о дорогостоящих серверах, даже если нагрузки очень велики. Клиенты работаю напрямую друг с другом.

А что, если мы хотим устроить конференцию не на 2 человека, а на 3, 4 и больше?

Именно такую возможность нам позволяют реализовать совсем недавно представленная технология Adobe Stratus 2.0 и Flash плеер 10.1.

Теперь мы с легкостью может создать некоторую группу клиентов, находящихся в постоянном взаимодействии. Каждая группа имеет свой уникальный номер, что позволяет «одним движением руки» переключить пользователя из одной группы в другую.

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

Однако, не все так гладко, как хотелось бы. Как говориться: «День не задался с самого утра».

Первой проблемой является неопределенность. Что дальше? Стратус пока что находится на стадии тестирования, любой желающий может совершенно бесплатно получить ключ разработчика и создавать новые клоны чатрулетта. А что, если через год, два доступ к технологии станет платным? Сколько Adobe попросит заплатить? Или они решат, что технология тупиковая и нет смысла ее развивать.

Будем оптимистами, представим, что технология будет развиваться, стоимость ее будет приемлемой.

Так что откроем свой любимы Flex Builder 4 и напишем интересное приложение на основе Stratus 2

Идея чатрулета хороша, а что, если ее расширить и сделать чат не на два человека, а на 9?

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

Вот и очередная проблема: жуткое отставание голоса и видео. Причем, не отстование голоса от видео. Такое чувство, что поток очень долго идет от одного клиента к другому, несколько раз огибая при этом земной шар и заходя к своим товарищам на чашку чая.

Поток доходил от одного клиента к другому секунд за 5-7.

Как всегда, гугл в помощь, но какого же было мое удивление, когда он не смог помочь.

Появилась очередная проблема — практически полное отсутствие описания технологии. На официальном форуме тишина. Нашел несколько постов с аналогичными симптомами. Решение заключалось в следующем:
1) поиграться с некоторыми переменными, отвечающими за буфер потока и задержку;
2) после начала сеанса связи подождать некоторое время.

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

Эксперименты проводил на одном компьютере, в разных вкладках браузера FireFox. Запутил тест на двух разных машинах. Ожидания не оправдались — ни через минуту, и через три отставание не пропало. Лучший результат — две секунды.

Это не дело. Если уж делать что-то, то делать хорошо.

Вспомнил про Stratus 1.0. Поддержку групп пришлось реализовывать с помощью php + mysql.
Хотя технология и не расчитана на мультичаты, приложение заработало на славу. Ни сикунды отставания, даже сразу после соединения.

Тестирование на полную мощность завершилось полным провалом.
Думаю, не надо говорить, как флеш любит кушать ресурсы — процессор и память.
При подключении более 4-5 клиентов система начинает медленно умирать.

Тестирование проводилось на трех машинах:
1) Windows 7, Intel Core 2 Quad Q9300, 2.50GHz, 2.00 ГБ, GeForce 9600 GT, браузер — FireFox;
2) Windows 7, Intel Atom N270 1.60 GHz, 1.0 ГБ, Mobile Intel 945 E, браузер — FireFox;
3) MacOS X, Intel Core i5, 4 ядра, 4.0 ГБ, GeForce 9400M, браузер — Safari.

1 — загрузка процессора 100%, тормозов практически нет.
2 — загрузка процессора 90%, браузер либо вылетает, либо зависает.
3 — загрузку процессора посмотреть не удалось, браузер либо зависает, либо прекращается трансляция видео потока.

Причина, по которой зависат второй компьютер проста — нехватка системных ресурсов.

С третьей машиной все намного интереснее. По параметрам лучше первого компьютера, поэтому, причину я вижу в макОС, либо в браузере сафари. Как известно, маки и линуксы, всегда плохо дружили с флешем.
Кроме того, выход третьего компьютера в интернет осуществляется с помощью модема Yota, которая периодически теряет нормальный уровень сигнала. Однако, это объясняет прекращение видео трансляции, но не зависание браузера.

В Internet Explorer и Chrome обнаружены проблемы другого плана — у многих клиентов отсутствует видео с камеры.

Поиски возможным решений уменьшения загрузки процессора остались без результата.

Таким образом, в настоящий момент проблема остается открытой.

Неужели нет возможности, пусть даже нестандартными способами, снизить потребление ресурсов? Направление перспективное, новое и интересное, поэтому решение должно быть.

Может кто сможет подсказать возможные варианты обхода данной проблемы?
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.