Skip to content
Last updated

About Wowza Streaming Engine

Wowza Streaming Engine™ is robust, customizable, and highly extensible. Our Java-based platform powers single and adaptive bitrate streaming for live and on-demand videos on any device, anywhere.

Introduction

Wowza Streaming Engine (WSE) can be extended to meet a variety of needs. All configuration settings are stored in XML files within the installation directory. You can change these settings with Wowza Streaming Engine Manager (WSE Manager) or directly in the XML files.

Throughout this documentation, you'll see references to the following components.

  • Wowza Streaming Engine (WSE): The core of the Wowza Streaming Engine media server software product upon which all other components are built.
  • WSE server: The physical server(s) running WSE, dedicated to processing and streaming media.
  • WSE Manager: A web-based user interface used to configure, manage, and monitor your WSE server.
  • WSE Java API: Our Java API, used for extending WSE to suit your needs.
  • WSE API: Our RESTful API, used to configure, manage, and monitor your WSE server.

Install directory

Throughout this documentation, [install-dir] is used as a placeholder for the WSE installation directory. The default directories are as follows:

  • Windows:
    • WSE 4.8.19 and later: C:\Program Files\Wowza Media Systems\Wowza Streaming Engine [version]\
    • WSE 4.8.18 and earlier: C:\Program Files (x86)\Wowza Media Systems\Wowza Streaming Engine [version]
  • Linux: /usr/local/WowzaStreamingEngine-[version]/

Server settings

The default WSE server settings are useful for many scenarios. To customize the settings, you can make changes in the Server tab of WSE Manager or edit the [install-dir]/conf/Server.xml file.

Ports

You must configure your network and firewall to allow communication on these ports or configure alternative ports.

PortDescription & usage
TCP 1935RTMP/RTMPE/RTMPT/RTSP-interleaved streaming and WOWZA™ streaming
TCP 8086-8088Administration
UDP 6970-9999RTP UDP streaming
TCP 80HLS, MPEG-DASH, and RTMPT streaming
TCP 443SSL/TLS streaming (RTMPS, HTTPS, and WebRTC)
TCP 554RTSP streaming

Virtual hosts

WSE is often used with a single virtual host (vhost). In some cases, such as multitenancy, it can serve multiple users from separate virtual hosts. Each vhost has its own application folders, log files, and configuration files located in the [install-dir]/conf/ directory. The VHost.xml file defines the vhost's configuration settings.

Applications

A WSE application is a group of streaming settings, defined in the Application.xml file. The two most common types of applications are live and VOD. Multiple applications of the same type are allowed, but each application must have a unique name.

The easiest way to create a new application is with WSE Manager, which creates all the necessary directories and files automatically. You can then configure and manage the application using WSE Manager or by editing the Application.xml directly.

Application instances

Application instances provide a namespace and context for streaming. They are started dynamically. Multiple instances can run simultaneously within the same application.

If a name is not specified for an application instance, the name _definst_ will be used by default. Applications often use a single instance, in which case the instance name is never referenced.

Stream types

In WSE, named stream types control different streaming types (live, VOD, recording, origin/edge, etc.) If you create the application using WSE Manager, the stream type is selected on the Setup page. You can also change the StreamType property in the <Streams> tag of the Application.xml file.

HTTP streamers and live stream packetizers

WSE can ingest and deliver streams over WebRTC, SRT, RTSP, HLS, and other HTTP-based protocols. When delivering streams to HTTP-based streaming players, the incoming streams must be packetized using HTTP streamers and live stream packetizers. This process is called 'transmuxing' and is supported by all versions of WSE.

Properties and parameters

WSE is built on an extensive collection of properties that makes the software highly customizable. Each property maps to a parameter in the WSE Java API . All configuration values are stored in the XML files found in the ([install-dir]/conf) directory. Some properties are preconfigured with default values to help you get started quickly. These values can be managed in Properties tabs of WSE Manager. Others properties must be manually added in the configuration XML files.

Note: Only administrators with advanced permissions can access the Properties tab.

Managing properties with WSE Manager

To add a custom property using WSE Manager, you must specify the following information:

  • Path - The tag to which the new property will be added. For example, the path /Root/Application/LiveStreamPacketizer will add the value to the <LiveStreamPacketizer> tag's <Properties> element in the Application.xml file.
  • Name - The property's name.
  • Type - The type of value the property will support. This can be Boolean, Integer, or String.
  • Value - The property's value.

Managing properties in XML

To add a custom property to an XML file, add the property's name, type, and value directly to the appropriate location within the file. For example, to add a property to the LiveStreamPacketizer tag, you would:

  1. Open the [install-dir]/conf/[application]/Application.xml file.
  2. Locate the <LiveStreamPacketizer> tag.
  3. Locate the <Properties> tag.
  4. Add a new <Property> definition.
XML snippet example
<LiveStreamPacketizer>
    <Properties>
        <Property>
            <Name>...</Name>
            <Type>...</Type>
            <Value>...</Value>
        </Property>
    </Properties>
</LiveStreamPacketizer>

Java API parameters

All properties in WSE map to parameters in the WSE Java API. For example, each live stream packetizer has a maximum chunk, segment, or fragment count setting. For HLS, this is called cupertinoMaxChunkCount. This property has a default value which you can modify in the following ways:

  • By using WSE Manager
  • By editing the Application.xml file
  • By using the setMaxChunkDuration method in the LiveStreamPacketizerCupertino class of the WSE Java API

Media types

Media types are an important part of streaming. WSE can read the following media or file types to play live streams and VOD content:

  • MP4 – (QuickTime container - .mp4, .f4v, .mov, .m4v, .mp4a, .mp4v, .3gp, .3g2, etc.)
  • FLV – (.flv)
  • MP3 – (.mp3)
  • SMIL – (synchronized multimedia integration language - .smil)
  • AMLST – (API-based MediaList)

Media types are specified with a prefix to the stream name which tells players how to play the stream. This is useful for playing VOD content and groups of stream renditions together. For example, to play the MP4 file myStream.mov, you would add the mp4: prefix, making the file name mp4:myStream.mov. The following media type prefixes are supported:

  • mp4: – VOD streaming. This is the default value.
  • flv: – VOD streaming. When the flv: prefix is specified for a recorded live stream, an FLV container is used to store the recording.
  • mp3: – Live (audio) and VOD streaming.
  • id3: – Live and VOD streaming. MP3 file returning only ID3 tag information.
  • smil:Adaptive bitrate streaming for live and VOD content. The smil: prefix is used to playback content in SMIL files. SMIL files provide a means to specify a group of live streams or VOD files for adaptive bitrate switching. For stream switching to occur correctly, key frames must be property aligned across all bitrate renditions.
  • ngrp: – Adaptive bitrate for live streaming. The WSE transcoder feature uses a templating system to create logical stream name groups for live adaptive bitrate delivery. Stream name groups and SMIL files serve the same purpose. Either method can be used for adaptive playback of live streams. The ngrp: prefix indicates that the stream name group is being used to provide adaptive bitrate streaming.
  • amlst: – Adaptive bitrate streaming for live and VOD content. The WSE Java API can intercept requests for adaptive bitrate streams and provide stream grouping. The amlst: prefix indicates that a set of MediaList Java objects are being used to provide adaptive bitrate streaming.

Streaming codecs, protocols, and playback

WSE supports a wide variety of codecs, streaming protocols, and formats which enables us to support live and on-demand streams on desktops, mobile devices, set-top boxes, and more. Not all video and audio codecs are mutually compatible and not all codecs are supported by all protocols and formats.

By default, WSE is configured to enable delivery and playback of ingested streams over MPEG-DASH, HLS, RTMP, and RTSP/RTP. WSE transcoder allows you to transcode and transrate streams for different codec and protocol combinations.

Playback URLs

WSE supports live and on-demand stream playback on many players. All WSE streaming is URL-based and may vary by protocol.