Skip to main content
Participant
January 26, 2012
Question

P2P multicast and upstream bandwidth

  • January 26, 2012
  • 2 replies
  • 3914 views

Hi,

I'm in the process of developing a realtime video chat application where multiple users can send video streams simultanuously. The number of users receiving the streams can be very big, e.g. 10 broadcasters and 500 receivers, each receiver should get all streams.

I use RTMFP connections to an FMS and streams are published in P2P multicast groups by passing the groupspec to the NetStream constructor. Currently I'm having problems with audio/video synchronization and video stream 'jumps' (not continuous). From what I read on other threads, this is related to the fact that there is not enough upstream bandwidth for sending the streams. So my questions are:

  1. How to calculate the required upstream bandwidth on every peer for the given example of 10 broadcasters and 500 receivers (is it 10*bandwidth of one stream)?
  2. What settings (on NetStream, Camera, Microphone etc.) should be used for best results and how to adapt them based on the number of broadcasters?

I hope my questions make sense!

Thanks,

Haykel

This topic has been closed for replies.

2 replies

Participant
August 5, 2016

is this solved?
we have the same problem

1. multicast is setup, and console show it.

2. bandwidth need 50k more for each connections now

Thanks.

Nikhil_Kalyan
Participating Frequently
February 1, 2012

Hi,

Thanks for trying out P2P.

The actual upstream RTMFP usage of each client cannot be calcuated as such. There are no APIs at least for this item as of now. We can just expect that we utilize all the upload bandwidth available to us to push / pull streams to other peers in the P2P netgroup. So it is important to mind the upstream limitations on the network.

What exactly are you looking for when you meant settings for the items ? If you are looking for good quality/ high bitrate video, using any encoder for publishing would make a lot of difference.

Number of subscribers/broadcasters should not ideally make much of a effect in a P2P case. On the other hand, P2P mesh would work much better with increasing number of  clients, technically , as the P2P mesh grows larger with more clients pushing and pulling the data.

Please let us know if you need more information. Thank you !

Participant
February 1, 2012

Hi,

Thanks for your response.

What I'm looking for is to avoid audio and video going out of sync and to have smooth video streams (no breaks, no jumps). As I said earlier, this seems to be related to unsufficient upstream bandwidth. So the solution seems to be to dynamically find the settings for Camera (and probably other classes) to have the best possible quality for the available upstream bandwidth. The number of broadcasters is not fixed, they can join and leave the discussion anytime, so I can't really make assumptions or calculations upfront.

Can we use NetStreamMulticastInfo somehow to monitor P2P and network conditions and change settings accordingly?

You mentioned I should use an encoder for publishing, can we do that for Camera live streams?

Thanks.

Nikhil_Kalyan
Participating Frequently
February 1, 2012

So, you are essentially looking to vary the bitrate of the publishing stream depending on the bandwidth changes. I guess this is at this point not supported (MBR on P2P) except if you want to stop the publishing and start again.

Regarding encoders, we use Flash Media Live Encoder to provide nice input, it can take camera input, the adobe page for FMLE should list all the supported devices for it.