2015-12-20 13:07:45

Wowza Streaming Engine is a flexible and functional solution for delivering streaming content to almost any platform. A wealth of possibilities provides a solution to almost any problem. Wowza Streaming Engine can be configured both by editing configuration XML files and through the existing web interface. The provided capabilities contain basic configuration options, allowing you to receive streams, configure streaming, recording and transcoding parameters, and much more. The administrator can configure Wowza to receive streams from external sources, enable the publication of streams sent to Wowza by encoders, configure caching of VOD files, check the performance and load on the system. And this is quite enough, if the task is not to create a truly functional product that will combine not only the capabilities of a “relay” of streams, but also many other functions that will be needed when designing your own media portal, but which are absent in the functionality of Wowza. With all the richness of the administrative interface, no graphical shell exist in Wowza in order to provide all the features and services to the end user. This approach allows developers to implement their own interfaces according to the task, rather than being tied to specific components. The design of a resource is almost always a separate development that has a unique style, its own implementation features, and special modules. All of this is designed to provide the way of interaction that will fully satisfy the end user and service provider. These additional capabilities (whether written independently or as part of third-party development) should be combined with the functions of the media server to give the final product administrator a unified working environment instead of disparate components. That is why developers provide REST [1] APIs (Application Programming Interfaces), that is, tools that allow you to embed the required functionality into your own development without writing complex program code.

The REST API is included with the Wowza Streaming Engine and does not require the purchase of an additional license. All methods of working with the API required to create full-featured products are described in the documentation. Documentation is not available immediately after installing Wowza on the server. It is required to enable access to the documentation in the Wowza settings and download the package with the application to view the documentation from the Wowza Media website ( ). To grant access, you need to edit the configuration file [install-dir] /conf/Server.xml, set the parameter to "true" and restart the Wowza service. You can also configure the TCP port (default 8089) and authentication options. To view the documentation, you need to unpack the contents of the downloaded archive to a local disk or upload it to the web server directory and open the index.html file in a browser. In the URL field, you need to specify the IP address of the Wowza server, after which information about all available API methods will become available in the following form:

An application for viewing documentation (developed using the Swagger framework) is a very flexible tool, both for those who study API capabilities and for developers. API method descriptions instantly turn into specific commands and code examples.

You can check the calls to API methods directly in the web interface for viewing the documentation (without installing Curl, Postman, etc.). It is necessary to fill in several fields and the link will be generated automatically, as shown in the figure. In other words, it is not just an interface for reading the documentation, but also a tool for testing and debugging future elements of the application. It should be noted that by default the ability to send API requests is allowed only for IP (those from the same server where Wowza is installed). You can add an IP to the list by editing the value of the parameter in the [install-dir] /conf/Server.xml configuration file and restarting the Wowza service.

Rest API will allow you to create your own interface for management, settings, displaying statistics, regulating access rights, managing transcoding and much more. Of course, in practice, all this does not look as simple as it is described in the article; serious decisions require lengthy testing, debugging and editing of the source code. However, in order to start creating your own solution, a general knowledge of the basics of programming and web layout will be enough.

[1] REST (Representational State Transfer) - "Representational State Transfer, a method of interaction between components of a distributed application on the Internet, in which a remote procedure call is a regular HTTP request (usually GET or POST ; such a request is called a REST request), and the required data is passed as request parameters.