Wowza Community

What needs to be done to get StreamPublisher and ModuleLoopUntilLive to work?

I have tried following the following two guides and I can not get StreamPublisher or ModuleLoopUntilLive to work.

  1. How to schedule streaming with Wowza Streaming Engine (StreamPublisher)
  2. How to loop a pre-roll until a live stream starts (LoopUntilLive)

What are the minimum steps that should work?

My live2 application is of the live type. I added the wse-plugin-streampublisher jar, set up the listener, and set up the module.

I expect to see the sample.mp4 video play when I navigate to http://[ip address]:1935/live2/Stream1/playlist.m3u8. I am not getting anything to play at all.

/usr/local/WowzaStreamingEngine/content/live2.smil complete listing


        <stream name="Stream1"></stream>
        <stream name="Stream2"></stream>

        <playlist name="pl1" playOnStream="Stream1" repeat="true" scheduled="2016-04-15 16:00:00">
            <video src="mp4:sample.mp4" start="5" length="5"/>
            <video src="mp4:sample.mp4" start="50" length="5"/>
            <video src="mp4:sample.mp4" start="150" length="5"/>

        <playlist name="pl2" playOnStream="Stream1" repeat="true" scheduled="2016-04-15 16:30:00">
            <video src="mp4:sample.mp4" start="0" length="-1"/>

        <playlist name="pl3" playOnStream="Stream1" repeat="true" scheduled="2017-03-28 16:00:00">
            <video src="mp4:sample.mp4" start="0" length="20"/>

        <playlist name="pl4" playOnStream="Stream2" repeat="true" scheduled="2016-04-15 16:00:00">
            <video src="mp4:sample.mp4" start="30" length="5"/>


live2 custom properties

Path Name Type Value

/Root/Application securityPublishRequirePassword Boolean true

/Root/Application pushPublishMapPath String ${com.wowza.wms.context.VHostConfigHome}/conf/${com.wowza.wms.context.Application}/PushPublishMap.txt

/Root/Application streamPublisherSmilFile String live2.smil

/Root/Application streamPublisherPassMetaData Boolean true

/Root/Application streamPublisherSwitchLog Boolean true

/Root/Application loopUntilLiveSourceStreams String myStream

/Root/Application loopUntilLiveOutputStreams String Stream1

/Root/Application loopUntilLiveReloadEntirePlaylist Boolean true

/Root/Application loopUntilLiveHandleMediaCastersBoolean true

It look like I needed to define the following server property to get StreamPublisher and ModuleLoopUntilLive to work with the live2 application. At this point, both are working.

Path Name Type Value

/Root/Server streamPublisherApplication String live2/definst

I have a few questions at this point. Why is ModuleStreamPublisher not enough to load the schedule? Does ServerListenerStreamPublisher support more than one application at a time? How can the schedule (smil file) be reloaded programmatically if I am not using flash?


can you elaborate on what you did. I have the same problem. I am expecting to have the stream publisher starts at server startup but it doesnt start.


ModuleStreamPublisher can be configured on the server or application-level, and can be used by itself without using LoopUntilLive.

ServerListenerStreamPublisher’s streamPublisherApplication supports a String value only. You will need to change the module to support processing an array of application instances.

There are also some examples on the forum that looks into using an HTTPProvider or JMX Console to reload the schedule.


Do make sure that you are adding the server listener in the correct method, that you have the correct server-level properties configured, and that you have the SMIL file accessible to your Wowza services.