И снова здравствуйте.
В предыдущей заметке я рассказал, чем наша команда занималась в последние годы и почему не было статьей в бложике. Продолжу тему рассказом о разработке, с которой мы выходим на новые рынки.
Итак, в начале 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. Да, это снова разнузданный самопиар :)
В предыдущей заметке я рассказал, чем наша команда занималась в последние годы и почему не было статьей в бложике. Продолжу тему рассказом о разработке, с которой мы выходим на новые рынки.
Итак, в начале 2013 года мы представили медиа-сервер Nimble Streamer. Это лёгковесный сервер, заточенный под потоковую передачу данных (стриминга). Что он умеет?
В этой презентации можно посмотреть обзор основных фич, а ниже - чуть подробностей.
Потоковую передачу в "живом режиме" - 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. Да, это снова разнузданный самопиар :)
А где внятная документация по конфигам?
ОтветитьУдалитьСтавлю я nginx-rtmp и настраиваю рестриминг rtmp источников за пару минут.
У вас в документации на сайте веб-панелькой всё.
Совершенно верно, WMSPanel - это основной способ настройки. Конфиг с правилами стриминга - это сохраненные в файле настройки из панели. Формат постоянно дополняется новыми элементами, поэтому сопровождать описание этого конфига в нашем случае не совсем рационально. Самый простой способ понять его структуру - посмотреть сохранённые настройки.
УдалитьЭто что касается rules.conf. А про nimble.conf, т.е. общие настройки поведения сервера, подробно расписано здесь:
http://blog.wmspanel.com/p/nimble-streamer-configuration.html
туда добавляются все новые параметры по мере появления. Там собраны се параметры, не управляемые со стороны панели.
Ну а насчёт пары минут - в веб-интерфейсе всё делается примерно также, если не быстрее. Например, для настроенного входящего потока сделать перепубликацию - дело пары щелчков мыши: http://blog.wmspanel.com/2014/10/rtmp-republishing-nimble-streamer.html Ну а вывод через RTMP или HLS длля такого потока будет просто работать сразу, без приседаний.
Здравствуйте, меня заинтересовал ваш сервер стриминга, но хотел поинтересоваться, реализована ли у вас возможность записи архива допустим как в WOWZA LiveStreamRecord? Сколько не ищу информации как таковой нет. И если нет то планируете данное дополнение в будующем?
ОтветитьУдалитьДобрый день,
УдалитьКак раз в данный момент мы делаем функциональность DVR, которая как раз будет реализовать то, о чем вы говорите. До конца года будут реализованы и выпущены основные сценарии, далее будем дорабатывать остальное. Полагаю к концу октября будет первая версия. Следите за http://blog.wmspanel.ru - там будут все значимые обновления. Плюс социалки - Твитер, ФБ.
Добрый день!
ОтветитьУдалитьПодскажите, пожалуйста, может ли один Nimble Server раздавать MPEG-DASH из файлов, хранящихся на локальном диске, и при этом кэшировать отдаваемые данные на локальных SSD и в оперативной памяти?
Здравствуйте,
УдалитьИменно так сейчас Нимбл и работает - поток при транзмаксинге сохраняется на в память и на диск. Вот в этой статье: http://itmultimedia.ru/postroenie-seti-dostavki-video-po-zaprosu-s-pomoshhyu-nimble-streamer/
в разделе "Тонкая настройка вещания" подробно описан механизм кеширования.
Добрый день!
ОтветитьУдалитьПодскажите, пожалуйста,
есть сайт https://example.com его недавно перевели на https
в плеере стояла ссылка на http://hls.stream.example:8080/hls/tv/live.m3u8
Соответственно на телефонах не работает стрим, требует https источник стрима. А его переделывать никто не хочет.
Подскажите, на примере как сделать рестрим,(если я правильно понимаю) с помощью этой программы. Загрузка не большая человек 5-10.
Заранее спасибо.
Всё просто - принимаете поток как описано здесь
Удалитьhttp://blog.wmspanel.com/2014/11/restreaming-ssl-hls.html
потом настраиваете SSL на сервере и дальше рестримите
http://blog.wmspanel.com/2014/12/ssl-hls-mpeg-dash-icecast-https-support.html
По любым техническим вопросам обращайтесь в наш хелпдеск: https://wmspanel.com/help