Wowza Community

Multiple switchable .stream sources for Push Publishing as a single outgoing stream

Hi,

  1. I have multiple RTMP link sources, from different streaming servers, and I have converted them to .stream files.

source1.stream = rtmp://streamingserver1.com/app1/source1

source2.stream = rtmp://streamingserver2.com/app2/source2

source3.stream = rtmp://streamingserver3.com/app3/source3

I can play the following streams in my Wowza Streaming Engine by starting each stream using the Stream Manager (Application Name: myliveapp ; MediaCaster type: liverepeater)

rtmp://mywowzaserver:1935/myliveapp/source1.stream

rtmp://mywowzaserver:1935/myliveapp/source2.stream

rtmp://mywowzaserver:1935/myliveapp/source3.stream

Now, I’m trying to push publish any of the streams (source1.stream, source2.stream and source3.stream) to a CDN. I created a new .stream file (switch.stream) in which the content can be replaced by any of the stream file sources. To illustrate,

switch.stream = rtmp://mywowzaserver:1935/myliveapp/source1.stream OR

switch.stream = rtmp://mywowzaserver:1935/myliveapp/source2.stream OR

switch.stream = rtmp://mywowzaserver:1935/myliveapp/source3.stream

I’ve created a PushPublishMap.txt file in the same folder as my application (myliveapp) and the corresponding changes in the Application.xml was also made (due to change in the PushPublishMap.txt location).

My problem is, I can’t play switch.stream using myliveapp application in the Wowza Streaming Engine.

What am I missing here? Is it possible to achieve my objective using this setup?

  1. I also tried creating an origin application, started the sources (source1.stream, source2.stream and source3.stream) using Stream Manager, then configured my myliveapp application (stated above) as an edge application (added the necessary OriginURL in the Application.xml). Then, I started switch.stream in the Stream Manager (Application: myliveapp ; MediaCaster type: liverepeater) to push publish switch.stream stream to the CDN. However, the stream (RTMP delivery) played for about 3 seconds only using my CDN.

Hi,

Your workflow is a little confusing, at first I thought you may have wanted to do Adaptive bitrate streaming but if that’s not the case then it’s likely that you’re .stream fie (switch.stream) either isn’t created correctly or hasn’t been published in Wowza Streaming Engine Manager.

If you are looking to do adaptive bitrate streaming, switch.stream should be a .smil file (switch.smil) and then reference the 3 streams which should be keyframe aligned.

When using Stream Targets (formally known as PushPublishing) you would need to push each adaptive bitrate sources (source1.stream, source2.stream and source3.stream).

Any stream targets should be on the origin when using an origin/edge configuration. I recommend that you open a ticket with our support team.

When opening a ticket, please include a detailed description of what you’re trying to achieve, a link to this thread for reference and a ZIP file containing the [Wowza-Install]/conf/ directory and latest log files for analysis.

Regards,

Jason

Hi Jason,

Thanks for the reply.

My ultimate objective is simply to switch the content/video that is being streamed out or push published by the edge application (myliveapp) anytime I want, without changing the stream name (switch.stream) indicated at the PushPublishMap.txt. The content/video could be from any of the three sources (source1.stream, source2.stream and source3.stream). All that I need to do is simply assign XXX (source1.stream OR source2.stream OR source3.stream) as the content of

switch.stream = rtmp://mywowzaserver:1935/myliveapp/XXX

Any alternative solution will be highly appreciated.

Thanks,

Roger

Hello,

It may be that a stream aliasing solution would provide the switching capabilities that you require. Take a look a the IMediaStreamNameAliasProvider2 interface article for more information.

Best regards,

Andrew