Все о дополнительных модулях для Wowza Streaming Engine

2019-12-17 10:00:00

При покупке лицензии Wowza Streaming Engine нет необходимости выбирать опции, редакции или версии, так как все функциональные возможности этого уникального медиасервера включены в единственный комплект поставки - пользователь получает все сразу. Лицензии различаются периодом технической поддержки и способом проверки лицензии, но их функциональное наполнение одинаково. Wowza Streaming Engine - это не конструктор , а программный продукт рассчитанный на работу сразу «из коробки» в большом количества сценариев использования, с возможностью более детальной настройки и доработки посредством открытого API. Также разработчик медиасервера , компания Wowza Media предлагает довольно обширный набор дополнительных модулей – расширений функциональности Wowza, созданных с использованием этого API . Некоторые из модулей доступны вместе с исходным кодом , некоторые только в форме готовой библиотеки, но все они бесплатны . Их можно скачать с сайта wowza.com и установить на свой сервер не разбираясь в тонкостях программирования или использовать как пример для создания своего программного кода. Данная статья подготовлена компанией PWI для ознакомления действующих пользователей Wowza и тех , кто только планирует покупку медиасервера, с модулями доступными для скачивания на сайте wowza.com:

1. Дополнительные средства безопасности.

ModuleRefererValidate module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-control-access-to-your-application-by-checking-referer-domain-modulereferervalidate)
Модуль позволяет разрешить просмотр потока только с веб страницы определенного интернет сайта. Проверка осуществляется методом валидации заголовка HTTP referer в запросе плеера на просмотр потока. Модуль поставляется виде готовой библиотеки Wowza и примеров HTML кода. Для использования модуля будет достаточно базовых знаний HTML и минимального опыта администрирования Wowza. Модуль обеспечивает начальный уровень защиты от несанкционированного просмотра. Как серьезный инструмент обеспечения сохранности контента рассматривать его нельзя.

ModuleSecureURLParams module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-secure-publishing-from-an-rtmp-encoder-that-does-not-support-authentication-modulesecureurlparams)
Модуль предназначен для использования с RTMP энкодерами не поддерживающими challenge/response механизм авторизации публикатора. Ключ передается в параметрах RTMP ссылки для публикации потока на сервер. Для использования модуля достаточно минимального опыта администрирования. Модуль является частью Wowza и не требует установки дополнительных компонентов. Обеспечивает минимальный уровень защиты от несанкционированной публикации потоков на сервер.

Авторизация пользователя для публикации потока может оказаться достаточно сложной задачей для реализации на стороне веб сервера или мобильного приложения, требующей разработку или усложнение существующего программного кода. В тоже время обеспечить аналогичный уровень защиты можно с помощью альтернативного подхода, не предусматривающего авторизацию пользователя с передачей пароля или параметров безопасности. Более подробно о таком методе защиты точки публикации вы можете узнать на этой странице PWI Secure publisher Addon for Wowza Streaming Engine

OnConnectAuthenticate2 module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-do-file-based-rtmp-authentication-with-url-query-strings-onconnectauthenticate2)
Данный модуль аналогичен по своему функционалу предыдущему модулю, но позволяет указать в текстовом файле персональные параметры авторизации для нескольких публикаторов.

ModuleLimitStreamViewers module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-limit-the-number-of-viewers-to-a-stream-modulelimitstreamviewers)
Полезный модуль в ситуации , когда количество зрителей желающих просмотреть поток превышает возможности сетевого соединения. После установки лимита, все новые зрители после достижения указанного значение будут получать отказ в просмотре потока, не мешая просмотру уже подключенных пользователей. Модуль поставляется виде готовой библиотеки Wowza. Для использования модуля будет достаточно минимального опыта администрирования Wowza.

ModuleTimedDisconnect module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-disconnect-connected-clients-after-a-specified-time-period-moduletimeddisconnect)
Модуль применяемый для ограничения времени непрерывного просмотра потока пользователем. Модуль поставляется виде готовой библиотеки Wowza. Для использования модуля будет достаточно минимального опыта администрирования Wowza.

BlacklistStreams module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-blacklist-a-stream-in-session-blackliststreams)
Модуль позволяет запретить публикацию потоков с определенными именами. Добавление имен потоков в black list осуществляется с HTML страницы управления модулем. Модуль поставляется виде готовой библиотеки Wowza. Для использования модуля будет достаточно минимального опыта администрирования Wowza.

ModuleLimitPublishedStreamBandwidth module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-monitor-bandwidth-of-published-streams-modulelimitpublishedstreambandwidth)
В случае лимитированных ресурсов сервера модуль позволяет ограничить битрейт RTMP потока публикуемого пользователем. Например запретить публикацию потоков кодированных с битрейтом более 3мбит. Как только битрейт превысит заданное значение публикатор будет отключен. Модуль поставляется виде готовой библиотеки Wowza. Для использования модуля будет достаточно минимального опыта администрирования Wowza.

2. Управление записью live потоков и VOD приложениями Wowza.

ModuleMediaListPathSelector module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-use-different-locations-for-smil-files-and-vod-assets-modulemedialistpathselector)
Модуль позволяет размещать видеофайлы и файлы с метеданными (SMIL) в разных директориях . Файлы с метаданными необходимы в том случае, когда VOD контент доступен в нескольких вариантах качества - мультибитрейт. Каждому такому набору из нескольких MP4 файлов должен соответствовать один SMIL файл. Во многих случаях хранить видеофайлы и файлы с метаданными в одной директории может быть нежелательно. Модуль позволяет указать раздельные пути для каждого типа файлов. Модуль поставляется виде готовой библиотеки Wowza. Для использования модуля будет достаточно минимального опыта администрирования Wowza.

ModuleMultiTrackVOD module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-select-multiple-tracks-from-a-vod-file-modulemultitrackvod)
Контейнер MP4 позволяет хранить в одном физическом файле несколько видео, аудио треков , а также треков с данными. Иногда в такие файлы записывается видео контент с переводом на несколько языков. Данный модуль позволяет указав в URL просмотра параметры запроса проигрывать один из треков, например определенный язык перевода. Модуль поставляется виде готовой библиотеки Wowza. Для использования модуля будет достаточно минимального опыта администрирования Wowza.

Использование возможностей MP4 контейнера для хранения видео и звуковых треков с переводом в одном файле кажется очень удобным. Но просмотр таких файлов в десктоп плеерах иногда сопряжен со сложностями, тк выбор звуковой дорожки в интерфейсе плеера не всегда очевиден. Если пользователи скачивают файлы для локального просмотра, это может быть принципиальным моментом. В этих случаях проще хранить несколько вариантов MP4 файла, каждый, со своим языком звуковой дорожки. Потребуется больше места на диске, но меньше проблем с поддержкой пользователей скачивающих файлы. Для поддержки обоих способов записи и проигрывания MP4 файлов с несколькими языками перевода PWI был разработан специальный модуль, узнать о котором вы сможете здесь PWI Multilingual SMIL Addon for Wowza Streaming Engine

MediaCacheLocalContent module for Wowza Streaming Engine
(https://www.wowza.com/docs/media-cache-implementation-that-will-first-try-to-access-content-locally-before-getting-it-from-a-remote-source-mediacachelocalcontent)
Модуль позволяющий гибко настроить логику работы VOD приложения медиасервера с MP4 файлами размещенными на локальном диске (например записи live потока) и файлами доступными для скачивания из внешних источников по протоколу HTTP (облачные хранилища). При обращении пользователя на просмотр какого-то файла его поиск сначала будет происходить на локальном диске , а затем во внешних хранилищах. Модуль поставляется виде готовой библиотеки. Для установки и настройки потребует определенного опыта работы с Wowza и опцией кэширования Wowza Media Cache в частности.

MediaCachePreload module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-preload-files-for-the-media-cache-system-mediacachepreload)
Этот модуль применяется для предварительной загрузки в кеш Wowza Media Cache определенных файлов из удаленного источника с целью ускорения работы и сглаживания пиковых нагрузок сети при первом запросе VOD контента. Также может применяться для ускорения работы VOD приложения в целом тк файлы загруженные в кэш хранятся в оптимизированном формате. Модуль поставляется виде готовой библиотеки. Для установки и настройки потребует определенного опыта работы с Wowza и опцией кэширования Wowza Media Cache в частности.

ModuleMediaWriterFileMover module of Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-move-recordings-from-live-streams)
Встроенный модуль, не требующий скачивания отдельной библиотеки. Используется для автоматического копирования или перемещения файлов записи в другую директорию на сервере. Для использования модуля будет достаточно минимального опыта администрирования Wowza.

ModuleS3Upload module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-upload-recorded-media-to-an-amazon-s3-bucket-modules3upload)
Функционально похож на предыдущий модуль , но позволяет копировать или переместить записанный файл в облачное хранилище S3. Для использования модуля будет достаточно минимального опыта администрирования Wowza и опыт работы S3.

LiveStreamRecordAutoRecord module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-start-recording-streams-automatically-livestreamrecordautorecord)
Модуль управления автоматической записью. Позволяет указать имена потоков для автоматической записи, вместо фоновой записи всех потоков публикуемых на приложение. Для установки модуля будет достаточно минимального опыта администрирования Wowza.

Для более детального управления процессом записи live потока PWI был разработан специализированный модуль позволяющий осуществлять запись live трансляций по расписанию. Можно записывать как отдельные трансляции, так и повторяющиеся в определенные часы и дни недели. Модуль поддерживает API интеграции с внешней системой, используя который можно задавать расписание и получать ссылки на скачивание записей в интерфейсе стороннего веб приложения. Более детальная информация о модуле доступна тут: PWI Video recorder Addon for Wowza Streaming Engine

ModuleDvrRecorderControl module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-control-which-streams-get-recorded-by-the-ndvr-recorder-moduledvrrecordercontrol)
Функциональность модуля аналогична предыдущему модулю, но применяется для управления записью nDVR. Для установки модуля будет достаточно минимального опыта администрирования Wowza.

3. Дополнительные возможности конфигурирования live приложений Wowza.

StreamNameAlias AddOn package for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-get-the-streamnamealias-addon)
Модуль позволяющий создавать псевдонимы имен потоков. Может использоваться для маскировки имен потоков в целях обеспечения безопасности или для замены длинных URL потоков. Также применяется вместо .stream файлов MediaCaster. Модуль предназначен для продвинутых пользователей Wowza.

ModuleDuplicateStreams module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-duplicate-streams-to-another-application-instance-moduleduplicatestreams)
Модуль позволяет создать дубликат потока на другом приложении Wowza без сложных настроек. Интересная опция для некоторых сценариев записи и обработки потока. Для установки модуля будет достаточно минимального опыта администрирования Wowza.

TranscoderKeyFrameControl for Wowza Streaming Engine
(https://github.com/WowzaMediaSystems/wse-plugin-transcoderkeyframecontrol)
Модуль позволяет контролировать процесс транскодирования потока и вставлять ключевой кадр с заданным интервалом, с соблюдением синхронизации между потоками мультибитрейта.

ModuleTranscoderControl module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-control-which-streams-get-transcoded-moduletranscodercontrol)
Модуль позволяет указать имена потоков, которые следует транскодировать вместо создания отдельных шаблонов транскодирования для каждого потока. Для установки модуля будет достаточно минимального опыта администрирования Wowza.

ModulePacketizerControl module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-control-which-streams-get-packetized-for-http-streaming-modulepacketizercontrol)
Аналогичен по функциональности предыдущему модулю , но позволяет выбрать указать потоки требующие пакетизации в HTTP протокол. Позволяет несколько снизить нагрузку на ресурсы сервера в том случае , кода пакетизировать нужно только часть из потоков , например только транскодированные с логотипом . Для установки модуля будет достаточно минимального опыта администрирования Wowza.

ModuleAddAudioTrack module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-add-an-audio-track-to-a-video-only-stream-moduleaddaudiotrack)
Модуль позволяет добавить звуковой трек к видеопотоку , например музыкальный фон к потоку IP камеры. В виде источника звука используется MP4 файл. Для установки модуля будет достаточно минимального опыта администрирования Wowza.

ModuleAVMix module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-mix-audio-and-video-from-different-live-sources-moduleavmix)
В отличии от предыдущего модуля позволяет использовать аудио трек из другого потока, а не из файла. Может применяться для трансляции с синхронным переводом. Модуль предназначен для продвинутых пользователей Wowza.

ModuleLoopUntilLive application module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-loop-a-pre-roll-until-a-live-stream-starts-loopuntillive)
Данный модуль позволяет включать заставку во время перерыва в трансляции live потока или перед началом live трансляции. Вместо одного файла можно указать список из нескольких файлов, например рекламных роликов. Для установки модуля необходим некоторый опыта администрирования Wowza.

Для неподготовленного пользователя установка и настройка модуля LoopUntilLive может оказаться достаточно сложной задачей, тк как фактически требует установки двух модулей и создания XML файлов. Компания PWI предлагает собственное решение, с упрощенной процедурой установки и дополнительными опциями автоматического переключения входного потока на резервные потоки, с учетом их приоритета или на файл заставки, если резервных потоков нет или они не работают. Узнать обо всех опциях модуля PWI можно на этой странице: PWI stream monitor Addon for Wowza Streaming Engine

StreamPublisher module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-schedule-streaming-with-wowza-streaming-engine-streampublisher)
Модуль создания ТВ канала из файлов и live потоков ( автоматизация телевизионного вещания ). Расписание ТВ канала сохраняется в файле, в формате SMIL. После редактирования SMIL файла необходима перезагрузка приложения с модулем. Модуль предназначен для продвинутых пользователей Wowza.

Несмотря на то, что StreamPublisher module обладает достаточным функционалом для формирования статического расписания трансляции ТВ канала использовать его в режиме с часто изменяемым расписанием затруднительно. В качестве полноценного решения ТВ автоматизации PWI был разработан специализированный модель поддерживающий плейлисты с несколькими приоритетами, расписание по дням недели, работу с файлами расположенными в облачном хранилище и многое другое. Модуль поставляется с веб консолью управления и позволяет изменять расписание без перезагрузки приложения и обрыва потока. Подробная информация о модуле доступна по ссылке: PWI playlist management Addon for Wowza Streaming Engine

HTTPStreamControl module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-control-stream-class-streams-dynamically-httpstreamcontrol)
Этот модуль предоставляет HTTP API управления плейлистом. Может использоваться отдельно или совместно с предыдущим модулем. Доступны несколько основных команд управления плейлистом: создать/удалить поток, создать/удалить плейлист, добавить/удалить элемент плейлиста, Модуль предназначен для продвинутых пользователей Wowza.

ModuleCupertinoLiveAttachPicture module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-add-poster-frames-to-apple-http-streams-id3-metadata-for-app-store-audio-renditions)
Модуль предназначен для организации вещания подкастов с прослушиванием в мобильном приложении. Политика Apple запрещает проигрывание в приложении потоков без видео трека. Добавление статической картинки в поток решает эту проблему. Для установки модуля будет достаточно минимального опыта администрирования Wowza.

ModuleTranscoderTimedSnapshot module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-take-timed-thumbnail-snapshots-of-a-wowza-transcoder-stream-moduletranscodertimedsnapshot)
Модуль позволяет получать скриншоты потока и сохранять из в отдельные файлы с временной меткой или перезаписывать. Модуль использует транскодер что значительно повышает требования к аппаратным ресурсам сервера. Для установки модуля будет достаточно минимального опыта администрирования Wowza.

4. Администрирование Wowza

Analytics module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-send-connection-and-stream-statistics-to-google-analytics-analytics)
Модуль позволяет отправлять статистику просмотров на сервер Google Analytics и использовать все инструменты и отчеты для просмотра текущей и исторической статистики обращений к Wowza , аналогично обычным просмотрам веб страниц сайта.

GeoIP module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-enable-geographic-locking-modulegeoiplock)
Блокировка просмотров из определенных стран и географических регионов является одним из важных элементов соблюдения авторских прав на контент. Этот модуль как раз и предназначен для ограничения просмотра с запрещенных IP адресов.

ServerListenerLoadAndLockAppInstances module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-use-a-server-listener-to-load-and-lock-an-appinstance-serverlistenerloadandlockappinstances)
В общем случае конфигурация приложения Wowza загружается в память только после того как начинается публикация потока на данное приложение. В некоторых случаях такое поведение системы не позволяет реализовать специальные функции приложения. Данный модуль как раз позволяет инициализировать приложение сразу при старте Wowza. Установка модуля очень проста , но сам модуль может быть интересен только продвинутому пользователю Wowza.

ModuleStreamResolver module for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-dynamically-resolve-edge-server-stream-requests-to-origin-servers-modulestreamresolver)
Интересный модуль для построения масштабируемой системы потокового вещания. Если имеется несколько origin серверов и заранее неизвестно на каком из них будет опубликован поток применение данного модуля значительно облегчит конфигурацию edge серверов. Поиск origin будет осуществляться автоматически. Модуль предназначен для продвинутых пользователей Wowza.

Dynamic Load Balancing AddOn for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-get-dynamic-load-balancing-addon)
Мощная система для построения полнофункциональной сети доставки контента (CDN), с географическим распределением нагрузки и отказоустойчивостью. Модуль предназначен для продвинутых пользователей Wowza.

Central Configuration AddOn for Wowza Streaming Engine
(https://www.wowza.com/docs/how-to-get-central-configuration-addon-simplify-multiple-server-deployments)
Система централизованного управления несколькими серверами Wowza. Данное решение предназначено для администраторов нескольких серверов Wowza с однотипной конфигурацией. Консоль позволяет применять изменения конфигурации одновременно ко всем серверам Wowza.