Wowza Community

Ingest RTMP from one Wowza instance in to another

Hi,

We have to ingest a live RTMP stream from a RTMP URL provided to us by a customer.

Our customer use Wowza 3.0.5.

On our end, we have to ingest this RTMP feed in to our Wowza. How can we do this? We checked out the option of using liverepeater-origin and liverepeater-edge configuration but the customer is not willing to make any change to his setup. So changing the stream-type in his application to liverepeater-origin is not possible.

The only option remains is to write a code on our side that reads RTMP from the customer’s wowza and publishes it to our wowza using something like librtmp. But is there any in-built way to do this so that there’s no need to code on our part.

Thanks

Nitin

Nitin,

If the Wowza Origin application has StreamType “live” or “rtp-live” (or their variations) you can re-stream from another Wowza application with StreamType “liverepeater-edge”. Use .stream file in contents folder

File: /content/origin.stream

Contents: rtmp://[wowza-address]:1935/[customer-live-app]/[customer-stream]

Then start on your edge in stream manager on your edge application with MediaCaster type “liverepeater” and StreamName “origin.stream”, or whatever you name the file.

Richard

I am not getting the streams consistently from the edge server.

What you show and describe indicates a network problem or problem with the source. Perhaps your customer’s server was too busy. But we can look at your setup and this stream. Zip up and send /conf and /logs folders. Include the .stream file(s) you are using.

Include a link to this thread for reference.

Richard

If the stream identifies as FMLE by its user agent I don’t think Wowza will close the connection. If the user agent indicates that it is a Flash connection, you can modify timeout in /conf/VHost.xml /Application /PingTimeout and /ValidationFrequency

Richard

Hi Richard,

I tried setting this up the way you suggested. But I am not getting the streams consistently from the edge server.

I checked wowza error log and I get this error consistently:

LiveMediaStreamReceiver.doWatchdog: streamTimeout: Resetting connection

Also when I stopped our wowza, and checked the streams from customer’s wowza, they are all working fine.

What could be wrong? We have hosted our wowza on AWS EC2 (extra large instance in N Virginia). Customer also has similar EC2 instance in the same location. In the stream file within the content directory, I use local IP address of the customer’s wowza machine. So I think bandwidth is also not an issue.

Regards

Nitin

Richard,

We will send the files shortly to support like you mentioned. Meanwhile we also tried out librtmp based code. The code we wrote reads RTMP feed (RTMP_Read) from the customer wowza and then writes it (RTMP_Write) to our wowza on port 1935. Now this works fine. But occasionally, when we get a disconnect on RTMP_Read function (due to some discontinuity in data coming from teh customer wowza), we reconnect to customer wowza immediately and the reading continues. However RTMP_Write returns broken pipe error.

My question is: If the wowza server doesnt receive constant stream from librtmp, will it close the socket? Or is there any place perhaps I can specify a timeout so that wowza continues listening to incoming stream even though the stream stopped coming in for few seconds?

Nitin