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

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Matthew Shapiro
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

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

Tiago Daniel Jacobs

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 [hidden email].
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

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

Matthew Shapiro
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 <[hidden email]> 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 [hidden email].
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 [hidden email].
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

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

Mondain

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


On Tue, Jul 18, 2017, 17:50 Matthew Shapiro <[hidden email]> 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 <[hidden email]> 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 [hidden email].
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 [hidden email].

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 [hidden email].
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

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

Matthew Shapiro
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?

On Wednesday, July 19, 2017 at 12:25:22 AM UTC-4, Mondain wrote:

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


On Tue, Jul 18, 2017, 17:50 Matthew Shapiro <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="-yxvoKZIAQAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">m...@...> wrote:
Is the StreamListener events performant enough?  According to <a href="http://red5.osflash.narkive.com/jFR5twTT/performance-issues-in-red5-using-istreamlistener" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fred5.osflash.narkive.com%2FjFR5twTT%2Fperformance-issues-in-red5-using-istreamlistener\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFGT2QG1FcDNV8nlFB4yueH0D3Yaw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fred5.osflash.narkive.com%2FjFR5twTT%2Fperformance-issues-in-red5-using-istreamlistener\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFGT2QG1FcDNV8nlFB4yueH0D3Yaw&#39;;return true;">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 <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="-yxvoKZIAQAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">ti...@...> 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 <a href="javascript:" target="_blank" gdf-obfuscated-mailto="-yxvoKZIAQAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">red5interest...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">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 <a href="https://groups.google.com/d/topic/red5interest/ZEOfnt1cPPQ/unsubscribe" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/topic/red5interest/ZEOfnt1cPPQ/unsubscribe&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/topic/red5interest/ZEOfnt1cPPQ/unsubscribe&#39;;return true;">https://groups.google.com/d/topic/red5interest/ZEOfnt1cPPQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="-yxvoKZIAQAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">red5interest...@googlegroups.com.

For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">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 <a href="javascript:" target="_blank" gdf-obfuscated-mailto="-yxvoKZIAQAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">red5interest...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

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

Mondain
I don't believe so, but I'm not an expert on that class; I've used it so rarely.

On Wed, Jul 19, 2017 at 5:55 AM Matthew Shapiro <[hidden email]> wrote:
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?


On Wednesday, July 19, 2017 at 12:25:22 AM UTC-4, Mondain wrote:

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


On Tue, Jul 18, 2017, 17:50 Matthew Shapiro <[hidden email]> 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 <[hidden email]> 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 [hidden email].

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 [hidden email].

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 [hidden email].

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 [hidden email].
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.