И снова здравствуйте.
В
предыдущей заметке я рассказал, чем наша команда занималась в последние годы и почему не было статьей в бложике. Продолжу тему рассказом о разработке, с которой мы выходим на новые рынки.
Итак, в начале 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. Да, это снова разнузданный самопиар :)