Understanding protocols and output formats supported by Wowza Streaming Engine

Wowza Streaming Engine™ media server software delivers live and video-on-demand streams to a variety of desktop browsers, mobile devices, players, set-top boxes, and smart TVs by using the streaming protocols and file formats described in this article.

Supported streaming protocols 


Adobe HDS

Wowza Streaming Engine uses Adobe HTTP Dynamic Streaming (Adobe HDS) to deliver adaptive-bitrate live and VOD content to Adobe Flash Player 10.1 or later. Adobe HDS is a segment-based protocol that uses HTTP for delivery. Wowza Streaming Engine performs all of the segmenting and packaging necessary to deliver Adobe HDS streams by packetizing the content into segments that it calls chunks. HDS streaming is called "San Jose" streaming in Wowza Streaming Engine.

When streaming VOD content using 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 HDS:

Video Audio
  • H.264
  • (Live only) On2 VP6, Screen video, Screen video 2, and Sorenson Spark
  • AAC, AAC-LC, HE-AAC (AAC+ or aacPlus), and HE-AACv2 (enhanced AAC+, aacPlus v2)
  • MP3
  • (Live only) Speex

HDS streams are accessed at a playlist URL, which points to the XML manifest file that contains stream metadata and lists the segments that are available for streaming. An HDS playlist URL for a Wowza Streaming Engine stream has the format:

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

Where:

  • [wowza-ip-address] is the IP address or domain and port of 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 more on prefixes, see Supported media file formats, below)

For example, the HDS playlist URL for the VOD file mycoolvideo.mov from Wowza Streaming Engine at the address mycompany.com using the application myapplication is:

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

HDS playback requires a Flash-based player that's built using the Open Source Media Framework (OSMF). Wowza Streaming Engine installs two OSMF-based players that you can use to test HDS live and VOD streams. You can find them at:

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

Apple HLS

Wowza Streaming Engine uses Apple HTTP Live Streaming (Apple HLS) to deliver adaptive-bitrate live and VOD content to iOS devices (iOS 3.0 or later); Wowza Player and QuickTime Player (version 10 or later); Safari (4.0 or later); devices such as the Roku and Amino set-top boxes; and some smart TVs. Apple HLS is a segment-based protocol that uses HTTP for delivery. Wowza Streaming Engine performs all of the segmenting and packaging necessary to deliver Apple HLS streams by packetizing the content into segments that it calls chunks. HLS streaming is called "Cupertino" streaming in Wowza Streaming Engine.

Wowza Streaming Engine supports the following codecs for HLS:

Video Audio
  • H.264
  • AAC, AAC-LC, and HE-AAC (AAC+ or aacPlus)
  • Dolby Digital 5.1 Surround Sound (AC-3) and Dolby Digital Plus (Enhanced AC-3 or E-AC-3)
  • MP3

HLS streams use a master playlist wrapper that includes stream metadata and references to the available segments. An HLS master playlist URL for a Wowza Streaming Engine stream has the format:

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

Where:

  • [wowza-ip-address] is the IP address or domain and port for 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 more on prefixes, see Supported media file formats, below)

For example, the HLS playlist URL for the VOD file mycoolvideo.mov from Wowza Streaming Engine at the address mycompany.com using the application myapplication is:

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

Wowza Streaming Engine installs two players that you can use to test HLS live and VOD streams. You can find them at:

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

Microsoft Smooth Streaming

Wowza Streaming Engine uses Microsoft Smooth Streaming to deliver adaptive-bitrate live and VOD content to Microsoft Silverlight players and Windows Phone devices. Smooth Streaming is a segment-based protocol that uses HTTP for delivery. Wowza Streaming Engine performs all of the segmenting and packaging necessary to deliver Smooth Streaming streams; a Microsoft IIS server isn't required.

Wowza Streaming Engine supports the following codecs for Smooth Streaming:

Video Audio
  • H.264
  • AAC, AAC-LC, HE-AAC (AAC+ or aacPlus), and HE-AACv2 (enhanced AAC+, aacPlus v2)
  • MP3

Smooth Streaming uses a manifest to describe the segments that are available for streaming. A Smooth Streaming manifest URL for playing a Wowza Streaming Engine stream has the format:

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

Where:

  • [wowza-ip-address] is the IP address or domain and port of 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 more on prefixes, see Supported media file formats, below)

For example, the Smooth Streaming manifest URL for the VOD file mycoolvideo.mov from Wowza Streaming Engine at the address mycompany.com using the application myapplication is:

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

Wowza Streaming Engine installs two Silverlight players that you can use to test Smooth Streaming live and VOD streams. You can find them at:

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

MPEG-DASH

Wowza Streaming Engine can deliver MPEG-DASH (Dynamic Adaptive Streaming over HTTP) adaptive-bitrate live and VOD content to clients that can play DASH streams. MPEG-DASH is an ISO standard for streaming segment-based content over HTTP. Wowza Streaming Engine performs all of the segmenting and packaging necessary to deliver MPEG-DASH streams by packetizing the content into segments that it calls chunks.

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

Video Audio
  • H.264
  • AAC, AAC-LC, HE-AAC (AAC+ or aacPlus), HE-AACv2 (enhanced AAC+, aacPlus 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, VOD only) MPEG-4 Audio Lossless Coding (ALS)

Wowza Streaming Engine provides MPEG-DASH clients with a list of the available media chunk URLs in a Media Presentation Description (.mpd) manifest file. An MPEG-DASH manifest (playback) URL for a Wowza Streaming Engine stream has the format:

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 and port of 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 more on prefixes, see Supported media file formats, below)
  • [manifest-profile] is the manifest chunk profile (container and encoding formats)
  • [manifest-variation] is the chunk-addressing scheme token

For example, the manifest URL for the VOD file mycoolvideo.mov from Wowza Streaming Engine at the address mycompany.com using the application myapplication is:

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

Wowza Streaming Engine installs two players that you can use to test MPEG-DASH live and VOD streams. You can find them at:

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

RTMP

Wowza Streaming Engine can deliver adaptive-bitrate live and VOD content to Adobe Flash Player using Real Time Messaging Protocol (RTMP).

Wowza Streaming Engine supports all video and audio formats that Flash Player supports:

Video Audio
  • H.264
  • On2 VP6
  • Sorenson Spark
  • Screen video and Screen video 2
  • AAC, AAC-LC, HE-AAC (AAC+ or aacPlus), HE-AACv2 (enhanced AAC+, aacPlus v2)
  • MP3
  • Speex
 

Important: 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; content is streamed using a NetStream object. The NetConnection.connect method establisesh a connection between Wowza Streaming Engine and Adobe Flash Player. It takes an RTMP playback URL in the format:

[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 and port of 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 starts streams. 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 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 format:

[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

RTMP streaming requires a Flash-based player that's built using the Open Source Media Framework (OSMF). Wowza Streaming Engine installs two OSMF-based players that you can use to test RTMP streams. You can find them at:

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

RTSP/RTP

Wowza Streaming Engine can deliver live H.264, AAC, and MP3 content to players and devices that support Real Time Streaming Protocol (RTSP), Real-time Transport Protocol (RTP), and MPEG-TS (transport stream). 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-TS input and output over UDP as well as multicast. In addition, Wowza 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 playback URL in Wowza Streaming Engine has the format:

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

Where:

  • [wowza-ip-address] is the IP address or domain and port of 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 more on prefixes, see Supported media file formats, below)

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

SRT

Wowza Streaming Engine 4.7.3 and later supports MPEG-TS-based Secure Reliable Transport (SRT) in Linux and Windows server installations. A MediaCaster type enables live applications to ingest SRT source streams and make them available to all player technologies supported by Wowza Streaming Engine, and the generic SRT stream target enables you to deliver the SRT content directly to SRT destinations.

Wowza Streaming Engine supports the following codecs for SRT:

Video Audio
  • H.264, H.265 (preview)
  • VP8, VP9
  • AAC, AAC-LC, HE-AAC (AAC+ or aacPlus), HE-AACv2 (enhanced AAC+, aacPlus v2)
  • MP3, AC-3 (Dolby® Digital)
  • E-AC-3 (Dolby Digital Plus)
  • ALS (LOAS)
  • Opus
  • Vorbis

An SRT playback URL in Wowza Streaming Engine has the format:

[protocol-method]://[wowza-ip-address]/[application]/[application-instance]/[stream-file-name].stream/[playback-protocol-playlist]

Where:

  • [wowza-ip-address] is the IP address or domain and port of 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-file-name] is the stream file name
  • [playback-protocol-playlist] is the playlist or manifest required by the playback protocol to be a valid playback URL

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

http://mycompany.com:1935/myapplication/srt.stream/playlist.m3u8

WebRTC

Web Real-time Communication (WebRTC) is an open source project to enable real-time communication of audio, video, and data in web browsers and native apps. WebRTC is designed for peer-to-peer connections but includes fallbacks in case direct connections fail. Encryption is mandatory for WebRTC streams, so you must configure Wowza Streaming Engine to use secure sockets layer (SSL). 

WebRTC is still gaining adoption, so not all browsers and mobile platforms support it. With Wowza Streaming Engine, you can ingest and play WebRTC streams with Mozilla Firefox and Google Chrome browsers on the desktop. At this time, Wowza Streaming Engine doesn't support ingest or playback of WebRTC streams on mobile platforms or in a live repeater (origin/edge) configuration.

Wowza Streaming Engine supports the following codecs for WebRTC:

Video Audio
  • H.264
  • VP8
  • VP9
  • Vorbis
  • Opus
  • Pulse Code Modulation (PCM) types PCMU and PCMA
 

Note: Not all browsers support all codecs. H.264 is the most widely supported WebRTC codec, but for best performance we recommend using VP8 video with Opus or Vorbis audio.

For more information about playing WebRTC streams, see Play WebRTC streams from Wowza Streaming Engine

Supported media file formats


Wowza Streaming Engine supports the MP4 (QuickTime container), FLV (Flash Video), MP3, and SMIL (Synchronized Multimedia Integration Language) media file formats. To play VOD content, the proper prefix and extensions must be appended 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.

Prefix Extension(s) Example
MP4 mp4: .mp4, .f4v, .mov, .m4a, .m4v, .mp4a, .mp4v, .3gp, .3g2 mp4:mycoolvideo.mov
MP3 mp3: .mp3 mp3:mycoolsong.mp3
SMIL smil: .smil smil:myStream.smil
FLV flv: .flv flv:mycoolvideo.flv
 
Note: MP4 (QuickTime container) is the default media type, so the file name prefix and extension can be omitted.

The media prefix also controls the file container that stores recorded live video. If mp4: or if no prefix is specified, the content is recorded to an MP4 (QuickTime) container. Only H.264, AAC, and MP3 content can be recorded to an MP4 container. If flv: is specified, an FLV (Flash Video) container is used.

More resources