Wowza Community

Live Streaming, Loop Clip until Live

Hi All,

I’m a server admin at CSN in Las Vegas, and I inherited the Wowza project from a previous admin who left. Unfortunately, I am not versed in Java and I have light HTML skills.

Luckily, I’ve been able to get the system to work…kinda, but not the likings of the higher-ups. There are a couple things they’re still looking for and, for two weeks, I haven’t been able to get them to work.

  1. Loop until Live - Right now, the live stream will play when there is one. When there isn’t, it shows an error for not being able to load the m3u8. I’m pretty positive I have all the playback loop stuff setup correctly. I see my “csnloop” showing up in my content folder (which is a problem because I think my automatic live recording is also recording the “loop”), but it’s not showing up on the site. Here is the code.
<center>
<div id="player"><a href="rtsp://streaming.csn.edu:1935/live/csn">View RTSP stream</a></div>
<script type='text/javascript'>
                  jwplayer('player').setup({ 
						autostart: 'true',
						file: 'http://streaming.csn.edu:1935/live/smil:csn.smil/playlist.m3u8',
                                                height: 600, 
                                                width: '100%',
						title: 'CSN Live Streaming',
                                                fallback: 'false'
					});
                </script>
</center> 

Does anyone know why I wouldn’t see the loop playing when there isn’t anything streaming to the http smil file? Also…anyone know how to tell this to not record the loop stream?

  1. Is my div id correct for android streaming? I can’t seem to get android to work on JWPlayer, so I’ve reverted to just using the fallback. I’ve taken the fallback out of my code for the time being because the code is failing on the loop.

I appreciate any help. Our Regents meeting is coming up next week so there will be a lot of eyes on it.

Hello there and welcome to the Wowza support forum.

Assuming you have everything configured correctly and using the default settings shown in the guide, the SMIL file is used by the Stream Publisher to create a single output stream called Stream1. It will play sample.mp4 in a loop. When a live source stream (myStream) is published, the output stream will switch to the live source.

So you should use the following URL if using default settings:

http://streaming.csn.edu:1935/live/Stream1/playlist.m3u8

If you have “record all incoming streams” checked, then the looping file will be recorded. The only way to avoid that would be to manually start the recording. (Or through custom Java code)

And yes, the fallback code looks to be correct.

You can look over the guide and double check that everything is configured correctly. Or you may enjoy the process of starting a new Application and configuring it from scratch:

How to loop a pre-roll until a live stream starts (ModuleLoopUntilLive)

Guide for recording Live streams (2 options):

How to record live streams (Wowza Streaming Engine)

How to record live streams (HTTPLiveStreamRecord)

I hope this helps you along your way.

Kind regards,

Salvadore

Okay, so you will leave the .smil file as is.

The property loopUntilLiveSourceStreams by default is set to myStream. Double check your Application settings to make sure this is set to “CNS” if that is what the name of the Live stream is going to be.

Then the property loopUntilLiveOutputStreams which by default is set to Stream1. Again, double check that you have this set to “csnloop

With these settings in place, your URL should be:

http://streaming.csn.edu:1935/live/csnloop/playlist.m3u8

Kind regards,

Salvadore

Thank you Aaron. I am glad we were able to get this working for you.

Adaptive (dynamic) bitrate streaming is not supported when using loop until live. Out of the box at least. It will take quite a bit of custom work.

You can get a sense of whats involved by taking a look at the conversation in the comments of the article (page 4):

See roger_l’s comments here

You may decide to hire this step out. In which case you can post a request to the find a consultant forum.

Thanks again.

Salvadore

You are most welcome Aaron. Let us know if you need anything else. Maybe start a new thread if the topic changes to drastically.

Best,

Salvadore

Ok…I understand most of what you’re saying. I’m only confused as to where to put that code you’re talking about.

My streaming site is using the default stream name for our purpose which is “CSN”, as seen in the code above.

Are you saying I need to put “csnloop” in there instead of CSN?

Also…here is a copy of the loop smil file.

<smil>
    <head>
    </head>
    <body>
        <stream name="csnloop"></stream>
        
        <playlist name="pl1" playOnStream="csnloop" repeat="true" scheduled="2014-11-21 11:00:00">
            <video src="mp4:csn_720p_20.mp4" start="0" length="200000"/>
        </playlist>
    </body>
</smil>

You are a genius! It works great.

Now…one last question. The live feed comes through, but does not come up with the dynamic bitrate stream anymore. Is there anyway to bring that back?

Aaron

Hi Salvadore,

Thanks for the reply.

I think we’ll stick with what we have now. I suddenly have no desire to have the dynamic bit rate streaming working again…lol.

I appreciate all your help. I’m just working on Android streaming right now. I’m seeing if I can get that link working.

Thanks for all your help!

Aaron

Wow…I just spent a lot of time trying to get this to work only to find out that adaptive bit rate streaming won’t work and my filler loop will be recorded not only when I am recording the live stream, but also by the nDVR. I wonder why these limitations aren’t noted in the setup examples…such limitations should be explained before customers have wasted days to find out.