• Understanding streaming protocols and output file formats

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

    Contents


    Supported streaming protocols
    Supported media file formats
    More resources

    Supported streaming protocols


    A single Wowza Streaming Engine application can be configured to deliver a stream to Adobe Flash Player; Microsoft Silverlight; Apple iPhone, iPad, or iPod touch devices; DASH players, and RTSP/RTP-based players at the same time using the streaming protocols that are 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 (Adobe Flash Player)

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

    When streaming VOD content over Adobe HDS, Wowza Streaming Engine supports MP4 files (QuickTime container) and MP3 files. FLV files aren't supported. The Streaming Engine supports the following video and audio codecs when using this streaming protocol:

    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), AAC High Efficiency (HE-AAC) v1 and v2
    • MP3
    • Speex (live only)

    Adobe HDS streaming leverages an XML manifest file to describe the list of chunks available for streaming. An Adobe HDS streaming playlist URL has the following form:

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

    • [wowza-ip-address]: IP address or domain name and port of the the Wowza media server (default port 1935)
    • [application]: Application name
    • [application-instance]: Application instance name (if omitted, defaults to _definst_)
    • [stream-name]: Stream name with stream prefix

    For example, to play the VOD file mycoolvideo.mov located on the Wowza media server at the address mycompany.com, using the application name myapplication, the URL is:

    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). The Wowza Streaming Engine software installation has the following OSMF-based example players:

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

    Apple HLS (iPhone, iPad, iPod touch, QuickTime, and more)

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

    Wowza Streaming Engine populates the playlist file with metadata that describes each of the available streams in an adaptive bitrate presentation. This enables iOS-based players to intelligently select the appropriate streams based on hardware device capabilities.

    The Streaming Engine supports the following video and audio codecs when using this streaming protocol:

    Video
    • H.264

    Audio
    • AAC, AAC Low Complexity (AAC LC), 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 streaming leverages a playlist wrapper to describe the list of chunks available for streaming. An Apple HLS streaming playlist URL has the following form:

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

    • [wowza-ip-address]: IP address or domain name and port of the Wowza media server (default port 1935)
    • [application]: Application name
    • [application-instance]: Application instance name (if omitted, defaults to _definst_)
    • [stream-name]: Stream name with stream prefix

    For example, to play the VOD file mycoolvideo.mov located on the Wowza media server at the address mycompany.com, using the application name myapplication, the URL is:

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

    The Wowza Streaming Engine software installation has the following Apple HLS-based example players:

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

    Microsoft Smooth Streaming (Microsoft Silverlight and more)

    Wowza Streaming Engine can stream adaptive bitrate live and VOD H.264, AAC, and MP3 content to Microsoft Silverlight, Windows Phone devices, and other devices using the Microsoft Smooth Streaming protocol. Microsoft Silverlight is a cross-browser, cross-platform technology that exists on 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 this protocol is performed by the Streaming Engine so there's no need for an IIS web server.

    The Streaming Engine supports the following video and audio codecs when using this streaming protocol:

    Video
    • H.264

    Audio
    • AAC, AAC Low Complexity (AAC LC), 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 following form:

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

    • [wowza-ip-address]: IP address or domain name and port of the Wowza media server (default port 1935)
    • [application]: Application name
    • [application-instance]: Application instance name (if omitted, defaults to _definst_)
    • [stream-name]: Stream name with stream prefix

    For example, to play the VOD file mycoolvideo.mov, located on the Wowza media server at the address mycompany.com, using the application name myapplication, the URL is:

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

    The Wowza Streaming Engine software installation has the following Smooth Streaming-based example players:

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

    MPEG-DASH streaming (DASH clients)

    Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is a new international standard for adaptive streaming that's being adopted by the streaming industry. Wowza Streaming Engine includes MPEG-DASH technology for streaming live and VOD content over HTTP to select DASH clients. MPEG-DASH is similar to proprietary adaptive 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 this technology is performed by the Streaming Engine. Note that in MPEG-DASH terminology, chunks are called "segments."

    The Streaming Engine supports the following video and audio codecs when using this streaming protocol:

    Video
    • H.264

    Audio
    • AAC, AAC Low Complexity (AAC LC), 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)

    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 media presentation. An MPEG-DASH MPD manifest URL has the following form:

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

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


    For example, to play the VOD file mycoolvideo.mov, located on the Wowza media server at the address mycompany.com, using the application name myapplication, the URL is:

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

    The Wowza Streaming Engine software installation has the following 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; however, 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 (Adobe Flash Player)

    Wowza Streaming Engine communicates with Adobe Flash Player using the Real Time Messaging Protocol (RTMP). The Streaming Engine can deliver adaptive bitrate live and VOD content to Flash Player using RTMP and it supports other features such as shared objects, video recording, video chat, remote procedure calls, and more. The 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), AAC High Efficiency (HE-AAC) v1 and v2
    • MP3
    • Speex

    Adobe Flash Player is a cross-browser, cross-platform technology that exists on many personal computing and mobile devices. The Adobe Flash plugin runs SWF files that are generated by Flash authoring tools such as the Adobe Flash authoring tool and Adobe Flex. ActionScript is the most common Flash programming language. Using ActionScript, an SWF file can be programmed to do many things within a webpage including play streaming media.

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

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

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

    For example, to connect to a Wowza media server at the address mycompany.com, using the application name myapplication, the URL to use in the NetConnection.connect method is:

    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 media 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 a Wowza media server at the address mycompany.com, using the application name myapplication to play the video on demand file named mycoolvideo.mov, the URL is:

    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). The Wowza Streaming Engine software installation has the following OSMF-based example players:

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

    RTSP/RTP (QuickTime, VLC, 3GPP devices, set-top boxes, and more)

    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 players and devices such as QuickTime player (version 10 or later), VideoLAN VLC player, set-top boxes, and 3GPP devices. The Streaming Engine can also accept incoming streams from encoding devices that use these protocols. The Streaming Engine supports RTP and MPEG-2 TS input and output over UDP as well as multicast. In addition, the 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]

    • [wowza-ip-address]: IP address or domain name and port of the Wowza media server (default port 1935)
    • [application]: Application name
    • [application-instance]: Application instance name (if omitted, defaults to _definst_)
    • [stream-name]: Stream name with stream prefix

    For example, to play the live stream with the stream name mylivestream, located on the Wowza media server at the address mycompany.com, using the application name myapplication, the URL is:

    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 video on demand 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 (QuickTime container)

    This 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 (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

    More resources




    Originally Published: 12-02-2010.
    Updated: For Wowza Streaming Engine 4.0.6 on 08-11-2014.

    If you're having problems or want to discuss this article, post in our forum.