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, необходимые для создания полноценных продуктов, описаны в документации. Сразу после инсталляции 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-запрос), а необходимые данные передаются в качестве параметров запроса.