Use JW Player with adaptive bitrate streaming from Wowza Streaming Engine

This article describes a technique for generating a client-side SMIL file in Wowza Streaming Engine™ media server software, which can be used by JW Player's RTMP Dynamic Streaming implementation. JW Player supports loading dynamic streams from a server-side SMIL (Synchronized Multimedia Integration Language) file. This technique work siwth MPEG-DASH, HLS, and RTMP streaming.


  • For use with Wowza Streaming Engine™ 4.7.1 or later and JW Player 6.
  • JW Player is a Works with Wowza™ partner.

The proper request filter is built-in with Wowza Streaming Engine software and no further configuration is required for Wowza Streaming Engine. To configure JW Player, however, do the following:

  1. Create a client-side URL for JW player in the following format:

    For example, if the content folder has a file named sample.smil and video files named sample.mp4 and sample_250.mp4:

                <video src="mp4:sample_250.mp4" system-bitrate="250000"/>
                <video src="mp4:sample.mp4" system-bitrate="450000"/>

    You can use the following URL:


  2. In your webpage, insert the following embed code at the location where you want the player to appear:
    <script type='text/javascript' src='/jwplayer/jwplayer.js'></script>
    <div id='mediaplayer'></div>
    <script type="text/javascript">
            'flashplayer': 'player.swf',
            'id': 'playerID',
            'width': '720',
            'height': '306',
            'playlistfile': 'http://[wowza-ip-address]:1935/vod/smil:sample.smil/jwplayer.smil',
            'plugins': {
                'qualitymonitor-2': {}
This URL:

generates this SMIL file:

        <meta base="rtmp://localhost:1935/vod/_definst_"/>
        <video src="mp4:sample_250.mp4" system-bitrate="250"/>
        <video src="mp4:sample.mp4" system-bitrate="450"/>


  • If you use a streaming port number other than 1935, you must specify the ?domain query parameter and port number at the end of the URL. For example:

  • You can also use the technique described in this article if you have a Stream Name Group defined in a Transcoder template (ngrp: stream name prefix) or a MediaList (amlst: stream name prefix). For example:

    For more information about Transcoder Stream Name Groups (NGRP), see Set up and run Transcoder in Wowza Streaming Engine.

    For more information about how to generate a MediaList (AMLST), see Use Java API calls to resolve SMIL file requests (AMLST).