Understanding protocols and output formats supported by Wowza Streaming Engine

This article will help you understand the various streaming protocols and output file formats that Wowza Streaming Engine™ media server software supports.

Supported streaming protocols 


A single Wowza Streaming Engine application deliver a stream to desktop browsers, Apple iOS devices, DASH players; over-the-top (OTT) services and smart TVs, Adobe Flash Player, and Microsoft Silverlight—all by using the streaming protocols described in this section. 
 
Note: For more information about any of the supported streaming protocols, see the Wowza Streaming Engine User's Guide (PDF).

Adobe HDS

Using the Adobe HTTP Dynamic Streaming (Adobe HDS) protocol, Wowza Streaming Engine can stream adaptive-bitrate live and video-on-demand (VOD) content to Adobe Flash Player 10.1 or later. Adobe HDS is a chunk-based streaming protocol that uses HTTP for delivery. All media-chunking and packaging necessary to deliver a stream using Adobe HDS is performed by Wowza Streaming Engine. Adobe HDS is referred to as "San Jose" streaming in Wowza Streaming Engine.

When streaming VOD content over Adobe HDS, Wowza Streaming Engine supports MP4 files (QuickTime container) and MP3 files. FLV files aren't supported.

Wowza Streaming Engine supports the following codecs for Adobe HDS:

Video

  • H.264
  • On2 VP6 (live only)
  • Screen video and Screen video 2 (live only)
  • Sorenson Spark (live only)

Audio

  • AAC, AAC Low Complexity (AAC LC), and AAC High Efficiency (HE-AAC) v1 and v2
  • MP3
  • Speex (live only)

Adobe HDS leverages an XML manifest file, which describes the list of chunks available for streaming. An Adobe HDS streaming playlist URL has the form:

http://[wowza-ip-address]/[application]/[application-instance]/[stream-name]/manifest.f4m

Where:

  • [wowza-ip-address] is the IP address or domain name and port of the Wowza Streaming Engine (default port 1935)
  • [application] is the application name
  • [application-instance] is the name of the application instance (if omitted, defaults to _definst_)
  • [stream-name] is the stream name, with stream prefix

For example, to play the VOD file mycoolvideo.mov from Wowza Streaming Engine at the address mycompany.com using the application myapplication, the URL would be:

http://mycompany.com:1935/myapplication/mp4:mycoolvideo.mov/manifest.f4m

Adobe HDS streaming requires a Flash-based player that's built using the Open Source Media Framework (OSMF). Wowza Streaming Engine installs with two OSMF-based example players:

  • [install-dir]/examples/VideoOnDemandStreaming/FlashHTTPPlayer/player.html
  • [install-dir]/examples/LiveVideoStreaming/FlashHTTPPlayer/player.html

Apple HLS

Using the Apple HTTP Live Streaming (Apple HLS) protocol, Wowza Streaming Engine can deliver adaptive-bitrate live and VOD content to iOS-based devices (iOS 3.0 or later), QuickTime player (version 10 or later), Safari (4.0 or later), and devices such as the Roku and Amino set-top boxes and some brands of smart TVs. Apple HLS is a chunk-based streaming protocol that uses HTTP for delivery. All media-chunking and packaging necessary to deliver a stream using Apple HLS is performed by Wowza Streaming Engine. Apple HLS is referred to as "Cupertino" streaming in Wowza Streaming Engine.

Wowza Streaming Engine populates the playlist file with metadata that describes each of the available renditions in the adaptive-bitrate stream. This enables iOS-based players to select the appropriate rendition to use based on network conditions and hardware device capabilities.

Wowza Streaming Engine supports the following codecs for Apple HLS:

Video

  • H.264

Audio

  • AAC, AAC Low Complexity (AAC LC), and High Efficiency AAC (HE-AAC) v1
  • Dolby Digital 5.1 Surround Sound (AC-3) and Dolby Digital Plus (Enhanced AC-3 or E-AC-3)
  • MP3

Apple HLS leverages a playlist wrapper to describe the list of chunks available for streaming. An Apple HLS streaming playlist URL has the form:

http://[wowza-ip-address]/[application]/[application-instance]/[stream-name]/playlist.m3u8

Where:

  • [wowza-ip-address] is the IP address or domain name and port of the Wowza Streaming Engine (default port 1935)
  • [application] is the application name
  • [application-instance] is the name of the application instance (if omitted, defaults to _definst_)
  • [stream-name] is the stream name, with stream prefix

For example, to play the VOD file mycoolvideo.mov from Wowza Streaming Engine at the address mycompany.com using the application myapplication, the URL would be:

http://mycompany.com:1935/myapplication/mp4:mycoolvideo.mov/playlist.m3u8

Wowza Streaming Engine installs with two Apple HLS-based example players:

  • [install-dir]/examples/VideoOnDemandStreaming/IOSMacOSX/player.html
  • [install-dir]/examples/LiveVideoStreaming/IOSMacOSX/player.html

Microsoft Smooth Streaming

Using the Microsoft Smooth Streaming protocol, Wowza Streaming Engine can stream adaptive-bitrate live and VOD content to Microsoft Silverlight, Windows Phone devices, and other devices. Microsoft Silverlight is a cross-browser, cross-platform technology that works with many personal computing devices. Smooth Streaming is a chunk-based streaming protocol that uses HTTP for delivery. All media chunking and packaging necessary to deliver a stream using Microsoft Smooth Streaming is performed by Wowza Streaming Engine, you don't need an IIS web server.

Wowza Streaming Engine supports the following codecs for Smooth Streaming:

Video

  • H.264

Audio

  • AAC, AAC Low Complexity (AAC LC), and AAC High Efficiency (HE-AAC) v1 and v2
  • MP3

Smooth Streaming leverages a playlist wrapper (called a manifest) to describe the list of chunks that are available for streaming. A Smooth Streaming manifest URL has the form:

http://[wowza-ip-address]/[application]/[application-instance]/[stream-name]/Manifest

Where:

  • [wowza-ip-address] is the IP address or domain name and port of the Wowza Streaming Engine (default port 1935)
  • [application] is the application name
  • [application-instance] is the name of the application instance (if omitted, defaults to _definst_)
  • [stream-name] is the stream name, with stream prefix

For example, to play the VOD file mycoolvideo.mov from Wowza Streaming Engine at the address mycompany.com using the application myapplication, the URL would be:

http://mycompany.com:1935/myapplication/mp4:mycoolvideo.mov/Manifest

Wowza Streaming Engine installs with two Smooth Streaming–based example players:

  • [install-dir]/examples/VideoOnDemandStreaming/SilverlightPlayer/player.html
  • [install-dir]/examples/LiveVideoStreaming/SilverlightPlayer/player.html

MPEG-DASH

Dynamic Adaptive Streaming over HTTP, also known as MPEG-DASH, is an international standard for adaptive-bitrate streaming. Wowza Streaming Engine supports MPEG-DASH streaming of live and VOD content over HTTP to select DASH clients. MPEG-DASH is similar to proprietary adaptive-bitrate streaming technologies such as Adobe HDS, Apple HLS, and Microsoft Smooth Streaming in that it's a chunk-based streaming technology that uses HTTP for delivery. All media-chunking and packaging necessary to deliver a stream using MPEG-DASH is performed by Wowza Streaming Engine. In MPEG-DASH terminology, chunks are called segments.

Wowza Streaming Engine supports the following codecs for MPEG-DASH:

Video

  • H.264

Audio

  • AAC, AAC Low Complexity (AAC LC), and AAC High Efficiency (HE-AAC) v1 and v2
  • Dolby Digital 5.1 Surround Sound (AC-3) and Dolby Digital Plus (Enhanced AC-3 or E-AC-3)
  • (Wowza Streaming Engine 4.7.2.01 or later) MPEG-4 Audio Lossless Coding (ALS) (VOD only) 

An MPEG-DASH server provides DASH clients with a list of the available media chunk URLs in a Media Presentation Description (MPD) manifest. The MPD describes chunk information such as timing, language, timed text, and media characteristics (video resolution and bitrate). Clients sequentially request media chunks based on network conditions, device capabilities, and other factors to enable uninterrupted playback of the adaptive-bitrate stream. An MPEG-DASH MPD manifest URL has the form:

http://[wowza-ip-address]/[application]/[application-instance]/[stream-name]/manifest_mp[manifest-profile]_mv[manifest-variation].mpd

Where:

  • [wowza-ip-address] is the IP address or domain name and port of the Wowza Streaming Engine (default port 1935)
  • [application] is the application name
  • [application-instance] is the name of the application instance (if omitted, defaults to _definst_)
  • [stream-name] is the stream name, with stream prefix
  • [manifest-profile] is the manifest chunk profile (container and encoding formats)
  • [manifest-variation] is the chunk-addressing scheme token

For example, to play the VOD file mycoolvideo.mov from Wowza Streaming Engine at mycompany.com using the application myapplication, the URL would be:

http://mycompany.com:1935/myapplication/mp4:mycoolvideo.mov/manifest_mpm4sav_mvlist.mpd

Wowza Streaming Engine installs with the two DASH-based example players:

  • [install-dir]/examples/VideoOnDemandStreaming/MPEGDASHPlayer/player.html
  • [install-dir]/examples/LiveVideoStreaming/MPEGDASHPlayer/player.html

The MPEG-DASH standard (ISO/IEC 23009-1) defines segment container formats for ISO Base Media File Format (ISOBMFF) and MPEG-2 Transport Streams (MPEG-2 TS). MPEG-DASH is codec-agnostic and supports multiplexed and non-multiplexed encoding. Multiple content protection (DRM) schemes are supported; a Common Encryption (CENC) standard (ISO/IEC 23001-7) is being developed in conjunction with MPEG-DASH to allow content to be encrypted once and then streamed to DASH clients that support different licensing systems.

Adobe RTMP

Wowza Streaming Engine communicates with Adobe Flash Player using the Real Time Messaging Protocol (RTMP). Wowza Streaming Engine can deliver adaptive-bitrate live and VOD content to Flash Player using RTMP and supports such features as shared objects, video recording, video chat, and remote procedure calls. Wowza Streaming Engine supports all video and audio formats that Flash Player supports:

Video

  • H.264
  • On2 VP6
  • Sorenson Spark
  • Screen video and Screen video 2

Audio

  • AAC, AAC Low Complexity (AAC LC), and AAC High Efficiency (HE-AAC) v1 and v2
  • MP3
  • Speex

Adobe Flash Player is a cross-browser, cross-platform technology that can run on many desktop computers and mobile devices. Adobe will stop supporting Flash by the end of 2020, and Flash playback in some browsers requires manual configuration.

Wowza Streaming Engine and Adobe Flash Player communicate using a NetConnection object and content is streamed using a NetStream object. The NetConnection.connect method is used to establish a connection between the Wowza Streaming Engine and Adobe Flash Player. It takes an RTMP URL in the form:

[protocol-method]://[wowza-ip-address]/[application]/[application-instance]

Where:

  • [protocol-method] is rtmp, rtmpe (encryption), rtmpt (tunneling), rtmpte (encryption and tunneling), or rtmps (tunneling over SSL)
  • [wowza-ip-address] is the IP address or domain name and port of the Wowza Streaming Engine (default port 1935)
  • [application] is the application name
  • [application-instance] is the name of the application instance (if omitted, defaults to _definst_)

For example, to connect to Wowza Streaming Engine at the address mycompany.com using the application myapplication, the URL to use in the NetConnection.connect method would be:

rtmp://mycompany.com/myapplication

The NetStream.play method is used to start streaming. It takes a stream name as its first argument. For example, to play the file mycoolvideo.mov, you would use the stream name mp4:mycoolvideo.mov. Some pre-built players combine the server connection URL used in the NetConnection.connect method and the stream name used in the NetStream.play method into a single URL. This URL takes the form:

[protocol-method]://[wowza-ip-address]/[application]/[application-instance]/[stream-name]

For example, to connect to Wowza Streaming Engine at mycompany.com using the application myapplication to play mycoolvideo.mov, the URL would be:

rtmp://mycompany.com/myapplication/mp4:mycoolvideo.mov

Adobe RTMP streaming requires a Flash-based player that's built using the Open Source Media Framework (OSMF). Wowza Streaming Engine installs with two OSMF-based example players:

  • [install-dir]/examples/VideoOnDemandStreaming/FlashRTMPPlayer/player.html
  • [install-dir]/examples/LiveVideoStreaming/FlashRTMPPlayer/player.html

RTSP/RTP

Wowza Streaming Engine can stream live H.264, AAC, and MP3 content to players and devices that support the Real Time Streaming Protocol (RTSP), Real-time Transport Protocol (RTP), and MPEG-2 Transport Stream protocol (MPEG-2 TS). This includes QuickTime player (version 10 or later), VideoLAN VLC player, set-top boxes, and 3GPP devices. Wowza Streaming Engine can also accept incoming streams from encoding devices over RTSP/RTP. Wowza Streaming Engine supports RTP and MPEG-2 TS input and output over UDP as well as multicast. In addition, Wowzas Streaming Engine supports interleaved RTSP/RTP (RTP over the RTSP TCP connection) and RTSP/RTP tunneling (RTSP/RTP over HTTP), which enables RTSP/RTP to be delivered in network environments that don't allow UDP transmission.

An RTSP/RTP URL in Wowza Streaming Engine has the following form:

rtsp://[wowza-ip-address]/[application]/[application-instance]/[stream-name]

Where:

  • [wowza-ip-address] is the IP address or domain name and port of the Wowza Streaming Engine (default port 1935)
  • [application] is the application name
  • [application-instance] is the name of the application instance (if omitted, defaults to _definst_)
  • [stream-name] is the stream name, with stream prefix

For example, to play the live stream mylivestream from Wowza Streaming Engine at the address mycompany.com using the application myapplication, the URL would be:

rtsp://mycompany.com:1935/myapplication/mylivestream

Supported media file formats


Wowza Streaming Engine supports the MP4 (QuickTime container), FLV (Flash Video), and MP3 media file formats. To play VOD content, the proper prefix must be prepended to the file name to create a stream name. For example, to play the MP4 file mycoolvideo.mov, use the stream name mp4:mycoolvideo.mov. This section describes some common file type prefixes.

Note: For a complete list of supported media file types, see the Wowza Streaming Engine User's Guide (PDF).

MP4

MP4 (QuickTime container) is the default media type, so the file name prefix and extension can be omitted.

  • Prefix: mp4:
  • Extensions: .mp4, .f4v, .mov, .m4a, .m4v, .mp4a, .mp4v, .3gp, .3g2
  • Example: mp4:mycoolvideo.mov

FLV

FLV stands for Flash Video.

  • Prefix: flv:
  • Extension: .flv
  • Example: flv:mycoolvideo.flv

MP3

  • Prefix: mp3:
  • Extension: .mp3
  • Example: mp3:mycoolsong.mp3

SMIL

Synchronized Multimedia Integration Language (SMIL) files are XML files used to configure adaptive-bitrate streams.

  • Prefix: smil:
  • Extension: .smil
  • Example: smil:myStream.smil