RTMP

RTMP (англ. Real Time Messaging Protocol) — проприетарный протокол потоковой передачи данных, в основном используемый для передачи потокового видео и аудиопотоков с веб-камер через интернет.

Серверная часть реализована в Adobe во Flash Media Server, стоимость которого, в зависимости от редакции, составляет $995—$4500. Модули для сервера должны быть написаны на ActionScript.

Группа энтузиастов осуществила обратный инжиниринг протокола и написала на Java бесплатную версию сервера Red5 (модули для сервера также должны быть написаны на Java).

В 2009 году Adobe выпустила документ, названный «спецификацией RTMP»[1], однако описание было нарочито неполно для сдерживания развития альтернативных серверов. Кроме того, для прочтения этого документа требовалось согласиться с лицензионным соглашением, согласно которому допустимо создание RTMP-сервера исключительно по спецификации от Adobe без каких-либо отступлений. В некоторых местах в спецификации указаны намеренно неверные данные, так, например, для включения на Flash Player декодера H.264 требуется криптографически подписать соединение, а в спецификации написано, что обязательно надо заполнять произвольными данными.

Поддержка RTMP есть в открытой библиотеке для .NET FluorineFx. Также существует не вполне совместимый, но соблюдающий большую часть спецификаций протокола RTMP-проект HaxeVideo, реализованный Расселом Вейром на специализированном языке HaXe для серверной виртуальной машины NekoVM. Распространяется в исходных текстах и отличается низкой ресурсоёмкостью по сравнению с Java-реализациями, а также отсутствием необходимости ставить на сервер как Java, так и другие пакеты. В период 2009—2010 годов в России создано ряд свободных RTMP-серверов, в том числе FMSPy на Python и Erlyvideo на Erlang (близкий по функциям к Wowza, продолживший развиваться на коммерческой основе). В 2012 году был разработан модуль поддержки RTMP для веб-сервера nginx.

Примечания

[править | править код]