VirtualStreams Plugin for Wowza


The intent of this plugin is to provide "virtual" streams, that replace encoders or enable work-arounds when accessing a VOD file is not an option. Possible use cases include testing live streams, or rewriting requests to virtual live streams (with GeoIP plugin for example).

The plugin should be compatible against Wowza 4.5.0+.

Installing the plugin

Copy the provided jar files into your WowzaStreamingEngine's lib/ folder. On Linux systems, the location for it is usually /usr/local/WowzaStreamingEngine/lib/.

The VirtualStreams plugin is installed into the main Server.xml configuration. The following snippet should be added just before </ServerListeners>.


The WowzaStreamingEngine needs to be restarted to enable the plugin.

Plugin configuration

The plugin will look for configuration in this location: /usr/local/WowzaStreamingEngine/conf/virtualstreams.xml. The virtual streams are created on server startup and are not reloaded or added while the server is running.

The configuration file has the following structure:

<?xml version="1.0" encoding="utf-8"?>
    <stream vhost="red300" app="live1" file="mp4:sorry.mp4" name="sorry_vod.sdp"/>

The <virtualstreams> object includes one or more <stream> definitions. The <stream> is declared with several mandatory parameters:

Parameter Description
vhost The virtual host name where a virtual stream should be created
app The application on which a virtual stream should be created
file The file which the virtual stream will play in a loop
name The name of the virtual stream provided to users

In the example above, a virtual stream is created with:

  1. the name sorry_vod.sdp (users will request the stream by this name),
  2. the file mp4:sorry.mp4 (the virtual stream will loop this video),
  3. the vhost and app where the stream will be

Let's say red300 is created on port 3000, the request for the virtual stream might be made with the following url:



The VirtualStreams plugin is developed by Tit Petrič (c), all rights reserved.

Product page: