Wowza REST API

2015-12-20 13:07:45

Wowza Streaming Engine представляет собой гибкое и функциональное решение для передачи потокового контента практически на любые платформы. Богатство возможностей обеспечивает решение практически любых задач. Wowza Streaming Engine может быть настроен как редактированием конфигурационных XML файлов, так и через имеющийся веб-интерфейс. Предоставляемые возможности содержат базовые настройки, позволяя принять потоки, настроить параметры стриминга, записи и транскодирования, и многое другое. Администратор может настроить Wowza для приема потока от внешних источников сигнала, разрешить публикацию потоков направляемых на Wowza энкодерами, настроить кэширование VOD файлов, проверить работоспособность и величину нагрузки на систему. И этого вполне достаточно, если не стоит задачи создания действительно функционального продукта, который будет сочетать в себе не только возможности «ретранслятора» потоков, но и также множество других функций, которые понадобятся при проектировании собственного медиапортала, но отсутствующие в функционале Wowza. При всем богатстве возможностей административного интерфейса никакой графической оболочки для того, чтобы предоставить все удобства и сервисы конечному потребителю с Wowza не предоставляется. Такой подход позволяет разработчикам реализовать собственные интерфейсы согласно задаче, а не привязываться к определенным компонентам. Оформление ресурса почти всегда является отдельной разработкой, которая имеет уникальный стиль, свои особенности реализации, специальные модули. Все это призвано обеспечить тот способ взаимодействия, который в полной мере удовлетворит конечного потребителя и провайдера услуги. Эти дополнительные возможности (написанные самостоятельно или являющиеся частью сторонних разработок) должны быть совмещены с функциями медиасервера, чтобы дать администратору конечного продукта единую рабочую среду вместо разрозненных компонентов. Именно поэтому разработчики предоставляют REST [1] API (Application Programming Interfaces), то есть средства, которые без написания сложного программного кода позволяют встроить требуемый функционал в собственную разработку.

Интерфейс REST API включен в комплект поставки Wowza Streaming Engine и не требует покупки дополнительной лицензии. Все методы работы с API необходимые для создания полноценных продуктов описаны в документации. Cразу после инсталляции Wowza на сервер работа с документацией недоступна. Требуется разрешить доступ к документации в настройках Wowza и скачать пакет с приложением для просмотра документации с сайта Wowza Media (RESTAPIDocumentationWebpage.zip). Для предоставления доступа необходимо отредактировать конфигурационный файл [install-dir]/conf/Server.xml, установив значение true для параметра и перезапустить сервис Wowza. Так же можно настроить TCP порт ( по умолчанию 8089 ) и опций аутентификации. Для просмотра документации необходимо распаковать содержимое скачанного архива на локальный диск или загрузить в директорию веб сервера и открыть файл index.html в браузере. В поле URL нужно указать IP адрес сервера Wowza , после чего информация о всех доступных метода API станет доступна в следующем виде:

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

Проверить вызов методов API можно прямо в веб-интерфейсе просмотра документации (без установки Curl, Postman и тд.). Необходимо заполнить несколько полей и ссылка будет сгенерирована автоматически, как это показано на рисунке. Другими словами это не просто интерфейс для чтения документации, но и средством тестирования и отладки будущих элементов приложения. Следует отметить, что по умолчанию возможность отправлять запросы к API разрешена только для IP 127.0.0.1 ( те с того же сервера, где установлена Wowza). Добавить IP в список можно отредактировав значение параметра в файле конфигурации [install-dir]/conf/Server.xml и перезагрузив сервис Wowza.

Rest API позволит создать собственный интерфейс управления, настройки, отображения статистики, регулирования прав доступа, управление транскодингом и многое другое. Безусловно, на практике все это выглядит не так просто, как описано в статье, для серьезных решений требуется длительно тестирование, отладка и правка исходного кода. Однако, для того, чтобы начать создавать собственное решение, будет достаточно общих знаний основ программирования и веб-верстки.

[1] REST (Representational State Transfer) — «передача репрезентативного состояния, метод взаимодействия компонентов распределённого приложения в сети Интернет, при котором вызов удаленной процедуры представляет собой обычный HTTP-запрос (обычно GET или POST; такой запрос называют REST-запрос), а необходимые данные передаются в качестве параметров запроса.