вторник, 29 сентября 2015 г.

Библиотека мобильного вещания для платформы iOS

Команда Nimble Streamer наблюдает постоянный рост спроса от наших клиентов на новые функции для мобильного вещания. Современные мобильные устройства способны предоставлять видео и аудио контент высокого качества, и, что самое главное, мобильные устройства сегодня очень широко распространены. Из этого следует, что доля трафика мобильного вещания постоянно растёт. Однако, создание просто мобильного приложения для вещания не является основной целью.

В июле 2015 года наша команда анонсировала библиотеку мобильного вещания и простое приложение под Android - Larix Broadcaster. В настоящий момент, по многочисленным просьбам наших клиентов, мы анонсируем библиотеку мобильного вещания и демонстрационное приложение для платформы iOS.

Живое вещания с iOS устройств

вторник, 22 сентября 2015 г.

Автоматизация развёртывания Nimble Streamer

WMSPanel является официальным UI для Nimble Streamer и доступна по подписке. Nimble Streamer в свою очередь является бесплатным медиа-сервером, который можно развернуть на любой небольшой виртуальной машине и он не будет требователен к ресурсам.
Наши клиенты давно и очень успешно используют для автоматической установки Nimble Streamer средства автоматического развертывания, например Amazon Elastic Cloud. Nimble Streamer позволяет осуществлять настройки независимо от WMSPanel, задавая все настройки вручную, путём внесения изменений в конфигурационные файлы.

Однако, чтобы добавить предварительно настроенный сервер Nimble Streamer в WMSPanel для получения полноценной статистики, необходимо было вручную добавлять каждый сервер в панель управления с помощью процедуры импорта конфигурации.

Для крупной инфраструктуры производить манипуляции вручную очень неудобно. Именно поэтому команда WMSPanel автоматизировала процесс добавления предварительно настроенного Nimble Streamer в WMSPanel. Теперь для этого достаточно выполнить одну команду:
sudo /usr/bin/nimble_regutil -u admin@account.com -p password --apply-rules-conf
Пожалуйста, сделайте резервную копию файла rules.conf перед запуском данной команды во избежание непредвиденных ситуаций.

После чего regutil автоматически перенесет настройки Nimble Streamer из файла /etc/nimble/rules.conf в WMSPanel, сохранив в файл /etc/nimble/nimble.conf настройки авторизации для отправки данных в панель, не тронув остальные настройки.

Такая возможность особенно удобна в случае, когда необходимо организовать трансляцию какого-то разового запланированного события и собрать с него статистику (например, концерт или финал национального кубка). Хотя и плановое построение сети доставки вполне покрывается этим сценарием.

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

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

Сопутствующая документация

Nimble Streamer deployment automation
Adding preconfigured Nimble Streamer server to WMSPanel, Nimble Streamer installation, Nimble Streamer configuration description, Nimble streaming config, Repair Nimble configs after HW failures

вторник, 15 сентября 2015 г.

Вещание с помощью Nimble Streamer, ориентированное на сети доставки контента

Наши клиенты создают собственные инфраструктуры вещания, используя Nimble Streamer для того, чтобы снизить стоимость и увеличить надёжность сетей доставки контента (CDN). Однако, иногда им необходимо покрыть аудиторию, которая расположена в регионах, где их сеть ещё не обеспечивает покрытие. Именно поэтому они начали использовать сторонние сети доставки контента. Nimble может выступать в роли origin-сервера для этих сетей и предоставлять потоки для дальнейшей ретрансляции. Некоторые сети доставки контента требуют, чтобы URL не имели идентификаторов сессии. Nimble использует параметр nimblesessionid для отслеживания сессий зрителей, но этот параметр можно отключить в настройках.

В настоящей статье будет описано как с помощью Nimble Streamer вещать в сеть доставки контента.

Пиринговое вещание с помощью Nimble Streamer

Nimble Streamer может быть использован в качестве origin-сервера для различных сценариев вещания. Одним из этих сценариев является пиринговое вещание HTTP (HTTP peer-to-peer streaming). Эта технология позволят разгрузить origin-сервер или сеть доставки контента путём обмена медиа-файлами между зрителями.

У Nimble Streamer есть несколько функций, которые требуются, чтобы использовать Nimble в качестве origin-сервера в P2P сетях. Ниже приведены эти функции:

  • Выбор количества сегментов в плейлисте - это часть общей установки живого вещания, как для сервера, так и для отдельного приложения. 
  • Указание длины сегмента - это также настраивается глобально (для сервера) и для каждого приложения.
  • Сегменты могут быть получены с помощью HTTP запросов байтового диапазона. 
  • Также поддерживаются запросы OPTIONS.
  • Поддержка заголовков CORS (Cross-Origin Resource Sharing), которая включает такие заголовки как Access-Control-Allow-Origin, Access-Control-Allow-Credentials, Access-Control-Allow-Methods и т.п. Для уточнения деталей установки прочтите эту статью.


Вы можете легко совместить P2P инфраструктуру и традиционное вещание. Nimble Streamer превосходно работает в обоих случаях. Посмотрите нижеприведённые примеры партнёрских решений, подтверждающих их совместимость с Nimble Streamer. Если вам необходимо использовать P2P для вашего бизнеса, то вы можете попробовать эти решения.

Псевдонимы потоков в Nimble Streamer

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

В настоящее время Nimble Streamer также поддерживает использование псевдонимов потоков. Вы можете задать псевдонимы через пользовательский интерфейс WMSPanel.

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

Ниже приведены основные сценарии, где использование псевдонимов отлично себя зарекомендовало:

  1. Вам необходимые различные уровни защиты для каждого псевдонима. Например, одному вашему партнеру нужно заблокировать его поток для определенных стран, в этом случае вы будете использовать блокировку определённых географических зон. В то же время другому партнеру необходимо применять защиту от вставки прямых ссылок. Добавление разных псевдонимов позволит создавать отдельные правила безопасности с помощью настроек инфраструктуры платного доступа
  2. Вам необходимо собирать статистику просмотров для каждого из ваших партнёров. В этом случае после того, как будут настроены псевдонимы, необходимо создать отдельные срезы данных для каждого партнерского псевдонима и дать им отдельные логины в брендированной панели. Каждый срез будет иметь полный набор статистики для отслеживания активности зрителей. 
  3. Вам необходимо транслировать ваш контент с Nimble в сеть доставки контента (CDN).


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

Далее будет показано, как выполнить настройку псевдонимов.

понедельник, 14 сентября 2015 г.

Аварийное восстановление настроек Nimble

Любая инфраструктура интернет-вещания базируется на использовании вычислительного оборудования. Независимо от того, какое оборудование вы используете, это оборудование иногда может выходить из строя. Если вы используете техники балансировки нагрузки, то ваши зрители не будут сильно затронуты отказом оборудования, но вам в любом случае необходимо будет выполнить процедуры восстановления. Когда физический сервер будет поднят и запущен в работу, вам необходимо восстановить его настройки вещания, которые вы задали до этого в WMSPanel. Вам нет необходимости снова вручную делать настройки, если вы используете WMSPanel.

Поскольку WMSPanel является источником всех административных настроек, то панель может отправить эти настройки обратно на сервер для того, чтобы экземпляр Nimble Streamer можно было использовать как полнофункциональный сервер вещания без дополнительных ручных настроек. Для этих целей была создана процедура восстановления настроек сервера.

Всё, что вам необходимо — это начать установку Nimble и запустить утилиту регистрации в режиме восстановления. 

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

Обработка RTSP потоков с камер по запросу

Для обеспечения безопасности и проведения мониторинга широкое распространение получили камеры видеонаблюдения. Они применяются для обеспечения безопасности образовательных учреждений: детских садов, школ, кружков. Многие используют камеры для отслеживания хода строительных проектов и охраны периметра защищаемых объектов. Часто камеры ставят в загородных домах, подключая их к Интернет.
Родители, директора строительных компаний и владельцы загородных домов должны иметь возможность в любой момент посмотреть видеопоток с камер на своём мобильном устройстве.



Nimble Streamer позволяет это сделать путём перепаковывания RTSP потока с камеры в HLS для дальнейшего просмотра на любом мобильном устройстве. Использование Nimble Streamer позволяет снизить нагрузку на канал связи между камерой и медиа-сервером, а также защитить видеопотоки от неавторизованного просмотра.

В настоящей статье будет описано, как это сделать.

воскресенье, 13 сентября 2015 г.

Общее описание концепции срезов данных

Обычно у поставщика услуг имеются ресурсы, которые используются несколькими клиенами параллельно. Конечно, каждому клиенту необходимо видеть соответствующую статистику, и поставщик услуг должен показывать данные клиента только ему самому. Для этого мы предлагаем использовать концепцию срезов данных (data slices).

В терминах WMSPanel срез данных - это предопределённый отдельный объём статистики вещания. По умолчанию у вас есть полный срез (full data slice), который содержит все статистические данные со всех серверов и потоков. Если вы хотите посмотреть статистику для части ваших серверов или потоков, то вы можете сделать это, создав новый срез данных и назначить на него соответствующие серверы, а также определить правила для сбора статистических данных.


Разрешение на доступ к срезу данных может быть настроено для отдельных пользователей и групп пользователей. Любой сервер может быть назначен на любое количество срезов данных.

Обратите внимание также на потоковые срезы (streamed slices), в случае если вам необходимо собирать данные для отдельного потока или набора потоков.






По умолчаню при регистрации создаётся полный срез (full data slice), в котором видны все серверы компании.
В нём собирается вся входящая информация со всех серверов и всех потоков.



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

Чтобы создать срез данных перейдите "Control" -> "Data slices" и нажмите на кнопку "Create Data slice".


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



Параметры, которые можно выбрать для обычного среза данных:

Time Zone - часовой пояс (для статистических данных будет указано время часового пояса, что удобно при анализе поведения пользователей).
Show streams real-time and retrospective reports - этот чекбокс включает показ статистики реального времени и ретроспективной статистики.
Show servers details for users - активация показа характеристик серверов пользователям.
Show traffic information for users - активация показа информации о трафике пользователям.
Show bandwidth information for users - активация показа переданного объема данных пользователям.
Show deep stats for users - активация показа углубленной статистики пользователям.
Show high precision data for users - активация показа высокоточных данных пользователям.
Show Geo/ISP stats for users - активация показа статистики по провайдерам и геостатистики.
Show billing information for users - активация показа билингвой информации пользователям.
Basic price - установка базовой цены за трафик.
Included traffic (GBs) - указание предположенного объёма трафика.
Price for overage per 1GB - определение цены за 1 Гбайт данных, в случае превышения установленного лимита. Прочтите эту статью для получения сведений о биллинге в WMSPanel.
Assign servers - отметка этого параметра позволяет назначить серверы для создаваемого среза.
High Pre enabled - отметка этого параметра активирует сбор высокоточной статистики.
GEO enabled - этот параметр активирует сбор геоданных о зрителях.

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



Далее нужно создать одно или несколько правил. Нажмите на кнопку "Add custom rule"



Каждое правило, по сути, предоставляет собой настройку фильтра для данных, которые должны попасть (или не должны попасть) в срез.



Для каждого правила задаются следующие параметры:
Type - правило может быть либо включающим, либо исключающим по типу (т.е. данные, которые определяют дальнейшие параметры либо будут попадать в срез, либо нет).
State - правило может находится в двух состояниях: активированном и выключенном.
vHost name - в этом поле задается имя виртуального хоста.
Application name - в этом поле задается название приложения (потока).
Последние 2 поля можно настроить, используя регулярные выражения POSIX. Например .* включает сбор статистики со всех виртуальных хостов, а если указать в поле Application name параметра live, то статистика будет собираться для всех потоков, у которых название приложения (потока) содержит подстроку live. Подробно про регулярные выражения можно прочитать здесь.

Нажмите кнопку "Add rule", чтобы сохранить правило.


На каждый срез данных можно подписать пользователей, чтобы они смотрели статистические данные, которые собраны в этом срезе. Какие данные будут доступны для показа пользователям определяется в самом начале создания среза данных (см. отмеченные галочками параметры пока статистики).
Администратор может переключатся между всеми срезами данных. Пользователь, не являющийся администратором, может переключатся между срезами данных, на которые он подписан. Подробную информацию можно найти в разделе управление пользователями и настройка прав доступа.

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

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

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

Концепция срезов данных хорошо себя зарекомендовала совместно с услугой - партнёрство по схеме "White label". Вы можете показывать статистику вашим клиентам, используя ваше собственное доменное имя и логотип без какого-либо упоминания WMSPanel. Таким образом, ваш клиент будет заходить на ваш сайт, используя идентификационные данные, которые вы ему дали и смотреть статистику. Пожалуйста прочтите статью про white label.

Смотрите дополнительную информацию о функциях относящихся к срезам данных на странице
Показ статистики конечным пользователям.

Облегчённые срезы данных


Если вам не нужна богатая функциональность в ваших срезах данных, а вы только хотите показывать ежедневную статистику для ваших клиентов, то вы можете использовать облегчённые срезы данных (lite slices). Они поддерживают меньшую функциональность и стоят дешевле. Для облегчённых срезов нет детализированных ретроспективных отчетов по каждому индивидуальному потоку. Если вы откроете "Streams report" для облегчённого среза данных, то вы не увидите ссылки на детальные графики. Также каждый облегченный срез может иметь только одного пользователя, не являющегося администратором.

Это позволяет уменьшить стоимость облегчённого среза данных вдвое по сравнению с обычным срезом.

Политика ценообразования


Если подытожить всё вышеописанное, то каждый срез данных - это отдельный набор статистических данных со своей стоимостью. Один полный срез данных стоит 20 USD в месяц. В случае нескольких срезов данных применяется накопительная система скидок. Например, если у вас 4 полных среза данных, то каждый срез обойдется вам в 17 USD в месяц. Детальную информацию посмотрите пожалуйста в полном прайс-листе.


Регистрироваться в WMSPanel! Воспользуйтесь 14-дневным пробным периодом, чтобы протестировать наши возможности по отчетности. Если у вас есть любые вопросы или пожелания, пожалуйста свяжитесь с нами для получения информации.

Срезы данных успешно применяются для Nimble Streamer. WMSPanel является официальным пользовательским интерфейсом для Nimble Streamer и предоставляет статистику с помощью удобного web-интерфейса.

Чтобы обрабатывать эту статистику с помощью ваших аналитических инструментов, вы можете использовать следующие API: Daily stats APIDuration stats APIPlayers and devices stats API и Real-time stats API.

Смотрите дополнительную информацию об отчётах вещания WMSPanel.


Сопутствующая документация


End user reporting for WowzaDaily statisticsDevices and Players report for WowzaStatistics import APIHigh precision reportingGeo location reportingStreamed slices for WowzaHigh detail reportingWhite label branded panelScreencast for daily statisticsDaily stats APIDuration stats APIPlayers and devices stats APIReal-time stats API,

среда, 9 сентября 2015 г.

Импортирование списка потоков MPEGTS из плей-листа

Nimble Streamer позволяет перепаковывать входящие потоки MPEGTS для дальнейшей ретрансляции по протоколам RTMP, HLS или MPEG-DASH. До недавнего времени нужно было потоки MPEGTS добавлять по одному, что было очень неудобно в случае большого количества потоков.



понедельник, 7 сентября 2015 г.

Обработка произвольных RTMP, RTSP, SLDP и Icecast потоков по запросу

Трансляция живого видео через Интернет дает высокую нагрузку на каналы связи. Для снижения нагрузки и обеспечения отказоустойчивости вещания используются техники балансировки нагрузки (см. статью "HLS, DASH and Icecast streaming load balancing").

Настройка pull RTMP только для запрашиваемых потоков

При настройке связки из origin и edge серверов для RTMP потоков можно настроить 2 вида ретрансляции:
  1. Можно передавать с origin-сервера (или энкодера) на edge-сервер RTMP поток в режиме publish;
  2. Edge-сервер может брать RTMP потоки (pull), указав IP адрес или hostname origin-сервера (или энкодера). 
Аналогичным образом работа строится для RTSP потоков.
Для SLDP, Icecast и SHOUTcast работает только pull.

Более подробно о создании собственной сети живого вещания можно прочитать в статье "Building RTMP live streaming network via Nimble Streamer". В настоящей статье мы рассмотрим способ уменьшения нагрузки на каналы связи за счет настройки получения только необходимых для просмотра в настоящий момент живых потоков по запросу через медиа-сервер Nimble Streamer.