Understanding protocols and formats supported by Wowza Streaming Engine

Learn about how about how Wowza Streaming Engine™ media server software ingests and delivers streams using the following protocols and formats and how you can publish and distribute streams for a variety of streaming workflows. Wowza Streaming Engine delivers adaptive bitrate live and video-on-demand (VOD) streams to a variety of browsers, mobile devices, players, set-top boxes, and smart TVs using the streaming protocols and formats described in this article.

Supported streaming protocols
HLS
MPEG-DASH
CMAF HLS and MPEG-DASH
Low-Latency HLS
RTMP
RTSP/RTP
SRT
WebRTC
Legacy protocols
Supported container formats for HLS and MPEG-DASH live streaming
Supported media file formats for VOD streaming
More resources

Supported streaming protocols 


HLS

HTTP Live Streaming (HLS) is a specification created by Apple for live and VOD streaming of segmented, adaptive bitrate content over HTTP. Wowza Streaming Engine can deliver streams to players and devices that support HLS, including iOS devices (iOS 3.0 or later), QuickTime Player (version 10 or later), Safari (4.0 or later), Roku and Amino set-top boxes, and some smart TVs.

Wowza Streaming Engine can segment and package streams for HLS in three ways: HLS, CMAF HLS, and Low-Latency HLS. The original HLS packetizer—cupertinostreamingpacketizer—packages the content into keyframe-aligned segments that it calls chunks and delivers them to players over HTTP/1.1. These segments use the MPEG-TS container format.

Note: For information about CMAF HLS and Low-Latency HLS, see CMAF HLS and MPEG-DASH.

Supported codecs for HLS (cupertinostreamingpacketizer)

 
Video Audio
  • H.264, H.265*
  • AAC, AAC-LC, and 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)
  • MP3
*macOS and iOS devices require the fMP4 container format (used with CMAF HLS) for HEVC/H.265.
 
Learn more

MPEG-DASH

Dynamic Adaptive Streaming over HTTP (DASH), or MPEG-DASH, is an open ISO standard created by the Moving Pictures Expert Group for live and VOD streaming of segmented, adaptive bitrate content over HTTP. Wowza Streaming Engine can deliver streams to players and devices that support MPEG-DASH, including Android devices, HTML5 players, and some smart TVs.

Wowza Streaming Engine can segment and package streams for MPEG-DASH in two ways: as standard MPEG-DASH or CMAF MPEG-DASH. The original MPEG-DASH packetizer—mpegdashstreamingpacketizer—packages the content into keyframe-aligned segments that it calls chunks. These segments use the fMP4 container format. 

Note: For information about CMAF MPEG-DASH, see CMAF HLS and MPEG-DASH. Only one MPEG-DASH packetizer can be used per Wowza Streaming Engine application.

Supported codecs for MPEG-DASH (mpegdashstreamingpacketizer)

 
Video Audio
  • H.264, H.265
  • 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) MPEG-4 Audio Lossless Coding (ALS)
 
Learn more

CMAF HLS and MPEG-DASH

Common Media Application Format (CMAF) is an ISO standard wrapper for encoded multimedia content that enables efficient streaming over both HLS and MPEG-DASH. The CMAF packetizer—cmafstreamingpacketizer—segments and packages streams into keyframe-aligned segments that use the fMP4 container format.

With both HLS and MPEG-DASH using the fMP4 container, playlists for both protocols reference the same containers, which streamlines encoding, makes efficient use of computing resources, optimizes CDN bandwidth, requires less caching, and is more cost effective when streaming at scale than packaging HLS and MPEG-DASH separately. Wowza Streaming Engine 4.7.8 added support for CMAF with live streams.

Note: Only one MPEG-DASH packetizer can be used per Wowza Streaming Engine application.

Low-Latency HLS

Low-Latency HLS (LL-HLS) is an extension of the HLS specification from Apple for lower latency and backward compatibility with HLS. With the CMAF packetizer, Wowza Streaming Engine can produce LL-HLS live streams for delivery to players and devices that support LL-HLS, including native apps and the Safari browser on devices running iOS 14. If a player supports HLS but not LL-HLS, it will fall back to playing LL-HLS streams as standard HLS instead.

For LL-HLS, in addition to generating CMAF segments, the CMAF packetizer also generates smaller units of streaming media called chunks in the code base. These CMAF-compliant chunks serve as partial segments for LL-HLS streaming. As a result, you can use the CMAF packetizer to generate LL-HLS streams with segments (and partial segments) packaged in the fMP4 container format and delivered to players over HTTP/2. Wowza Streaming Engine 4.7.8 added support for LL-HLS using the CMAF packetizer.

Note: The CMAF packetizer can't be used for both LL-HLS and HLS or MPEG-DASH in a single Wowza Streaming Engine application. You must use separate applications to use CMAF for both.

Supported codecs for CMAF (cmafstreamingpacketizer)

 
Video Audio
  • H.264, H.265
  • 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)
 
Learn more

RTMP

Real Time Messaging Protocol (RTMP) is a low latency, TCP-based specification from Adobe that is now primarily used for publishing source streams from RTMP-based encoders and delivery of streams between media servers, rather than for playback. Wowza Streaming Engine supports live and VOD streaming over RTMP.

Note: Adobe no longer supports Flash Player and stopped content from running in it, limiting the playback support for RTMP. For more information, see Adobe Flash Player EOL General Information Page.

Supported codecs for RTMP

 
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 (not recommended for new encoding configurations)
 
Learn more

RTSP/RTP

Real-Time Streaming Protocol/Real-Time Transport Protocol (RTSP/RTP) is a network protocol that controls streaming media servers by establishing and maintaining sessions between a source or player and the streaming server. RTSP uses RTP and RTCP for the delivery of the media. Wowza Streaming Engine ingests streams from encoding devices, such as IP cameras, over RTSP/RTP and can deliver streams to players and devices that support Real Time Streaming Protocol (RTSP), Real-time Transport Protocol (RTP), and MPEG-TS (transport stream), including QuickTime Player (version 10 or later), VideoLAN VLC player, set-top boxes, and 3GPP devices. Wowza Streaming Engine supports live and VOD streaming 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. Wowza Streaming Engine supports both Single Program (SPTS) and Multi Program (MPTS) MPEG-TS streams and enables you to specify a specific program, a specific language, and a specific audio or video track in an MPTS stream.

Supported codecs for RTSP/RTP

 
Video Audio
  • H.264, H.265
  • VP8, VP9
  • AAC, AAC-LC, HE-AAC (AAC+ or aacPlus), HE-AACv2 (enhanced AAC+, aacPlus v2)
  • MP3
  • Opus
  • Vorbis
  • Speex
 
Learn more

SRT

Secure Reliable Transport (SRT) is an open source protocol designed to deliver secure, high-quality, low latency live streams over unpredictable network conditions. Using MediaCaster and a stream file, live applications can ingest SRT source streams. SRT live streams can also be delivered directly to SRT destinations with the generic SRT stream target. Wowza Streaming Engine uses the MPEG-TS container format to package SRT streams. Wowza Streaming Engine 4.7.3 added support for SRT live streaming (Linux and Windows installations).

Supported codecs for SRT

 
Video Audio
  • H.264, H.265
  • 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)
  • Vorbis
 
Learn more

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.

Wowza Streaming Engine 4.7.7 added support for WebRTC live streaming. Encryption is mandatory for WebRTC streams, so you must configure Wowza Streaming Engine to use secure sockets layer (SSL/TLS). When ingesting source content as WebRTC, Wowza Streaming Engine uses a WebSocket connection to the browser to retrieve the Session Description Protocol (SDP) information.

With Wowza Streaming Engine, you can ingest and play WebRTC streams with all major desktop and mobile browsers that support WebRTC APIs. Supported browsers include the latest versions of Chrome, Firefox, Safari, and Edge version 79 and later.

Note: There is a resolved known issue with publishing and playing WebRTC streams using Safari on iOS 15. See WebRTC publishing and playback fails with Safari on iOS 15 for updates.

 WebRTC supported codecs

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

 

Note: Wowza Streaming Engine supports only H.264 codec when recording to an MP4 Format. You can still use VP8 or VP9 codecs, but the stream needs to be transcoded to H.264 for MP4 files.

 
Learn more

Legacy protocols

The following streaming protocols are deprecated in the latest versions of Wowza Streaming Engine. For more information, see Deprecated features in Wowza Streaming Engine.

HDS

HTTP Dynamic Streaming (HDS) is used to deliver adaptive bitrate live and VOD streams to Adobe Flash Player 10.1 or later. HDS streaming is deprecated as of Wowza Streaming Engine 4.8.12.

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
  • Speex (live only, not recommended for new encoding configurations)

HDS playback URL format:

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

Smooth Streaming

Smooth Streaming is used to deliver adaptive bitrate live and VOD streams to Microsoft Silverlight players and Microsoft devices. Smooth Streaming is deprecated as of Wowza Streaming Engine 4.8.12.

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

Smooth Streaming playback URL format:

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

Supported container formats for HLS and MPEG-DASH live streaming


A container format is a wrapper for segments of content that are delivered over HTTP-based streaming protocols. Wowza Streaming Engine supports two container formats for HLS and MPEG-DASH live streaming: fragmented MP4 (fMP4) and MPEG Transport Stream (MPEG-TS).

  • fMP4 – The ISO standards for MPEG-DASH and CMAF use the fMP4 container format. The MPEG-DASH and CMAF packetizers in Wowza Streaming Engine—mpegdashstreamingpacketizer and cmafstreamingpacketizer—wrap stream segments in the fMP4 container format. HLS master playlists and MPEG-DASH manifests generated by the CMAF packetizer both reference these fMP4 files and make them available to players when they request available segments for playback.
  • MPEG-TS – MPEG-TS is the container format defined in the MPEG-2 ISO standard. The HLS packetizer—cupertinostreamingpacketizer—in Wowza Streaming Engine wraps stream segments in the MPEG-TS container format. The HLS master playlist generated by the HLS packetizer references these MPEG-TS files and makes them available to players when they request available segments for playback.

Supported media file formats for VOD streaming


Wowza Streaming Engine supports the MP4 (QuickTime container), FLV, MP3, and SMIL (Synchronized Multimedia Integration Language) media file formats. Wowza Streaming Engine can read and write Action Message Format (AMF0 and AMF3) data events to and from MP4 files. In addition, it supports MP4 multi-language caption and audio tracks.

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 MP3 file mycoolsong.mp3, use the stream name mp3:mycoolsong.mp3.

Note: MP4 is the default media type, so the file name prefix and extension can be omitted.
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

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

More resources