«

»

Апр 16

Распечатать Запись

Медиа-сервер Nimble Streamer. Живое вещание DASH и HLS через Nimble Streamer

Nimble Streamer Сегодня в блоге я публикую гостевую статью от компании «WMSPanel», в которой будет представлена информация о медиа-сервере Nimble Streamer. Данная информация была подготовлена и предоставлена компанией «WMSPanel» специально для публикации в блоге IT и Мультимедиа.

Nimble Streamer

 Nimble Streamer — это медиа-сервер, написанный на С++ как приложение для Линукса. Его разработчики — российская команда — ставили целью создание лёгкого сервера для доставки контента по протоколам на базе HTTP.

 Сейчас Нимбл поддерживается в том числе Windows и Mac OS X и позволяет обслуживать как “живой” стриминг в реальном времени, так и раздачу видео по запросу.

 Управлять сервером можно через файлы конфигурации или через WMSPanel — облачную панель управления, с помощью которой можно не только настроить сервер, но и получить разнообразную статистику.

 Рассмотрим живое потоковое видео. Для этого режима работы Нимбл поддерживает приём данных по:

  • RTMP (publish или pull),
  • MPEG-TS (как по UDP, так и по HTTP),
  • Icecast.

 На выход может отдаваться:

  • HLS (обычный или audio-only),
  • MPEG-DASH,
  • Icecast,
  • MPEG-TS по HTTP,
  • RTMP.

 Все потоки формируются через трансмаксинг (transmuxing, transcode-multiplexing). Это означает, что медиа-данные переупаковываются из формата одного протокола доставки в другой, при этом сами аудио и видео не перекодируются, и их формат и качество остаются прежними.

 В этой статье мы разберём процесс настройки живого вещания через Нимбл. На вход ему будут подаваться RTMP-потоки (publish или pull), на выходе они будут преобразованы в DASH или HLS.

1. Установка и настройка Nimble Streamer

 Ставится Нимбл под все популярные дистрибутивы Линукса — Ubuntu, Debian, RedHat и CentOS. Используется пакетная установка, которая позволяет не только быстро поставить, но и в дальнейшем без проблем обновить софт. Для Windows и Mac OS X подготовлены отдельные инсталляторы.

 Подробнее с процессом установки Нимбла для всех поддерживаемых OS можно ознакомиться здесь. Перед установкой нужно завести аккаунт в WMSPanel, если у вас его ещё нет.

 Чтобы подать на вход RTMP-потоки для трансмаксинга, нужно указать доступные источники медиа-данных. После этого их уже подхватит Нимбл. Перейдите в окно Nimble Streamer -> Live Streams Set Up для просмотра списка доступных серверов (Рис 1).

Nimble Streamer_1

Рис. 1

 Затем выберите сервер для настройки. Большинство настроек могут быть применены к нескольким серверам сразу (Рис. 2).

Nimble Streamer_2

Рис. 2

 Теперь нажимаем на кнопку RTMP settings. Nimble поддерживает два сценария для обработки входных потоков:

  • Публикация потока по протоколу RTMP (RTMP-publish)
  • Ретрансляция готового RTMP-потока (RTMP-pull)

 Можно совмещать оба сценария, передавая Нимблу оба типа входных потоков и получая на выходе DASH и HLS. Для настройки живого вещания будем использовать первый сценарий — публикацию потока.

2. RTMP-publish: настройка параметров публикации по RTMP

Настройки приложений

 На странице RTMP settings вы увидите несколько вкладок. Первая, которая вам понадобится — это Global (Рис 3). Она содержит следующие глобальные настройки сервера:

  • длина сегмента по умолчанию для исходящих потоков;
  • количество сегментов;
  • протоколы, которые будут получаться на выходе — можно сгенерировать все поддерживаемые типы или только один, это не будет сильно влиять на производительность;
  • логин и пароль для публикации — они будут использованы по умолчанию для опубликованных потоков.

Nimble Streamer_3

Рис. 3

Добавление интерфейса

 Чтобы Нимбл мог получать опубликованные потоки, он должен быть настроен на прослушивание определённого интерфейса — адреса и порта. Перейдите на вкладку Interfaces и нажмите на кнопку Add interface (Рис. 4).

Nimble Streamer_4

Рис. 4

 Вы увидите диалог для указания адреса и порта для прослушивания. Поле IP address можно оставить пустым, в этом случае Нимбл будет прослушивать все доступные адреса (Рис.5).

Nimble Streamer_5

Рис. 5

Настройка входного потока

 На вход Нимблу нужно подать RTMP-поток. Например, если на тестовой машине есть веб-камера, можно воспользоваться видеокодером Adobe Flash Media Live Encoder (Рис.6).

Nimble Streamer_6

Рис. 6

 На вкладке Encoding Options можно задать параметры видео и аудиопотоков, либо выбрать пресет из списка. На панели Output должен быть отмечен чекбокс Stream to Flash Media server. В поле FMS URL укажите те же адрес и порт, что и во вкладке Interfaces настроек Nimble; в поле Stream — имя потока. После этого запускайте вещание нажатием на кнопку Start.

 Если веб-камеры нет, можно запустить на живое вещание уже имеющийся файл с помощью ffmpeg. Предположим, что Нимбл настроен на приём RTMP-потока по адресу 127.0.0.1:2000, и для доступа к публикации используются логин и пароль “login” и “pass” соответственно. Тогда команда для стриминга файла может выглядеть так:

./ffmpeg -re -i /home/test/content/mp4/sample.mp4 -acodec copy -vcodec copy -f flv rtmp://login:pass@127.0.0.1:2000/live/stream

 Если всё настроено правильно, вы увидите исходящий поток в WMSPanel (Рис 7).

Nimble Streamer_7

Рис. 7

3. Настройка исходящих потоков

 После того, как входящий поток определён и обработан Nimble, его можно подвергнуть трансмаксингу, передавая его уже через MPEG-DASH или любой другой протокол, который был указан в глобальных настройках, например HLS.

 Нажмите на область Outgoing stream на диаграмме потоков, либо перейдите по ссылке Outgoing в верхнем углу области настроек (Рис. 8). Вы увидите там все потоки, которые в данные момент обрабатываются и готовы к использованию. Каждый поток обладает следующим набором параметров:

  • статус,
  • имена серверов, с которых раздаётся этот поток,
  • имя потока для проигрывания,
  • параметры аудио и видео,
  • ссылка для получения URL для проигрывания потоков — это квадратик со знаком вопроса.

Nimble Streamer_8

Рис. 8

 Чтобы проиграть исходящий поток, нажмите на знак вопроса, чтобы перейти к диалогу Sample URL for player (Рис. 9).

Nimble Streamer_9

Рис. 9

 Вы получите ссылки для двух протоколов, которые вы определили в глобальных настройках сервера — MPEG-DASH и HLS. Теперь эти ссылки можно использовать в любом плеере, который вам удобен. Мы тестировали стриминг MPEG-DASH в DASH reference player и bitdash™. Можно также использовать плеер на нашем сайте (доступен только после регистрации): https://wmspanel.com/p.

Что ещё?

ABR — adaptive bitrate (адаптивное потоковое вещание)

 Получив несколько битрейтов одного и того же потока, можно сформировать HLS поток с несколькими каналами — современные плееры такие как JWPlayer умеют переключаться между каналами в зависимости от качества.

 Подробнее об этом можно почитать здесь: http://blog.wmspanel.com/2014/06/make-abr-hls-rtmp.html
Про другие сценарии живых трансляций можно прочитать в этой статье: https://wmspanel.com/nimble/live_streaming

Высокая производительность

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

 На этом мы завершаем нашу статью! Будем рады ответить на все интересующие вас вопросы.

Всего хорошего!

 Если у вас появились какие-то вопросы по медиа-серверам, пишите нам. Если вам нужно что-то настроить или получить консультацию по медиа серверам и системам, также можете обращаться ко мне и нашей команде. Разную полезную информацию на данную тему вы можете найти в нашем Справочнике по видеотрансляциям.

 Приглашаю всех подписаться на новости моей публичной страницы ВКонтакте, ее адрес http://vk.com/itmultimedia . Буду рад видеть Вас в своих подписчиках!

Поделиться в соц. сетях

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники

Постоянная ссылка на это сообщение: http://itmultimedia.ru/media-server-nimble-streamer-zhivoe-veshhanie-dash-i-hls-cherez-nimble-streamer/

Комментарии:

10 комментариев

  1. Кирилл

    Использую данный софт уже 6 месяцев. Отличная штуковина и бесплатная, оплата идет только за ПУ.
    Команда разработчиков отзывчивая и оперативно фиксит баги.

  2. Юрий Удовиченко

    Кирилл, спасибо за отзыв, обращайтесь!

  3. Владимир

    Привет! Не сильно понятно для меня из статьи, достаточно только зарегистрироваться на https://wmspanel.com/account/sign_up установить себе adobe live encoder и все? т.е. полная цепочка для вещания со своей камеры на своем сайте как выглядит с использованием этой панели?

    1. Юрий Удовиченко

      Добрый день, Владимир,

      Полная цепочка будет примерно такой:
      1. Ставится камера.
      2. Поток с камеры идёт в Adobe encoder, где он приводится в нужный битрейт.
      3. Энкодер выдаёт поток к Нимбл.
      4. Нимбл производит транзмаксинг в нужные форматы — HLS, DASH, RTMP — на лету.
      5. На сайте ставится веб плеер, который берёт потоки с Нимбла.
      6. Пользователь заходит на сайт, нажимает на просмотр видео в плеере, поток начинает идти с Нимбла на машину юзера. Подключения всех юзеров идут к Нимблу, который спокойно держит нагрузку с несколько тысяч человек — ограничением будет только ширика пропускания канала, которй есть у Нимбла — зачастую это или 1Гбит/с или 10Гбит/с, в зависимости от хостера.
      7. Пареллельно с передачей данных, Нимбл выдаёт статистику просмотров в WMSPanel, куда у вас есть доступ. Статистику вы можете смотреть сами, а можете расшарить с теми, кому считаете нужным.

      Это если в общих чертах.

  4. Владимир

    Нимбл покупается отдельно или он находится на вашем сервере и я получаю доступ к нему через вспанель и плачу уже за трафик или за нагрузку?
    вот мне необходимо организовать трансляцию, количество смотрящих будет например в районе 1000 чел. мне будет достаточно зарегистрироваться у вас в панели и все?
    т.е. то что плеер на сайте настрииваю сам это понятно, то, что поток к вам направляю с камеры это тоже понятно, но непонятно про нимбл…

    1. Юрий Удовиченко

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

      1. Владимир

        Спасибо! Теперь понятно. Единственное не нашел стоимости Нимбл…. не подскажите?

        1. Юрий Удовиченко

          Кстати, да, это не упоминается. Однако, всё просто — сервер полностью бесплатен. Его можно ставить и использовать как угодно.
          Мы берём деньги за WMSPanel — веб-сервис управления серверами и получения их отчетности. Там же настраиваются все фичи, связанные с безопасностью — hotlink protection и т.п. Подписка включает использование самого сервиса и техподдержку.
          Если нет желания тратить деньги — ОК, настройка может производиться через конфиги, Нимбл независим от панели управления.

          1. Владимир

            Варианта с русским интерфейсом нет? В прайсе указаны цены за сре, что есть срез, отчет по одной камере??

          2. Юрий Удовиченко

            Русский перевод обновляется периодически, наверное в мае как раз обновим интерфейс управления Нимблом.

            Что касается срезов — это способ разделить всю поступающую статистику по разным криетриям — выбранным сервра, приложениям или потокам — и назначить для её просмотра отдельные логины. Вот здесь краткий перечень основных статей на эту тему, включая возможность «брендирования» панели под свой сайт: https://wmspanel.com/forum/question/See-clients-statistics

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти теги HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>