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

Запись видео (DVR) в Nimble Streamer

Запись потоков -  это один из основных сценариев в рамках живого вещания, поскольку необходимость посмотреть запись после окончания передачи, или переключаться между частями показа по ходу вещания, существует всегда. Nimble Streamer предоставляет отличные возможности для создания живых трансляций и их перепаковки из RTSP, RTMP, MPEG-TS, Icecast и SHOUTcast в любой поддерживаемый формат, такой как HLS, MPEG-DASH, RTMP, RTSP и MPEG-TS. 

Следующий шаг в развитии этой функциональности - это запись живых потоков - процесс, известный также как Digital Video Recording, или DVR.

Текущие возможности DVR в Nimble Streamer:
Далее вы узнаете, как можно воспользоваться этими возможностями в вашей инфраструктуре.

вторник, 10 ноября 2015 г.

Проверенные интеграторы решений

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

Есть ряд компаний, которые давно используют наши технологии и внедряют их своим клиентам. Мы создали отдельную страницу, на который вы можете их увидеть.

Вы можете обращаться к нашим партнёрам по любым вопросам внедрения наших продуктов.

Обращайтесь к нам, если тоже хотите попасть на эту страницу.

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

Обзор механизма контроля публикаций RTSP и RTMP в Nimble Streamer

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

В настоящее время в связи феноменальным улучшения качества видео, получаемого с мобильных устройств, а также в связи с их широким распространением, появилась потребность в организации управления публикацией RTSP и RTMP потоков для большого количества потоков. Достаточно большое количество клиентов хотят, чтобы зарегистрированные на их сайтах пользователи что-то публиковали, т.е. сами создавали уникальный контент. При таком сценарии использования вещания возникает задача обеспечения безопасности и контроля публикации входящих RTSP/RTMP потоков.

Наши клиенты уже довольно длительное время и очень успешно используют защиту своих исходящих потоков с помощью функциональности WMSAuth Paywall. Но это относится только к исходящим потокам. Защита входящих потоков необходима в случае, если количество пользователей (и устройств) относительно велико и может привести к перегрузке инфраструктуры вещания. Опять же, не все пользователи ведут себя честно, некоторые могут публиковать рекламу, либо противозаконные материалы. Для защиты входящих потоков мы создали механизм Publish control, позволяющий осуществлять многоуровневую авторизацию.

Контроль входящих и исходящих потоков в Nimble Streamer

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


Теперь доступны следующие сценарии для публикации RTSP или RTMP потоков на медиа-сервер:

1. Если вам не требуется никакая защита для входящих RTSP/RTMP потоков, то вы указываете только порт RTSP или RTMP, а дальше ваши пользователи могут публиковать любые потоки на ваш сервер через указанный порт.

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

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

На этом этапе защита будет работать с использованием сигнатуры, которая формируется на основе хэша, содержащего в качестве входящих параметров:
  • идентификатор пользователя (ID),
  • название потока, 
  • пароль, который указывается при создании приложения,
  • IP-адрес.

Для чтобы использовать контроль входящих потоков необходимо создать приложение в веб-интерфейсе контроля публикации. В это приложение будут группироваться пользователи, осуществляющие вещание. Название приложения должно совпадать с названием приложения из п. 2. Именно в настройках приложения указывается второй пароль, который будет использован уже для создания сигнатуры (signature) для защиты от нежелательной публикации.

Таким образом URL, который будет использовать пользователь для публикации в Nimble Streamer, будет похож на следующий:
rtsp://192.168.5.5:554/live/stream?publishsign=aWQ9SURfMSZzaWduPW95Zi9YVHBLM0c3QkQ4SmpwVnF1VHc9PSZpcD0xMjcuMC4wLjE=
или для RTMP
rtmp://192.168.5.5:1935/live?publishsign=aWQ9SURfMSZzaWduPW95Zi9YVHBLM0c3QkQ4SmpwVnF1VHc9PSZpcD0xMjcuMC4wLjE=/stream


Здесь publishsign - это и есть сигнатура для входящего RTSP потока.

При попытке публикации RTSP или RTMP потока производится проверка сигнатуры и если она не совпадает с расчётной, то поток пользователя будет игнорироваться.
На этом этапе метод очень похож на hotlinking protection.

4. Для более тонкого контроля входящих RTSP и RTMP потоков необходимо создать обработчик (handler) и указать URL этого обработчика в веб-интерфейсе настройки защиты.
Обработчик - это HTTP контроллер, который обрабатывает POST запросы и возвращает ответы в соответствии с бизнес-логикой владельца медиа-сервера.
Если не указать URL, то фукниционал Publish control не будет пытаться запустить обработчик - это сделано для возможности отладки всего механизма. При указании URL обработчика можно указать интервал группировки входящих потоков. С его помощью будет выдержан таймаут перед тем, как будет вызван обработчик. Сделано это для того, чтобы не тратить вычислительные ресурсы и время на вызов обработчика для каждого потока.

Теперь, если вы указали URL обработчика, то функционал Publish control передаст полученную от клиента сигнатуру (publishsign) обработчику вместе с идентификатором пользователя, IP адресом, названием потока и номером запроса (seq). В ответ на запрос, обработчик должен вернуть статус и номер запроса. На основе полученного статуса из ответе от обработчика Nimble Streamer принимает решение о разрешении подключения.

5. C помощью Publish control можно контролировать публикацию RTSP и RTMP потоков не только на стадии подключения, но и в процессе вещания, когда пользователь уже подключился и начал работу. Для этого каждой сессии присваивается собственный ключ (key). Обработчик может опрашивать Nimble с любой периодичностью, чтобы узнать, какие пользователи с каким ID куда публикуют свои данные. Далее, если согласно бизнес-логике требуется остановить вещание конкретной сессии, делается вызов на этот экземпляр Nimble, с указанием её идентификатора, после чего вещание прекращается немедленно.

С появлением функционала Publish control медиа-сервер Nimble Streamer теперь защищает не только исходящие потоки от неавторизованного просмотра, но и входящие потоки от неавторизованной публикации.

В следующих публикациях мы опишем более подробно порядок настройки и дадим пример исходного кода для создания обработчика.

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


RTSP publish control framework overview

Nimble Streamer paywall feature set, Transmux RTSP to HLS, RTMP, DASH and more via Nimble Streamer, Поддержка RTMP в Nimble StreamerHot-linking protection for Nimble StreamerMobile broadcasting library for iOS platform


вторник, 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 потоков по запросу

Трансляция живого видео через Интернет дает высокую нагрузку на каналы связи. Для снижения нагрузки и обеспечения отказоустойчивости вещания используются техники балансировки нагрузки (см. статью "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 потоков. 

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

воскресенье, 30 августа 2015 г.

Трансляция онлайн-видео с минимальной задержкой

Сегодня мы опубликовали новую статью на Хабре: Трансляция онлайн-видео с минимальной задержкой.

На примере одного из наших клиентов мы показываем как можно уменьшить время задержки при передаче живого видео.

вторник, 25 августа 2015 г.

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

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


Для преодоления таких ограничений можно создать сеть вещания, состоящую из origin-сервера и edge-серверов. Разместив origin-сервер в крупном дата-центре, а edge-сервера ближе к зрителям, можно создать отказоустойчивую сеть вещания, которая позволит балансировать нагрузку между origin и edge серверами, а также уменьшить нагрузку на каналы связи с помощью настройки кэширования. По-сути мы создадим свой Content Delivery Network (CDN). Далее мы рассмотрим как это сделать с помощью Nimble Streamer и ретрансляции потоков по протоколу RTMP.

Новая статья о VOD в Nimble Streamer на itmultimedia.ru

Не так давно на сайте IT и мультимедиа была опубликована статья "Медиа-сервер Nimble Streamer. Живое вещание DASH и HLS через Nimble Streamer", которая описывала пошаговую настройку сценария с живым вещанием с энкодера через Нимбл на плеер для просмотра зрителями. Статья нашла хороший отклик, поэтому было решено описать ещё один популярный сценарий.

Новая статья "Построение сети доставки видео-по-запросу с помощью Nimble Streamer" описывает настройку VOD сценария, в которм есть ориджин (ценральный медиа-сервер) с контентом и есть эдж-сервера, стоящие ближе к зрителям. Этот подход позволяет сократить расходы на доставку контента и существенно улучшить процесс просмотра видео.

Спасибо itmultimedia.ru за публикацию!



понедельник, 24 августа 2015 г.

Мы стали участниками Сколково

Рады сообщить, что наша компания, представляя проект Nimble Streamer, стала участником проекта Сколково. Это стало возможным благодаря открытию Дальневосточного Представительства Фонда, т.к. наша команда базируется во Владивостоке.


Сколково предоставляет ряд существенных финансовых льгот и, что самое важное, даёт много возможностей для развития бизнеса. Благодаря открытию представительства в нашем регионе, ими смогут воспользоваться проекты со всего Дальнего Востока России.

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

воскресенье, 23 августа 2015 г.

Трансляция живых потоков на YouTube с помощью Nimble Streamer

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


В настоящей статье будет описан процесс публикации живого потока с мобильного приложения Larix Broadcaster на YouTube при помощи медиа-сервера Nimble Streamer. Однако, можно использовать любой энкодер для генерации потока (например, Adobe FMLE или FFMPEG), Nimble Streamer отлично ретранслирует RTSP и RTMP потоки на YouTube.

четверг, 20 августа 2015 г.

Установка и запуск приложения для мобильного стриминга Larix Broadcaster

Хотите транслировать живое видео с мобильного устройства на весь мир? Вашими зрителями могут быть клиенты, коллеги, друзья, члены семьи и все те, кому вы хотите показать текущий момент своей жизни. Безусловно, это должно быть просто. Всего два шага: навести мобильное устройство на объект съемки и нажать на кнопку.


В этой статье будет показано, как создать видео трансляцию с устройства на базе операционной системы Android с помощью Larix Broadcaster — бесплатного мобильного приложения, которое умеет вещать живое видео и/или аудио на медиа-сервер по протоколу RTSP. В качестве медиа-сервера мы возьмем Nimble Streamer, потому как он бесплатен, обладает широким функционалом и снабжен подробными руководствами по настройке.

среда, 12 августа 2015 г.

Защита от вставки прямых ссылок в случае динамически меняющихся IP адресов



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

Довольно часто интернет-провайдер на стороне клиента обеспечивает доступ через прокси-сервер. В этом случае для настройки защиты от вставки прямых ссылок необходимо выделить IP адрес клиента из заголовков запроса к веб-серверу (более подробно про этот метод написано в статье "Using WMSAuth paywall with CloudFlare and other proxies" в нашем блоге).

В редких случаях интернет-провайдер меняет IP адрес клиента при каждом запросе к медиа серверу.  В такой ситуации медиа-сервер блокирует возможность просмотра видео, так как из-за разных IP адресов подписи URL медиа-данных не совпадают. В такой ситуации защита от вставки прямых ссылок будет блокировать просмотр видео для авторизованных пользователей.
Поэтому, чтобы защитить свой контент и в то же время дать возможность просматривать видео авторизованным пользователям можно использовать платформу платы за просмотр (Pay Per View), где в качестве параметра подписи URL медиа-данных вместо IP-адреса можно указать любой другой идентификатор пользователя, уникальный в пределах вашей сети вещания.

вторник, 11 августа 2015 г.

Библиотека мобильного вещания

Команда WMSPanel представляет новый продукт для мобильной платформы Android под названием Библиотека мобильного вещания.

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

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

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

понедельник, 10 августа 2015 г.

Привязка к домену (Domain Lock)




Процесс вещания тесно связан с раскруткой собственного веб-ресурса. Для того, чтобы максимальное количество пользователей посмотрело видео именно на вашем сайте, необходимо ограничить возможность копирования ссылки на это видео. Такое ограничение называется привязка к домену (Domain Lock) и позволяет сохранить уникальность вашего контента.
Наиболее стойкую защиту можно выполнить при помощи защиты от вставки прямых ссылок. Для этого необходимо добавить подпись к URL медиа-данных и такая подписанная ссылка на других сайтах работать не будет. Подробно об этом написано в разделе "Защита от хотлинкинга и привязка к домену" на сайте WMSPanel. Такая защита требует внесения изменений в код веб-страницы, на которой расположен плеер. Иногда недобросовестные пользователи с помощью специальных приложений вычленяют URL из пользовательской веб-страницы и парсят его внутри своего встроенного медиа-плеера. В таких случаях необходимо использовать более сложную защиту (подробно про технику кражи подписанных ссылок и защиту от этой техники можно посмотреть в статье "Protecting media links from web scraping").



В некоторых случаях достаточно, чтобы медиа-файл проигрывался только по определенному URL, содержащему ваше доменное имя. Для таких целей существует более простой метод, который не требует изменения кода страницы и защищает от воспроизведения контента на сторонних веб-ресурсах. Метод основан на проверке встроенным в веб-страницу медиа-плеером файла crossdomain.xml (более подробно можно почитать в статье Cross-domain policy and access control in Nimble Streamer).

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

Вы также можете комбинировать вышеуказанные методы, чтобы создать многоуровневую защиту для вашего контента.

понедельник, 3 августа 2015 г.

Запрет на скачивание файлов при трансляции видео-по-запросу

Современные медиа-серверы поддерживают множество протоколов потоковой передачи, которые используются для различных задач вещания. Самым простым и доступным протоколом для стриминга видео-по-запросу является Progressive download (псевдо-стриминг). Его главное достоинство заключается в том, что он может быть воспроизведен любым плеером и даже средствами HTML5. Однако есть один существенный недостаток — передаваемые файлы легко скачиваются целиком. Для некоторых медиа-компаний этот недостаток является критичным, поэтому они предпочитают использовать более сложные протоколы, такие как HLS или MPEG-DASH. А Progressive download закрывают или оставляют его доступным только для определённого круга лиц. В этой статье мы расскажем, как это сделать.

Блокировка progressive download (псевдо-стриминга)

Для того, чтобы защитить ваши медиа-файлы от скачивания, необходимо добавить одно правило в WMSPanel.

четверг, 23 июля 2015 г.

Продвинутая доставка MPEG-TS по UDP при помощи Nimble Streamer

Широкий круг задач потоковой передачи медиа-контента в корпоративной сети связан с вещанием MPEG-TS по UDP. С помощью Nimble Streamer можно передавать поток в мультикастовую сеть, на DVR-хранилище, транскодер или на монитор для презентации.

Потоковая передача MPEG-TS по UDP мультикастом с помощью Nimble Streamer

Бывают случаи, когда нужно передать несколько программ в одном MPEG-TS потоке. Такая задача часто стоит при трансляции в частной сети (гостиница, предприятие), когда используется аппаратный декодер, который на вход поддерживает только MPEG-TS.

Транзмаксинг нескольких потоков RTMP, RTSP и MPEG-TS в единый MPEG-TS UDP поток

Отличительной особенностью Nimble Streamer является возможность перепаковки (транзмаксинга) до 256 входящих потоков RTMP, RTSP и MPEG-TS в единый многопрограммный MPEG-TS поток с последующей передачей по UDP. Каждому входящему в состав потоку присваиваются уникальные значения PMT PID, Video PID и Audio PID.
Можно взять потоки RTMP, RTSP и MPEG-TS из любых источников, объединить их в один UDP MPEG-TS и транслировать мультикастом внутри сети.


Более полное описание работы с UDP читайте в нашем англоязычном блоге. Там, в частнонсти, приводятся указания по устранению часто возникающих ошибок.



среда, 22 июля 2015 г.

Стриминг VOD с удалённого HTTP хранилища с помощью Nimble Streamer

Многие вещательные компании используют удалённые хранилища медиа-данных как удобный способ организации инфраструктуры видео-по-запросу (VOD). Основные преимущества такого выделенного хранилища заключаются в том, что все файлы хранятся в одном месте - это позволяет забыть о сопровождении множества копий одних и тех же файлов на всех edge-серверах, а также экономить на покупке или аренде дискового пространства для них. Кроме того, когда медиа-файлы расположены в большом специализированном хранилище, можно легко настроить резервное копирование, восстановление, следить за тем, чтобы не было дублирования одних и тех же файлов, а также управлять контентом: добавлять, удалять и заменять его. Именно поэтому централизованные хранилища, такие как Amazon S3, очень популярны.

Вещание удаленно хранимого контента.

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

понедельник, 15 июня 2015 г.

Несколько статей на русском

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




  • Блог проекта на Spark.ru - там мы выложили обзорные статьи, а также описали впечатления от посещения некоторых индустриальных конференций и выставок.


Будущие сторонние публикации мы планируем также анонсировать в этом журнале.

Следите за обновлениями здесь и в соцсетях: Facebook, Twitter, Google+,LinkedIn.

Чем мы занимаемся

Добрый день.

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

В первую очередь, это Nimble Streamer - медиа-сервер, т.е. программное обеспечение для приёма медиаданных, их трансформации и передачи зрителям. Он очень шустрый (отсюда и название), потребляет мало ресурсов и за его использование не нужно платить, т.е. это freeware.

Для работы с Нимблом, а также такими медиа-серверам как Wowza Streaming Engine и Flussonic, у нас есть WMSPanel. Это контрольная панель, которая позволяет удалённо, через веб-интерфейс, управлять поведением сервера и снимать разнообразнейшую статистику. Это вебсервис, который работает по модели SaaS, т.е. его можно использовать за регулярную абонентскую плату столько, сколько нужно. Статистика весьма разнообразна и её можно давать на просмотр своим пользователям как white label, т.е. через интерфейс, изменённый под ваш вебсайт и на вашем домене.

У нас также есть набор функциональности Paywall. Вы можете ограничивать доступ к своим медиа по географии пользователя, можете предотвращать hotlinking оплаченных потоков, делать pay-per-view, настраивать SSL, а также использовать DRM.

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

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

Также подписывайтесь на наши социальные сети: Facebook, Twitter, Google+, LinkedIn. Там проходят новости, которых может не быть в этом журнале, в первую очередь из англоязычного блога.