Use HTTP providers with the Wowza Streaming Engine Java API

HTTP providers are lightweight applications that provide an HTTP interface to information about Wowza Streaming Engine™ media server software instances. Wowza Streaming Engine ships with a handful of built-in HTTP providers; you can create custom providers as well. This article describes how HTTP providers are configured and lists the HTTP providers that come with Wowza Streaming Engine.

About HTTP providers


HTTP providers let you see information about Wowza Streaming Engine through an HTTP interface (web page). HTTP providers are configured on a per-port basis in [install-dir]/conf/VHost.xml. An individual HTTP provider can be protected by a user name and password. Multiple HTTP providers can be attached to a single port, and a specific HTTP provider can be selected based on a request filter.

Starting with Wowza Streaming Engine 4.5.0, HTTP providers can host WebSocket sessions for sending asynchronous, bi-directional information to and from Wowza Streaming Engine.

HTTP provider configuration


In VHost.xml, each HTTP provider has three specified properties: BaseClass, RequestFilters, and AuthenticationMethod. For example:

<HTTPProvider>
    <BaseClass>com.wowza.wms.http.HTTPServerInfoXML</BaseClass>
    <RequestFilters>serverinfo*</RequestFilters>
    <AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>

Where:

  • BaseClass is the fully qualified path of the class that overrides the HTTPProvider2Base class and implements the IHTTPProvider interface.
  • RequestFilters is list of filters, separated by a pipe ( | ) character, that control when the provider is invoked, based on the HTTP request path. In this example, the request filter is only invoked if the path string in the HTTP request URL starts with serverinfo, for example, http://[wowza-ip-address]:8086/serverinfo.
  • AuthenticationMethod specifies the authentication method that's used to control access to the HTTP provider. Valid values are admin-digest and none:
    • admin-digest uses a challenge/response system to authenticate users. Credentials are never sent in clear text. By default, user names and passwords for admin-digest authentication are stored in the [install-dir]/conf/admin.password file.
    • none allows all access to the provider.
Note: Starting in Wowza Streaming Engine 4.5.0, you can specify a custom location to store user names and passwords for admin-digest authentication. To do this, open the [install-dir]/conf/VHost.xml file in a text editor and then add the passwordFile property to the HTTP provider configuration. For example:
<HTTPProvider>
    <BaseClass>com.wowza.wms.http.HTTPServerInfoXML</BaseClass>
    <RequestFilters>serverinfo*</RequestFilters>
    <AuthenticationMethod>admin-digest</AuthenticationMethod>
    <Properties>
        <Property>
            <Name>passwordFile</Name>
            <Value>${com.wowza.wms.context.VHostConfigHome}/conf/myPasswordFile.txt</Value>
        </Property>
    </Properties>
</HTTPProvider>

Built-in HTTP providers


Wowza Streaming Engine includes these built-in HTTP providers in VHost.xml.

HTTP provider Base Class Description
HTTPConnectionCountsXML com.wowza.wms.http.HTTPConnectionCountsXML Returns connection information in XML format at http://[wowza-ip-address]:8086/connectioncounts.
HTTPConnectionInfo com.wowza.wms.http.HTTPConnectionInfo Returns detailed connection information in XML format at http://[wowza-ip-address]:8086/connectioninfo.
HTTPLiveStreamRecord com.wowza.wms.livestreamrecord.http.HTTPLiveStreamRecord Delivers the Live Stream Record web-based user interface at http://[wowza-ip-address]:8086/livestreamrecord.
HTTPProviderMediaList com.wowza.wms.http.HTTPProviderMediaList Dynamically generates adaptive bitrate manifests and playlists from SMIL data.
HTTPServerInfoXML com.wowza.wms.http.HTTPServerInfoXML Returns detailed server and connection information in XML format at http://[wowza-ip-address]:8086/serverinfo.
HTTPServerVersion com.wowza.wms.http.HTTPServerVersion Returns the Wowza Streaming Engine version and build number. It's the default HTTP provider on port 1935.
HTTPStreamManager com.wowza.wms.http.streammanager.HTTPStreamManager Delivers the Stream Manager HTTP provider at http://[wowza-ip-address]:8086/streammanager.
HTTPTranscoderThumbnail com.wowza.wms.http.HTTPTranscoderThumbnail Returns a bitmap image from the source stream being transcoded. Available at http://[wowza-ip-address]:8086/transcoderthumbnail?application=[applicationname]&streamname=[stream-name]&format=[jpeg or png]&size=[widthxheight].

Custom HTTP providers


In addition to using Wowza Streaming Engine's built-in HTTP providers, you can create your own. For instructions and a basic example, see Create an HTTP provider with the Wowza Streaming Engine Java API.

More resources