2013-10-22

Nimble Streamer - сервер для медиа-стриминга

И снова здравствуйте.

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

Итак, в начале 2013 года мы представили медиа-сервер Nimble Streamer. Это лёгковесный сервер, заточенный под потоковую передачу данных (стриминга). Что он умеет?


В этой презентации можно посмотреть обзор основных фич, а ниже - чуть подробностей.

MP4 to HLS VOD transmuxing и MP4 to MPEG-DASH transmuxing. Можно класть на сервер файлы MP4, заэнкоденные в H.264/AAC, и по мере обращения, на лету, делать re-packaging в HLS и MPEG-DASH. Это и называется транзмаксинг, т.е. перепаковка формата передачи данных при передаче их клиенту для воспроизведения. На формат энкодинга это влияет, поэтому при должной оптимизации (а она у нас присутствует в полной мере) операция это достаточно быстрая и не ресурсоёмкая. Что важно - передача в ведётся в режиме VOD.

Потоковую передачу в "живом режиме" - live streaming. Можно брать данные по RTMP и транзмаксить в HLS, DASH, Icecast. Можно также раздавать по RTMP - как на проигрывание, так и на пере-публикацию. Также в качестве источников может быть взяты MPEG-TS и Icecast.

Кроме этого есть функционал для ре-стриминга медиа-данных по HTTP-based протоколам. Нимбл умеет делать ре-стриминг для HLS, Smooth Streaming, HDS, MPEG-DASH и pseudo-streaming. Ставится несколько edge-серверов Нимбла поближе к клиентам-потребителям трафика и эти сервера настраиваются на origin - на всё тот же Nimble или на любой другой медиа-сервер.

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

Кроме указанных протоколов Nimble умеет раздавать контент по протоколу progressive download (он же псевдо-стриминг) в качестве как origin, так и edge. Многие сайты в Рунете предпочитают раздавать именно через этот протокол.

В дополнение имеется возможность делать балансировку нагрузки между медиа-серверами. Это важно в нашем случае, т.к. расчёт делается на то, что медиа-стример будет ставить несколько небольших серверов поближе к потребителям контента. Отсюда необходимость балансировать нагрузку по местоположению или IP-адресам. Кроме гео, есть возможность разбрасывать соединения и по round robin.

Был реализован механизм защиты от ре-стриминга - hotlinking protection - он позволяет предотвращать кражу прямых ссылок. Также можно ограничивать работу потоков через гео-локацию или диапазоны IP.

Сервер в данный момент ставится на Ubuntu, Debian, CentOS и RedHat через обычную пакетную установку, а также на Windows и MacOS через нативные установщики.

Сервер - бесплатный. Деньги мы берём за удобное управление через веб-интерфейс и возможность создания статистических отчетов через уже упоминавшуюся панель управления WMSPanel. Чтобы гарантировать возможность бесплатного использования, мы открыли формат конфигурационных файлов, чтоб можно было работать с сервером автономно, без привязки к нашей панели управления.

Кстати, сервер, как и сервис, разрабатывается российской командой, с нами можно встретиться и пообщаться на родном языке. Впереди большие планы, так что если есть пожелания или вопросы - обязательно обращайтесь.

Уверен, кому-то из моих читателей наша разработка пригодится.

P.S. Да, это снова разнузданный самопиар :)

WMSPanel - admin GUI Wowza Media Server

Добрейшего дня!

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

Примерно 3 года назад мы с единомышленниками начали свой бизнес. Или bootstrap startup, как некоторые его модно называют. Начали мы с создания плагина для Windows Media Services, который помогал защитить медиа данные от ре-стриминга. Потом мы перешли к созданию панели управления для этого же медиа сервера. В итоге к концу 2011 года у нас был проект, способный собирать статистику и защищать медиа-данные для Windows Media.

Дальше мы решили переключиться на поддержку Wowza Media Server (ныне - Wowza Streaming Engine) - и не прогадали. Впоследиствии мы добавили поддержку Red5, Flussonic и nginx-rtmp-module.

На сегодняшний день нам удалось сделать универсальную панель администратора медиа-серверов, которая включает в себя:

Полный список возможностей можно посмотреть здесь.

Панель представляет собой веб-сайт, данные для которого отсылает специальный add-on. Через него же идёт управление сервером. Панель доступна по модели Software-as-a-Service, с помесячной или годичной оплатой, и с пробным периодом использования. Подходит всем - от новичков медиа-бизнеса до матёрых CDN-ов.

Основные "этапы славного пути" можно узнать из статьи про нас от корифея медиа-стриминга, Дэна Рэйбёрна, там описана наша история по январь 2013 года. Можете почитать наш блог или Твиттер, чтобы узнать, что делается сейчас и куда движемся.

Кому интересно, некоторые наши наработки - включая плагины для WMS и темплейт для Maven - выложены в открытый доступ на гитхабе.

Однако, это ещё не всё! В следующей статье читаем про наш новый сервер медиа-стриминга.

P.S. Да, это разнузданный самопиар :)