rtmp

Интервью для Компьютерной газеты

Было опубликовано в №21 (804) от 6 июня 2011 года.
Общался с Кристофером

Юрий, для затравки беседы расскажите о проектах, в которых вы участвовали, и, если не секрет, над чем работаете сейчас

RTMP

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

В чем принципиальная разница между веб-сервером и медиа сервером? Медиа сервер держит постоянное двустороннее соединение с клиентом. Веб сервер обслуживает каждый HTTP-запрос отдельно. Медиа сервер хранит видео данные в оперативной памяти и выдает всем клиентам. Веб сервер по каждому запросу открывает файл, читает данные, отдает клиенту и закрывает файл. Для следующего запроса повторяет все заново.

Протоколы передачи видео

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

Рассмотрим HTTP, RTMP и его разновидности, UDP, MPEG-TS и RTSP. Понятно, что на этом список не исчерпывается, но это самые актуальные на сегодняшний день протоколы.

Использование RTMPClient

Многопользовательские риал-тайм приложения не всегда легко отлаживать. Не так уж редко бывает, что нужно реализовать довольно сложный функционал на сервере, который будет запускаться при определенных действиях на клиентах. Причем не на одном клиенте, а на двух-трех. То есть, в каждом цикле отладки нужно запустить трех клиентов, залогиниться в них тремя разными пользователями, совершить некие действия по-очереди в этих клиентах, и только тогда запуститься нужный метод на сервере.

RtmpServiceInvoker Mate Extension

Hello World. For a long time I have been developing flash projects which use Flash Media Server as server side. As you know Flex framework has several classes such as RemoteObject, WebService, HttpService, which simplifies data exchange for different server sides. And if you use Mate framework, you should be familiar with RemoteObjectInvoker, WebServiceInvoker or HttpServiceInvoker classes that can be used in Mate event map.

Расширение для Mate RtmpServiceInvoker.

Привет мир. Задумал я упростить взаимодействие флэш-клиента с FMS и другими медиа-серверами, да написать расширение для Mate, дабы работало это взаимодействие прямо из карты событий, аналогично как работают в Mate HttpServiceInvoker, RemoteObjectInvoker, WebServiceInvoker.

Ну написал и выложил на github. Там помимо расширения есть еще и небольшой проект для примера (примитивный чат), в котором оное расширение юзается. Так что разобраться будет не сложно.

Прокси всемогущий

Есть в недрах API флэш плеера такой хитрый класс, как flash.utils.Proxy. И сча мы с его помощью сотворим немного программистской магии.

Суть его в том, что он позволяет обрабатывать обращения к несуществующим свойствам и методам объекта и делать что-нибудь интересное с такими обращениями. Фича известная в мире динамической типизации, реализована во многих языках такого типа, начиная еще с дедушки ООП -- SmallTalk. Ну и в AS1-2 это было. Как оказалось, и в AS3 сохранилось :)

Subscribe to RSS - rtmp