Wowza Community

Live Stream Repeater

Hi,

I’d like to know if it is possible to configure 3 servers in the following way to restream a shoutcast aac stream (I’ve tried to implement it, but I get an error).

I’d like to use very server like edge server and 2 of them like origin server, in this way every server will be able to get the stream from both origin servers.

But, is it possible to configure on the same server origin and edge application?

Do I’ve to startup automatically only the origin application or even the edge application?

Thanks for the answer

Luca

I’m trying in this way.

Origin application is named radio1origin

In the application.xml I’ve set Streams/StreamType to liverepeater-origin and cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer on LiveStreamPacketizers.

In content folder I’ve created radio1origin.stream for the shoutcast url.

Then I’ve set on the startup streams:

radio1origin/definst

shoutcast (is it correct to set shoutcast here?)

radio1origin.stream

Restared the server the stream works, I can listen using rtmp://server/radio1origin/radio1origin.stream

Now the edge application on the same server.

Edge application is named radio1

In the application.xml I’ve set Streams/StreamType to iverepeater-edge and cupertinostreamingrepeater,smoothstreamingrepeater,sanjosestreamingrepeater on LiveStreamPacketizers.

Then I’ve added:

rtmp://localhost/radio1origin

Do I have to set even this stream on the startupstreams.xml?

Do I have to write a .stream file on the content folder? If yes, what do I have to wirte in that file?

And what do I have to set on the player for the stream name?

Thanks in advance for your help.

Luca

Start the origin stream on the edge with MediaCaster type “liverepeater”

Use MediaCaster type “shoutcast” when you start the source on the origin

Richard

Radio1.stream isn’t anything. Change it to Radio1Origin.stream, which is the name of the stream on the origin.

<StartupStream>
	<Application>Radio1/_definst_</Application>
	<MediaCasterType>liverepeater</MediaCasterType>
	<StreamName>Radio1Origin.stream</StreamName>
</StartupStream>

Richard

Luca,

First, are you streaming to iOS and Flash HTTP clients? If not, take out all the LiveStreamPacketizers on both origin and edge. For sure take out the smooth* packetizers because Silverlight does not support audio only streams, so it is just wasted overhead.

Second, have you considered taking the origin out of this configuration? The shoutcast server can be the origin to your Wowza edge servers without a liverepeater-origin. (If you do that, and are streaming to iOS, change the edge LiveStreamPacketizer to what you have on the origin)

In any case, try using another .stream file on the edge that contains the full rtmp url of the origin stream, instead of the originURL

Richard

Luca,

Just use another .stream file that points to another origin.

If you want to use the Liverepeater origin failover feature, you do have to use originURL with pipe delimited URLs to origin primary and backup. This is strictly for failover, not a way to use multiple origin servers.

Richard

Take a look at this guide, step through it carefully to see how this all works. Use of .stream files is covered:

https://www.wowza.com/docs/how-to-configure-a-live-stream-repeater

Richard

Thanksssssssssss… :slight_smile:

Hi Richard,

it doesn’t work.

But what do you mean “start the origin stream on the edge…” ?

The edge and the origin are on the same server, so I’ve tried to start the origin with shotcast type and the edge stream like liverepeater, is it correct?

In this way I get this warn wheen the server boot: LiveMediaStreamReceiver.connect: failure

Could you help me?

thanks

Luca

I’m sorry,

probably I’m doing some confusion.

At the moment I’ve tried to follow the user manual setting up one server like origin server and a second server like an edge server, but always I see thuis warn:

LiveMediaStreamreceiver.connect: failure

and the edge server dowesn’t work.

Probably is better if I recap my configuration for a better analisys.

I’m using two servers, both 3.0.3 version.

On the origin server I’ve defined an application named Radio1Origin and on the application.xml I’ve written:

<StreamType>liverepeater-origin</StreamType>
<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>

In the startupStreams.xml I’ve set:

		<StartupStream>
			<Application>Radio1Origin/_definst_</Application>
			<MediaCasterType>shoutcast</MediaCasterType>
			<StreamName>Radio1Origin.stream</StreamName>
		</StartupStream>

Then in the content folder I’ve created Radio1Origin.stream with the url of the shotcast server where to get the aac audio (http://locahost:port).

This first part works, if I play this stream using:

rtmp://server/Radio1Origin

Radio1Origin.stream

the jwplayer player works.

Now let’s see the edge server.

I’ve defined an application named Radio1 and on the application.xml I’ve written:

<StreamType>liverepeater-edge</StreamType>
<LiveStreamPacketizers>cupertinostreamingrepeater,smoothstreamingrepeater,sanjosestreamingrepeater</LiveStreamPacketizers>
		<Repeater>
			<OriginURL>rtmp://origin_server/Radio1Origin</OriginURL>
			<QueryString><![CDATA[]]></QueryString>
		</Repeater> 

In the startupStreams.xml on the edge server I’ve set:

		<StartupStream>
			<Application>Radio1/_definst_</Application>
			<MediaCasterType>liverepeater</MediaCasterType>
			<StreamName>Radio1.stream</StreamName>
		</StartupStream>

I didn’t set any file in the content folder on the edge server.

So, when I boot the edge server I see this warning: LiveMediaStreamreceiver.connect: failure

Then I set these parameters on the jwplayer:

rtmp://edge_server/Radio1

Radio1.stream

the jwplayer doesn’t player work.

What am I doing wrong?

Thanks

Luca

Thanks Richard,

it works if origin and edge are on different servers, but if I set origin and edge on the same server it doesn’t work.

When I start the edge stream I get:

WARN LiveMediaStreamReceiver.doWatchdog: streamTimeout: Resetting connection

It seems edge is not able to get the origin stream.

Any idea or am I doing something wrong?

Thanks

Luca

Hi Richard,

please, could you help me?

I’m not able to solve my problem, I always get “LiveMediaStreamreceiver.connect: failure” on the edge server when I start the edge stream.

This is exactly my configuration.

I get the stream using a shoutcast server, so this is the configuration on the origin server.

Application name “aorigin”

In the application xml file I got:

<StreamType>liverepeater-origin</StreamType>
<LiveStreamPacketizers>cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer</LiveStreamPacketizers>

On the content folder I got the file aorigin.stream with the url to the shoutcast server (http://localhost:4610).

I start the stream from the stream manager:

Application: aorigin/definst

Mediacaster type: shoutcast

Stream: aorigin.stream

I use realplayer to test the streams, and with this url rtsp://server/aorigin/aorigin.stream it works.

Now the edge server (it’s another machine).

Application name “aedge”

In the application xml file I got:

<StreamType>liverepeater-edge</StreamType>
<LiveStreamPacketizers>cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater</LiveStreamPacketizers>
<Repeater>
	<OriginURL>rtmp://origin_server/aorigin</OriginURL>
	<QueryString><![CDATA[]]></QueryString>
</Repeater>

I start the stream using stream manager:

Application: aedge/definst

Mediacaster type: liverepeater

Stream: aorigin.stream

As I start the stream I get “LiveMediaStreamreceiver.connect: failure”

and if I try to listen using realplayer with this url rtsp://edge_server/aedge/aorigin.stream I get a connection error.

I’m going crazy with this configuration, be patiente … could you help me?

I’d like to get working edge and origin on the same server, but at the moment I’m not able to get them working on 2 different machines!

Thanks a lot

Luca

Hi Richard,

thanks for your help!

I’ve removed smooth* packetizers, but I’ve left the others because I need to stream to flash clients and to iOS devices.

What I want to do is to have the possibilitiy to use two sources on the edge stream.

So in the origin server I have two shoutcast servesr receiving the same stream from two different sites.

I’ve seen that an edge server can use 2 origin sources to get the stream, so if one fall down the stream goes on using the second source.

Now I’ve tried to use a .stream file with the complete url to the origin stream and it works.

It works on a remote server and it works even if origin and edge are on the same machine.

But now, how can I specified two different sources for the edge stream?

On the edge application file I’ve removed this code

rtmp://origin_server/aorigin

Can I put the two sources on the .stream file using the | separator?

I really thank you

Luca

Richards,

I’m not able to get this configuration working.

If I use originURL parameter, what do I have to write in the .stream files?

And what do I have to write on the JWplayer setup?

I have done some tests but the failover doesn’t work.

Luca

Hi

radio1origin/definst

shoutcast (is it correct to set shoutcast here?)

radio1origin.stream

Restared the server the stream works, I can listen using rtmp://server/radio1origin/radio1origin.stream

Now the edge application on the same server.

Edge application is named radio1

In the application.xml I’ve set Streams/StreamType to iverepeater-edge and cupertinostreamingrepeater,smoothstreamingrepeater ,sanjosestreamingrepeater on LiveStreamPacketizers.

Then I’ve added:

rtmp://localhost/radio1origin

This is all correct.

Do I have to set even this stream on the startupstreams.xml?

You can do it like that if you wish and you would do it like this:

radio1/definst

liverepeater

radio1origin.stream

rtmp://server/radio1/radio1origin.stream

Do I have to write a .stream file on the content folder? If yes, what do I have to wirte in that file?

You don’t have to make a .stream if you don’t want to.

If you wanted to you would put the full RTMP link to the original stream:

rtmp://server/radio1origin/radio1origin.stream

Jason