# A room with 100 participants

**URL:** <https://mediasoup.discourse.group/t/a-room-with-100-participants/1092>\
**Category:** Deployment & Scalability\
**Created:** [May 26, 2020, 7:36pm UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092 "2020-05-26T19:36:40Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![madabhaviamit](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/madabhaviamit/32/1418_2.png) [@madabhaviamit](https://mediasoup.discourse.group/u/madabhaviamit)\
**Post date:** [May 26, 2020, 7:36pm UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/1 "2020-05-26T19:36:40Z")

</div>

Hi Team,

In the link of documentation about scalability, it is clearly written that in a room with 4 peers the total number of consumers is 4\*6(each peer receiving other 3 peers audio and video tracks)=24 consumers. It is also mentioned that, a mediasoup c++ subprocess running on a cpu core can handle nearly 500 consumers.

Do you think is it a good idea to have a room with 100 peers at the same time all of them sending the streams and receiving the streams of each other? Now this takes me to a number of around 100\*198=19800 consumers(please correct me if the math is wrong here). And to handle these many consumers i would require a really high configuration machine may be with 50 cores and what not.

And mediasoup being a SFU in itself is forwarding the streams and it may be possible that the client browser could not have the capability to handle those many streams together. How this could have an impact on client’s bandwidth usage and the cpu usage?

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [May 26, 2020, 8:12pm UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/2 "2020-05-26T20:12:22Z")

</div>

You don’e want to receive 100 videos in client side, so use `consumer.pause/resume()` in server side to avoid that.

---

<div class="post-metadata">

**Author:** ![madabhaviamit](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/madabhaviamit/32/1418_2.png) [@madabhaviamit](https://mediasoup.discourse.group/u/madabhaviamit)\
**Post date:** [May 27, 2020, 3:29am UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/3 "2020-05-27T03:29:17Z")

</div>

Hi,

Are you suggesting that i should not send all the consumers to each client? Even if i do consumer.pause/resume() what if there is a case where i would want to see every one(here only the videos not the audio tracks, since it is not a good idea to have 100 people talking together). How would mediasoup server behave in this case? And what should be the configuration of the server that i should use to support such a usecase?

---

<div class="post-metadata">

**Author:** ![aetheon](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/aetheon/32/39_2.png) [@aetheon](https://mediasoup.discourse.group/u/aetheon)\
**Post date:** [May 27, 2020, 6:38am UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/4 "2020-05-27T06:38:06Z")

</div>

> [@madabhaviamit](#):
>
> what if there is a case where i would want to see every one

I don’t think that’s possible, the decoding CPU usage on the client side would make the it impossible to use. Even zoom desktop app limits to a max of 50 at a time. Not even mentioning bandwidth usage.

That said, you would have to scale mediasoup horizontally. see [mediasoup :: Scalability](https://mediasoup.org/documentation/v3/scalability/) and other posts in the forum.

---

<div class="post-metadata">

**Author:** ![madabhaviamit](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/madabhaviamit/32/1418_2.png) [@madabhaviamit](https://mediasoup.discourse.group/u/madabhaviamit)\
**Post date:** [May 27, 2020, 6:54am UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/5 "2020-05-27T06:54:46Z")

</div>

Hi Oscar,

You are right about scaling mediasoup horizontally. Even doing so, piping all the 100 participants producers to other mediasoup servers could make things real complex. Coz, participant 1 needs to consume 99 video producers and 99 audio producers. And all these producers need to be present on the same router where i am trying to consume them and the router is created on worker and the worker has a limitation of number of consumers it can handle(please correct me if i am wrong). I am not sure how much feasible that would be.

I am more worried about client side, i dont know if any of the webrtc supported browser could handle those many videos at once. And the amount of bandwidth requirement at the client side needs to be very huge.

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [May 27, 2020, 8:18am UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/6 "2020-05-27T08:18:02Z")

</div>

> [@madabhaviamit](#):
>
> Even if i do consumer.pause/resume() what if there is a case where i would want to see every one(here only the videos not the audio tracks

Assume you cannot receive 100 videos in the browser or mobile.

---

<div class="post-metadata">

**Author:** ![madabhaviamit](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/madabhaviamit/32/1418_2.png) [@madabhaviamit](https://mediasoup.discourse.group/u/madabhaviamit)\
**Post date:** [May 27, 2020, 8:31am UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/7 "2020-05-27T08:31:55Z")

</div>

Thanks for the response @ibc.

Could you please suggest the number of max participants that i can have in a room at the same time, considering all consumers and producers are in the resume state.

I know that i should check that by myself, may be by increasing the number of participants in incremental steps of 5. But you guys are experts here and your advice could save me some time.

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [May 27, 2020, 9:55am UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/8 "2020-05-27T09:55:58Z")

</div>

> [@madabhaviamit](#):
>
> Could you please suggest the number of max participants that i can have in a room at the same time, considering all consumers and producers are in the resume state.

I cannot give the exact response you are looking for. But you can check this study: [mediasoup :: Publications](https://mediasoup.org/documentation/publications/)

> [@madabhaviamit](#):
>
> But you guys are experts here and your advice could save me some time.

We are here to help, not to provide our professional expertise for free 😉

---

<div class="post-metadata">

**Author:** ![Dirvann](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/dirvann/32/419_2.png) [@Dirvann](https://mediasoup.discourse.group/u/Dirvann)\
**Post date:** [May 27, 2020, 1:25pm UTC](https://mediasoup.discourse.group/t/a-room-with-100-participants/1092/9 "2020-05-27T13:25:16Z")

</div>

I don’t know what the application of this room is although assuming it’s a regular conference I don’t think you need to see everyone in best quality all the time on your screen. Probably there are just some people that are active and need to be shown in good quality.  
The others could be paused or have a reduced quality. I assume that the browser would be able to handle the decoding of more streams if their quality is low. So configuring simulcast could be a good solution while upgrading the quality of some streams.
