Can Red5 republish video to other (non-Red5) RTMP servers?

71 views
Skip to first unread message

Matthew Shapiro

unread,
Jul 18, 2017, 5:34:23 PM7/18/17
to red5
I'm trying to look at a proof of concept involving Red5 taking one stream in and re-publishing that one stream to multiple 3rd party RTMP servers.  

So far in my attempts at playing around with writing a custom application I haven't seen a good way to do this.  The only method I have found is onPublishStart() create a new stream listener, add the custom stream listener to the stream, create a StreamProxy((from the red5 client library) for each outbound server, and every time a video, audio, or metadata comes in pass it to all associated stream proxies.  

Is this the correct way to go about this or is there an easier way?

Tiago Daniel Jacobs

unread,
Jul 18, 2017, 5:44:03 PM7/18/17
to red5in...@googlegroups.com

AFAIK, in red5 this is the way to go.

You can also do it using ffmpeg (rtmp input and output).

Best regards,
--

---
You received this message because you are subscribed to the Google Groups "red5" group.
To unsubscribe from this group and stop receiving emails from it, send an email to red5interest...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Matthew Shapiro

unread,
Jul 18, 2017, 8:50:10 PM7/18/17
to red5in...@googlegroups.com
Is the StreamListener events performant enough?  According to http://red5.osflash.narkive.com/jFR5twTT/performance-issues-in-red5-using-istreamlistener it seems that packet received isn't called frequently enough to support 30fps video, let alone 60fps.  Granted that post is from 8 years ago so maybe it's not an issue anymore.

Using ffmpeg is not really ideal, as having it integrated into the media server is best to be able to know if you are dropping packets due to a lack of upload bandwidth.  You lose a lot of visibility into the behind the scenes that way.

Thanks,

To unsubscribe from this group and stop receiving emails from it, send an email to red5interest+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--

---
You received this message because you are subscribed to a topic in the Google Groups "red5" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/red5interest/ZEOfnt1cPPQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to red5interest+unsubscribe@googlegroups.com.

Mondain

unread,
Jul 19, 2017, 12:25:22 AM7/19/17
to red5in...@googlegroups.com

The listeners perform well enough for 30+ fps,  whether you use stream or pipe listeners.


On Tue, Jul 18, 2017, 17:50 Matthew Shapiro <m...@mshapiro.net> wrote:
Is the StreamListener events performant enough?  According to http://red5.osflash.narkive.com/jFR5twTT/performance-issues-in-red5-using-istreamlistener it seems that packet received isn't called frequently enough to support 30fps video, let alone 60fps.  Granted that post is from 8 years ago so maybe it's not an issue anymore.

Using ffmpeg is not really ideal, as having it integrated into the media server is best to be able to know if you are dropping packets due to a lack of upload bandwidth.  You lose a lot of visibility into the behind the scenes that way.

Thanks,

On Tue, Jul 18, 2017 at 5:45 PM, Tiago Daniel Jacobs <ti...@imdt.com.br> wrote:

AFAIK, in red5 this is the way to go.

You can also do it using ffmpeg (rtmp input and output).

Best regards,
On 18/07/17 18:34, Matthew Shapiro wrote:
I'm trying to look at a proof of concept involving Red5 taking one stream in and re-publishing that one stream to multiple 3rd party RTMP servers.  

So far in my attempts at playing around with writing a custom application I haven't seen a good way to do this.  The only method I have found is onPublishStart() create a new stream listener, add the custom stream listener to the stream, create a StreamProxy((from the red5 client library) for each outbound server, and every time a video, audio, or metadata comes in pass it to all associated stream proxies.  

Is this the correct way to go about this or is there an easier way?
--

---
You received this message because you are subscribed to the Google Groups "red5" group.
To unsubscribe from this group and stop receiving emails from it, send an email to red5interest...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--

---
You received this message because you are subscribed to a topic in the Google Groups "red5" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/red5interest/ZEOfnt1cPPQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to red5interest...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--

---
You received this message because you are subscribed to the Google Groups "red5" group.
To unsubscribe from this group and stop receiving emails from it, send an email to red5interest...@googlegroups.com.

Matthew Shapiro

unread,
Jul 19, 2017, 8:55:41 AM7/19/17
to red5
Thanks that's good to know.  One last question then, does the red5-client StreamProxy automatically handle discarding packets if the TCP buffer starts getting full (bad connection to target) to keep things at real time, or will that have to be a custom modification?

Mondain

unread,
Jul 19, 2017, 9:18:03 AM7/19/17
to red5
I don't believe so, but I'm not an expert on that class; I've used it so rarely.
Reply all
Reply to author
Forward
0 new messages