Все о дополнительных модулях для 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.