Как стать автором
Обновить

Видео конференции на основе 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 обнаружены проблемы другого плана — у многих клиентов отсутствует видео с камеры.

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

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

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

Может кто сможет подсказать возможные варианты обхода данной проблемы?
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.