Wowza Community

ModuleLoopUntilLive configuration problem

Hello,

We have problem with ModuleLoopUntilLive module to stream a “waiting” video until live stream is available.

We have configured a live application, activated ModuleLoopUntilLive and streamPublisher modules on this application.

We have also set the following custom properties :

/Root/Application streamPublisherSmilFile => tlsloop.smil

/Root/Application loopUntilLiveSourceStreams => _320x180,_640x360, _1024x576, _1280x720

/Root/Application loopUntilLiveOutputStreams => Stream1_320x180,Stream1_640x360, Stream1_1024x576, Stream1_1280x720

Transcoder is activated for the application to generate 4 stream for HLS.

The tlsloop.smil contains the following lines :

        
<body>
                <stream name="Stream1"></stream>
                <playlist name="pl1" playOnStream="Stream1" repeat="true" scheduled="2016-04-15 16:30:00">
                    <video src="mp4:sample.mp4" start="0" length="-1"/>
                </playlist>
                <switch>
                        <video height="180" src="Stream1_320x180" systemLanguage="fr" width="320">
                                <param name="videoBitrate" value="256000" valuetype="data"></param>
                                <param name="audioBitrate" value="128000" valuetype="data"></param>
                        </video>
                        <video height="360" src="Stream1_640x360" systemLanguage="fr" width="640">
                                <param name="videoBitrate" value="1000000" valuetype="data"></param>
                                <param name="audioBitrate" value="128000" valuetype="data"></param>
                        </video>
                        <video height="576" src="Stream1_1024x576" systemLanguage="fr" width="1024">
                                <param name="videoBitrate" value="1500000" valuetype="data"></param>
                                <param name="audioBitrate" value="128000" valuetype="data"></param>
                        </video>
                        <video height="720" src="Stream1_1280x720" systemLanguage="fr" width="1280">
                                <param name="videoBitrate" value="2000000" valuetype="data"></param>
                                <param name="audioBitrate" value="128000" valuetype="data"></param>
                        </video>
                </switch>
        </body>

For the “real” live stream, the smil file is :

 <body>
                <stream name="liveStream"></stream>
                <switch>
                        <video height="180" src="_320x180" systemLanguage="fr" width="320">
                                <param name="videoBitrate" value="256000" valuetype="data"></param>
                                <param name="audioBitrate" value="128000" valuetype="data"></param>
                        </video>
                        <video height="360" src="_640x360" systemLanguage="fr" width="640">
                                <param name="videoBitrate" value="1000000" valuetype="data"></param>
                                <param name="audioBitrate" value="128000" valuetype="data"></param>
                        </video>
                        <video height="576" src="_1024x576" systemLanguage="fr" width="1024">
                                <param name="videoBitrate" value="1500000" valuetype="data"></param>
                                <param name="audioBitrate" value="128000" valuetype="data"></param>
                        </video>
                        <video height="720" src="_1280x720" systemLanguage="fr" width="1280">
                                <param name="videoBitrate" value="2000000" valuetype="data"></param>
                                <param name="audioBitrate" value="128000" valuetype="data"></param>
                        </video>
                </switch>
        </body>

When no live streaming is sent via rtmp to the Wowza server, the “waiting” video is correctly transcoded and streamed.

When we start the live streaming via rtmp, what we can see in the log is :

-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	publish	stream	INFO	200	_1024x576	-	-	-	-	0.001	-	-	-	-	-	-	-	-	-	-	6	0	0	0	_1024x576	-	-	-	-	-	/_1024x576	/_1024x576	-	-	-
2016-11-14	15:58:55	CET	create	stream	INFO	200	-	-	-	-	-	0.001	-	-	-	-	-	-	-	-	-	-	7	0	0	0	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.init[tlsloop/_definst_/]: chunkDurationTarget: 10000	-	-	-	1857.209	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.init[tlsloop/_definst_/]: audioGroupCount: 3	-	-	-	1857.209	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	comment	application	INFO	200	-	ModuleLoopUntilLive.StreamListener.onPublish Swapping to live [_320x180]	-	-	-	1857.209	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.init[tlsloop/_definst_/]: playlistChunkCount:3	-	-	-	1857.209	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	publish	stream	INFO	200	_320x180	-	-	-	-	0.001	-	-	-	-	-	-	-	-	-	-	7	0	0	0	_320x180	-	-	-	-	-	/_320x180	/_320x180	-	-	-
2016-11-14	15:58:55	CET	comment	server	INFO	200	-	MediaStreamMap.getLiveStreamPacketizer[tlsloop/_definst_/]: Create live stream packetizer: cupertinostreamingpacketizer:	-	-	-	1857.21	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	create	stream	INFO	200	-	-	-	-	-	0.0	-	-	-	-	-	-	-	-	-	-	8	0	0	0	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	comment	application	INFO	200	-	ModuleLoopUntilLive.StreamListener.onPublish Swapping to live [_1280x720]	-	-	-	1857.21	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	publish	stream	INFO	200	_1280x720	-	-	-	-	0.0	-	-	-	-	-	-	-	-	-	-	8	0	0	0	_1280x720	-	-	-	-	-	/_1280x720	/_1280x720	-	-	-
2016-11-14	15:58:55	CET	create	stream	INFO	200	-	-	-	-	-	0.0	-	-	-	-	-	-	-	-	-	-	9	0	0	0	-	-	-	-	-	-	-	-	-	-	-
2016-11-14	15:58:55	CET	comment	application	INFO	200	-	ModuleLoopUntilLive.StreamListener.onPublish Swapping to live [_640x360]	-	-	-	1857.211	-	-	-	-	-	-	-	-	

And we can see that the transcoder transcodes correctly to HLS the incoming rtmp live stream.

The problem is that in the distributed stream, the live stream is never sent, we always have the waiting video.

We don’t understand what’s wrong.