How to generate a SMIL file with an HTTP provider

Create an HTTP provider that will automatically generate a SMIL file for adaptive-bitrate playback of transcoded renditions of a live source.

  • Wowza Streaming Engine™ 4.7.1 or later is required.
  • To use an HTTP provider to generate a SMIL file, you may have to set the Admin user name and password, because Administrator uses port 8086. Set the Admin user name and password in the [install-dir]/conf/admin.password file.
  1. Open [install-dir]/conf/VHost.xml in a text editor and change the AuthenticationMethod for com.wowza.wms.http.HTTPProviderMediaList to none:
    This HTTP provider can be found on each host port, so you might need to edit the HTTP provider in multiple places.
  2. Start your Wowza Streaming Engine media server.
  3. While a transcode or transrate is in progress with a working Stream Name Group, open the following URL in a web browser:
  • [wowza-ip-address] is the Wowza Streaming Engine server IP address,
  • [ngrp-name] is the Stream Name Group StreamName as defined in your template file (located by default in [install-dir]/transcoder/templates), and
  • [application] is the application name.

For example, if your stream name is myStream, your application name is live, and you're using the sample template transrate.xml, which defines a Stream Name Group stream name named myStream_all, the two new streams that are created are named myStream_360p and myStream_160p. You would open the following URL:


This would automatically generate the following SMIL file:

               <video src="mp4:myStream_source" system-bitrate="2270208" width="1280" height="720">
                       <param name="audioBitrate" value="196608" valuetype="data"/>
                       <param name="videoBitrate" value="2073600" valuetype="data"/>
                       <param name="videoCodecId" value="avc1.4d401f" valuetype="data"/>
                       <param name="audioCodecId" value="mp4a.40.2" valuetype="data"/>
               <video src="mp4:myStream_360p" system-bitrate="1046608" width="640" height="360">
                       <param name="audioBitrate" value="196608" valuetype="data"/>
                       <param name="videoBitrate" value="850000" valuetype="data"/>
                       <param name="videoCodecId" value="avc1.4d401f" valuetype="data"/>
                       <param name="audioCodecId" value="mp4a.40.2" valuetype="data"/>
               <video src="mp4:myStream_160p" system-bitrate="396608" width="284" height="160">
                       <param name="audioBitrate" value="196608" valuetype="data"/>
                       <param name="videoBitrate" value="200000" valuetype="data"/>
                       <param name="videoCodecId" value="avc1.428015" valuetype="data"/>
                       <param name="audioCodecId" value="mp4a.40.2" valuetype="data"/>

Note: The transrate.xml template has two more <Encode> blocks, one defined for a 720p rendition and the other for a 240p rendition. By default, the <Enable> flag is set to false so that these two streams won't be generated and won't be available to players. Change the <Enable> flag to true to enable these additional streams.

More resources