Nimble Streamer

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:33, 7 марта 2019.
Версия от 00:33, 7 марта 2019; egor zorin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Nimble Streamer
Nimble Streamer
Разработчики: ООО "Софтвелум"
Выпущена: 21 октября 2013
Постоянный выпуск: 3.5-4.3 / 21 декабря 2018
Предыдущий выпуск: 1.0.0-1 / 18 сентября 2013
Состояние разработки: Развивается
Написана на: Си++
Операционная система: Linux,Windows, MacOS.
Платформа: Linux, Windows
Локализация: Америка
Лицензия: Запатентованный
Веб-сайт wmspanel.com/nimble

Nimble Streamer — это бесплатный медиа-сервер, предназначенный для вещания в режимах видео по запросу и живой трансляции видео- и аудио-контента на компьютеры, мобильные устройства, TV и другие устройства, подключённые к сетям передачи данных. Первая версия 1.0.0-1 была выпущена 21 октября 2013 года, с некоторым количеством предшествующих бета-версий. [Источник 1].

Описание

Nimble Streamer — это медиа-сервер, написанный на C++ как приложение для Linux. Его разработчики — российская команда — ставили целью создание лёгкого сервера для доставки контента по протоколам на базе HTTP (см. Рисунок 1). Сейчас Nimble поддерживается в том числе Windows и Mac OS X и позволяет обслуживать как “живой” стриминг в реальном времени, так и раздачу видео по запросу.Управлять сервером можно через файлы конфигурации или через WMSPanel — облачную панель управления, с помощью которой можно не только настроить сервер, но и получить разнообразную статистику.Все потоки формируются через трансмаксинг (transmuxing, transcode-multiplexing). Это означает, что медиа-данные переупаковываются из формата одного протокола доставки в другой, при этом сами аудио и видео не перекодируются, и их формат и качество остаются прежними.
Рисунок 1 - Логотип и слоган компании Nimble Streamer

Особенности

MP4 to HLS VOD transmuxing и MP4 to MPEG-DASH transmuxing

Можно класть на сервер файлы MP4, закоденные в H.264/AAC, и по мере обращения переделать в HLS и MPEG-DASH. Это и называется транзмаксинг, т.е. перепаковка формата передачи данных при передаче их клиенту для воспроизведения.

Рисунок 2 - Пример потоковой передачи

Потоковая передача в "живом режиме"

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

Эффективное кеширование данных

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

Имеется возможность делать балансировку нагрузки между медиа-серверами

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

Был реализован механизм защиты hotlinking protection

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

Поддержка сервера

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

Стоимость сервера

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

Плюсы

Nimble Streamer имеет несколько плюсов:

  • Интерфейс панели.
  • Потребление ресурсов CPU/MEM.
  • API для настройки и получения состояния.
  • Панель+транскодер стоят дешевле Wowza.

Минусы

Также Nimble Streamer имеет и ряд минусов, таких как:

  • Запросы к стороннему домену API.
  • Доступ по whitelist с отдельными IP (без подсетей).
  • Nimble синхронизируется с API время от времени.
  • Настраивается не всё.[Источник 3].

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

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

  • Перед установкой нужно завести аккаунт в WMSPanel, если у вас его ещё нет.
  • Чтобы подать на вход RTMP-потоки для трансмаксинга, нужно указать доступные источники медиа-данных. После этого их уже подхватит Nimble.
  • Перейдите в окно Nimble Streamer -> Live Streams Set Up для просмотра списка доступных серверов (см. Рисунок 3).
  • Затем выберите сервер для настройки. Большинство настроек могут быть применены к нескольким серверам сразу (см. Рисунок 4).
  • Теперь нужно нажать на кнопку RTMP settings. Nimble поддерживает два сценария для обработки входных потоков:публикация потока по протоколу RTMP (RTMP-publish) и ретрансляция готового RTMP-потока (RTMP-pull).Можно совмещать оба сценария, передавая Nimble оба типа входных потоков и получая на выходе DASH и HLS. .

    Рисунок 3 - Список доступных серверов

Рисунок 4 - Серверы для настройки

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

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

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

    Рисунок 5 - Интерфейс Global

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

Чтобы Nimble мог получать опубликованные потоки, он должен быть настроен на прослушивание определённого интерфейса — адреса и порта.

  • Перейдите на вкладку Interfaces и нажмите на кнопку Add interface (см. Рисунок 6).
  • Дальше появится диалог для указания адреса и порта для прослушивания. Поле IP address можно оставить пустым, в этом случае Nimble будет прослушивать все доступные адреса.[Источник 4].

Рисунок 6 - Настройка интерфейса

Источники

  1. Nimble Streamer//Wikipedia. [2019] Дата обновления: 14.01.2019. URL:https://en.m.wikipedia.org/wiki/Nimble_Streamer ( дата обращения 20.01.2019)
  2. Nimble Streamer - сервер для медиа-стриминга//Записки отставного сиэмщика. [2016] Дата обновления: 23.10.2013. URL: http://scm-notes.blogspot.com/2013/10/nimble-streamer-http-hls-streaming.html (дата обращения 20.01.2019)
  3. Nimble Streamer//Microsoft. [2017] Дата обновления: 24.11.2016. URL:https://azuremarketplace.microsoft.com/en-gb/marketplace/apps/wmspanel.nimble-streamer-ubuntu?tab=Overview (дата обращения 20.01.2019)
  4. Медиа-сервер Nimble Streamer. Живое вещание DASH и HLS через Nimble Streamer //ADVIEW. [2019] Дата обновления: 17.12.2015. URL:https://adview.ru/cat_automation/media-server-nimble-streamer-zhivoe-veshhanie-dash-i-hls-cherez-nimble-streamer/ (дата обращения 20.01.2019)