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.
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.
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]
- WSE 4.8.19 and later:
- Linux:
/usr/local/WowzaStreamingEngine-[version]/
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.
You must configure your network and firewall to allow communication on these ports or configure alternative ports.
| Port | Description & usage |
|---|---|
| TCP 1935 | RTMP/RTMPE/RTMPT/RTSP-interleaved streaming and WOWZA™ streaming |
| TCP 8086-8088 | Administration |
| UDP 6970-9999 | RTP UDP streaming |
| TCP 80 | HLS, MPEG-DASH, and RTMPT streaming |
| TCP 443 | SSL/TLS streaming (RTMPS, HTTPS, and WebRTC) |
| TCP 554 | RTSP streaming |
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.
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 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.
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.
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.
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.
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/LiveStreamPacketizerwill add the value to the<LiveStreamPacketizer>tag's<Properties>element in theApplication.xmlfile. - Name - The property's name.
- Type - The type of value the property will support. This can be
Boolean,Integer, orString. - Value - The property's value.
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:
- Open the
[install-dir]/conf/[application]/Application.xmlfile. - Locate the
<LiveStreamPacketizer>tag. - Locate the
<Properties>tag. - Add a new
<Property>definition.
<LiveStreamPacketizer>
<Properties>
<Property>
<Name>...</Name>
<Type>...</Type>
<Value>...</Value>
</Property>
</Properties>
</LiveStreamPacketizer>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.xmlfile - By using the
setMaxChunkDurationmethod in theLiveStreamPacketizerCupertinoclass of the WSE Java API
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 theflv: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. Thesmil: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. Thengrp: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. Theamlst:prefix indicates that a set ofMediaListJava objects are being used to provide adaptive bitrate streaming.
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.
WSE supports live and on-demand stream playback on many players. All WSE streaming is URL-based and may vary by protocol.