Wowza Community

EdgeCast RTMP Repeater

Greetings,

I am practically new to wowza, but I have read several tutorials that got me started on the right track.

I have purchased Wowza on EC2 and have set up an application which I will be using to repeat RTMP streams from my EdgeCast account. This application would enable me to deliver the stream to mobile devices (iOS, android, blackberry, etc…).

I have followed the following tutorial: How to re-stream an unprotected stream from FMS or a CDN such as Akamai (https://www.wowza.com/docs/how-to-re-stream-an-unprotected-stream-from-adobe-media-server-or-a-cdn).

It got me running correctly, and I was able to view the stream on my mobile devices.

However, this only worked for url’s such as:

rtmp://fms.xxxx.edgecastcdn.net/20xxxx/firstfolder//mp4:something

or

rtmp://fms.xxxx.edgecastcdn.net/20xxxx/streamname/streamname

I am unable to get it working for streams such as:

rtmp://fms.xxxx.edgecastcdn.net/20xxxx/firstfolder/secondfolder/streamname

It seems I’m not getting the hang of the format that should be passed in the “.stream” file.

This brings me to the second point:

Am I able to get the application to repeat rtmp streams without hardcoding the links into a .stream file? Is there a way I could dynamically pass these links? (such as with stream alias or something like that?)

I appreciate your help as I have been searching around for several hours only to bump into dead ends.

Thank you,

Chikko

Chikko,

Add “definst”, like this:

rtmp://fms.xxxx.edgecastcdn.net/20xxxx/_definst_/firstfolder/secondfolder/streamname

Richard

I’m not sure then. It’s a edgecast/FMS question.

Richard

Why do you have folders involved in a live stream?

Are you following these guides?

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

https://www.wowza.com/docs/how-to-re-stream-an-unprotected-stream-from-adobe-media-server-or-a-cdn

Richard

Where does Wowza fit in to this? I see Edgecast and FMS.

If Wowza is involved, “firstfolder” is an application instance in your URL. As you mean that to be part of a path, you have to use “definst

rtmp://fms.xxxx.edgecastcdn.net/20xxxx/definst/firstfolder/secondfolder

Richard

In that case, you are re-streaming the whole RTMP url, whatever is correct from the CDN/FMS server. So, again, this is the guide for that:

https://www.wowza.com/docs/how-to-re-stream-an-unprotected-stream-from-adobe-media-server-or-a-cdn

You can see what I mean about re-streaming the whole RTMP url by looking at this guide:

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

So your clients will connect to a Wowza edge, and they will play a stream that is the whole RTMP url + stream name. This an be put in .stream file for easier playback.

Richard

It is unusual and unnecessary to have a path for a live stream, but you have to add application instance part in this case: “definst”. There is only one application instance, the rest is path.

rtmp://server/myapp/definst/level1/level2/mystream

Richard

Hello Richard,

The original poster is correct and the provided solution will not work. In this particular case this is exactly what is happening:

Assuming edgecast live stream is:

rtmp://domain/accountid/path1/path2/mystream

specifically, this actually means:

fms server: rtmp://domain/accountid/path1/path2

stream name: mystream

However using the *.stream file or the stream name alias system, Wowza will send the stream to edgecast incorrectly as follows:

fms server: rtmp://domain/accountid/path1

stream name: path2/mystream

So the question really is, how can we have greater control over how Wowza parses a complete rtmp url so that is sends the correct server and stream name values?

note that we have confirmed this by examining logs on both sides. definst was added at each position to no avail, and edgecast urls limited to rtmp://domain/accountid/path1/streamname will work. The issue is when more than one path segment is included in the live url.

Thanks!

Greetings Richard,

Thank you for your quick reply.

Unfortunately, I tried that but it still isn’t working :frowning:

Hey Richard,

Let me get things clear in my mind.

I should set the RTMP url in the .stream file to :

rtmp://fms.xxxx.edgecastcdn.net/20xxxx/_definst_/firstfolder/secondfolder/streamname

even if I normally directly access the stream using a flash player (such as jwplayer), with the following url:

rtmp://fms.xxxx.edgecastcdn.net/20xxxx/firstfolder/secondfolder/streamname

??

EDIT: Oh, and I was observing the console log, it writes the following:

INFO server comment - LiveMediaStreamHandler.connect: rtmp://fms.xxxx.edgecastcdn.net/20xxxx/_definst_/firstfolder/secondfolder/streamname://fms.xxxx.edgecastcdn.net:1935/20xxxx/_definst_[firstfolder/secondfolder/streamname]

Is that the way it should be?

EDIT 2: Just in case it makes any difference, I am obviously trying to set up a repeater for live RTMP streams, not VOD.

I will try messing around just in case I had some misconfiguration in my encoder or in the stream file or something.

Second, what do you think about the other question

Am I able to get the application to repeat rtmp streams without hardcoding the links into a .stream file? Is there a way I could dynamically pass these links? (such as with stream alias or something like that?)

Do you think this is feasible?

Yeah, I am following these guides very closely.

Why do you have folders involved in a live stream?

The reason I have folders in a live stream is because of the way the server-side archiving works in EdgeCast.

Assume I set the FMS URL in the Flash Media Live Encoder to rtmp://fso.ams.xxxx.edgecastcdn.net/20xxxx/firstfolder/secondfolder and the Stream to ‘mystreamname’, at the end of the streaming event an archived copy of the stream would be saved to that directory (/firstfolder/secondfolder). Therefore, having folders in the FMS URL facilitates the structure of the archived files by placing them into certain folders.

In order to play the live event, I set the following variables in JWPlayer:

Streamer : rtmp://fms.xxxx.edgecastcdn.net/20xxxx/firstfolder/secondfolder

File : mystreamname

How can I make Wowza use similar settings?

Where does Wowza fit in to this? I see Edgecast and FMS.

I have purchased Wowza on EC2 and have set up an application which I will be using to repeat RTMP streams from my EdgeCast account.

I am trying to pull the RTMP stream from Edgecast’s FMS and repeat it using Wowza (in order to serve the stream to mobile devices).

It appears to me now (correct me if I’m wrong) that the structure of the link in EdgeCast’s FMS is different from that of Wowza.

Edgecast expects that the ‘streamname’ be only the filename, and the ‘streamer’ to be the rtmp link including the folders,

whereas Wowza is attempting to connect to the RTMP url, and provides the filename as the streamname and the folders. (as wowza follows the url/applicationinstance/streamname structure)

And that is why Wowza is unable to connect to the stream when the url contains a list of subfolders but is able to do so when the structure contains only one folder (eg: rtmp://server.com:1935/folder/streamname).

Again, thank you a lot for your prompt responses Richard. I appreciate that.

Hi,

I am also looking for the same solution. Our problem stems from the fact that it appears that Wowza can’t handle deep linked app instances. It assumes one instance level which will not work for my company.

Live stream: rtmp://server/myapp/level1/level2/mystream

Wowza parser

Server: rtmp://server/

App: myapp

Instance: level1 <-WRONG

Stream: level2/mystream <-WRONG

Correct parser:

Server: rtmp://server/

App: myapp

Instance: level1/level2

Stream: mystream

I would assume there must be a way to configure an app differently.

I’m having same problem to repeat rtmp urls with further parameter.

rtmp://serverIP:1935/applicationname?idu=instance/streamname

The rtmp urls play well with vlc and Flash player, but still having problem to restream it with Wowza LiveRepeater.

Used it in debug mode I got the following error:

INFO server comment - LiveMediaStreamHandler.sessionClosed: reconnect: isCurrentSession:true tryConnect:true

INFO server comment - LiveMediaStreamHandler.onResult: Error Connecting to remote server: code: NetConnection.Connect.Rejected

INFO server comment - LiveMediaStreamHandler.sessionClosed:

Because Wowza send parameters to thirty party server incorrectly. How to force Wowza to send the parameters the same way VLC does?