I’m using the LoopUntilLive module to play an “offline loop” to my players while there is no encoder pushing to my server. At the most, I have 8 simultaneous inputs. I’d like to be able to have just one stream created by StreamPublisher to be used as my offline loop for all 8 streams.
The issue I have is if I create 8 separate offline streams, each one of those is also picked up by my transcode template (3 transcode outputs). When all 8 inputs are live, all of my offline streams are also still live, meaning I have a total of 48 outputs streams running at once (24 outputs for live and 24 for my offline loops), which is more than I’d like to have running at once on my server. I’m using SMIL files to publish multi-bitrate to my players.
Is what I’m trying to achieve even possible? Thanks!
I will check for you with the engineers @Nick Malczewsky.
Thanks for your patience @Nick Malczewsky. I did receive a response from engineering for you:
You should only be transcoding the loop outputs and should only be packetizing the transcoder outputs.
As you may know, you need the separate outputs because they are what the player actually connects to. The live source is injected into this stream when it’s available.
To get over the transcoding issue, you can use the transcoder control module https://www.wowza.com/docs/how-to-control-which-streams-get-transcoded-moduletranscodercontrol to specify which streams get transcoded.
There is also similar control modules for Http Packetizers and DVR.
https://www.wowza.com/docs/how-to-control-which-streams-get-packetized-for-http-streaming-modulepacketizercontrol
https://www.wowza.com/docs/how-to-control-which-streams-get-recorded-by-the-ndvr-recorder-moduledvrrecordercontrol
Please let me know if this was helpful to you or if you require additional assistance.
I have essentially the same question, but I’m not following the answer.
Like @Nick Malczewsky, I have several intermittent live streams, and would like to have a single loop saying, “loss of signal, please wait” for the advertised output when the source is not available.
I think what you are saying is that each unique input needs to have it’s own LoopUntilLive stream constantly looping and playing out on my SME, and then I send the result to the transcoder?
So, if my intermittent input streams (loopUntilLiveSourceSteams) are DL1, DL2, DL3, … DL6, and the video I want to play when they aren’t available in LOS.mp4, I’d need to:
Create as many schedules as inputs, with a playlist for each pointing to my LOS.mp4:
loopUntilLiveOutputStreams: DL1-always, DL2-always, DL3-always, … DL6-always
and then configure the Output Streams to go through the transcoder?
That means my server is busy playing out N copies of my LOS.mp4 files, even when the input streams are all live?
Or should I set up my LOS playlist once, and then have all the other streams defined using that one as a live stream?
@Bryan Walls: Set up a schedule with a single stream output (i.e. Stream1) and use that as your loopUntilLiveOutputStreams property. This will function as the stream that is either live or playing as the playlist, depending on the up/down presence of a live source.
Then set up a comma-separated list for the loopUntilLiveSourceStreams property which will be representative of each intermittent stream.
Thoughtful use of ModuleTranscoderConrol (which @Rose Power-Wowza Community Manager mentioned in this post) will save you having to transcode the playlist stream(s).