Simulcast control

Hello,

I am trying the simulcast feature and I was wondering how it was controlled

So on the producer (client) side, I set an array of RTCRtpEncodingParameters in the encodings property of the ProducerOptions.

But then is there anything else that should be done?

I see that there is the preferedLayer option on the consumer side but it’s optional and will take the highest by default, which is fine.

But then how will the consumers “know” when to swap to swap layers? Is it based on the maxOutgoingBitrate of the transport? Is it based on the available bitrate?

Or should/can I manually decide, on the consumer in which conditions (or when) to change layer?

Preferred layers in the consumer will set maximum layers the consumer should receive. Then mediasoup will decide which layers will be sent to the endpoint based on estimated bandwidth (it will try to honor preferred layers if there is enough bandwidth for them, assuming that the producer is generating those layers).

1 Like

Thanks for the clarification,

so there is nothing more to do that declaring the layers on the producer options except if I want to set a preferred layer, and it should just work out of the box? That sounds great.

Then mediasoup will decide which layers will be sent to the endpoint based on estimated bandwidth (it will try to honor preferred layers if there is enough bandwidth for them

So if I set a maximum outgoing bitrate on the sending RTC transport on the server, all the consumers on that transport will adapt to respect that bitrate cap?

Yes, as the documentation of that method says.