Set up adaptive bitrate streaming with the Wowza Streaming Engine MediaStreamNameGroups module

MediaStreamNameGroups are a way to group streams together using a SMIL file in Wowza Streaming Engine. The streams are started using the SMIL with /conf/StartupStreams.xml or MediaCaster with the Java API. This assumes that you're using a native-RTP or MPEG-TS encoder that can send properly keyframe-aligned streams (all keyframes occur at exactly the same timecode across all bitrate renditions of the stream).

You can use this module along with ModuleMediaCasterStreamMonitorAdvanced module to monitor streams through a set of configuration properties. If any of the streams become unhealthy all the streams in a given MediaStreamNameGroup will be re-started.

  1. Create a SMIL file that includes all the streams that you wish to be considered part of a MediaStreamNameGroup. A single application can have several MediaStreamNameGroups. The SMIL file doesn't need to be used for stream playback. Be sure to include all streams in the group that you wish to keep synchronized. For example, if you have three streams associated with an MPEG-DASH stream and three streams associated with an HLS multi-bitrate stream and one of the streams is associated with both the MPEG-DASH and the HLS stream (total of five unique streams) then create a SMIL file that includes all five unique streams.

    Here is an example SMIL file (for this example the SMIL file is located at [install-dir]/content/stream.smil):

    <smil>
        <head></head>
        <body>
            <switch>
                <video src="stream_hi.stream" system-bitrate="628000"/>
                <video src="stream_lo.stream" system-bitrate="478000"/>
            </switch>
        </body>
    </smil>
  2. Using either /conf/StartupStreams.xml or MediaCaster with the Java API, start the stream with MediaCaster type rtp using the stream name smil:[smil-filename]. For example, to start the stream group above use the stream name smil:stream.smil