# Only 2 out of 3 simulcast layers are available

**URL:** <https://mediasoup.discourse.group/t/only-2-out-of-3-simulcast-layers-are-available/3020>\
**Category:** mediasoup-demo\
**Created:** [July 9, 2021, 4:49pm UTC](https://mediasoup.discourse.group/t/only-2-out-of-3-simulcast-layers-are-available/3020 "2021-07-09T16:49:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![tarm](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/tarm/32/1091_2.png) [@tarm](https://mediasoup.discourse.group/u/tarm)\
**Post date:** [July 9, 2021, 4:49pm UTC](https://mediasoup.discourse.group/t/only-2-out-of-3-simulcast-layers-are-available/3020/1 "2021-07-09T16:49:56Z")

</div>

Hello.  
I think that Mediasoup SFU has some issue related to simulcast layers.  
The highest layer is not available despite it’s been announced.

From the user perspective it looks like this:  
 ![image](https://global.discourse-cdn.com/free1/uploads/mediasoup/original/2X/1/1561065e1d6e887aa88c6f12d3f090518049c707.jpeg)

This is absolutely fresh version of ‘mediasoup-demo’. I’ve built it today. So no outdated code.  
In the code layers are announced as:

```auto
// Used for simulcast webcam video.
const WEBCAM_SIMULCAST_ENCODINGS =
[
	{ scaleResolutionDownBy: 4, maxBitrate: 500000 },
	{ scaleResolutionDownBy: 2, maxBitrate: 1000000 },
	{ scaleResolutionDownBy: 1, maxBitrate: 5000000 }
];

```

So the last layer is dead. It is seen from the outbound bitrate (see WebRTC internals screens below).

I use modern Chrome:  
Version 91.0.4472.114 (Official Build) (64-bit)  
Tried both Linux and Mac. No luck so far.

I made search on forum and my problem is similar to this one. And I’ve seen the answer (the last part).

> [@Spatial layers has lower resolution](https://mediasoup.discourse.group/t/spatial-layers-has-lower-resolution/2778/9):
>
> You didn’t answer to this: [Spatial layers has lower resolution - #2 by ibc](https://mediasoup.discourse.group/t/spatial-layers-has-lower-resolution/2778/2) I repeat: call consumer.setPreferredLayers({ spatial: 0 }) and check received video resolution. Yes, I say 0, so the lowest one. Then, rewrite your code with just 2 encodings instead of 3 and ese how it behaves. PS: There are many factors that make Chrome generate less spatial layers (simulcast streams) than requested: resolution of video input, resolution of captured video, network conditions, system/CPU status, etc.

I pretty well know about this possibility, but I think that it is not the case here. The network is perfect and CPU is not busy.

On the same machine if i use Janus echo test with unified plan enabled, all 3 layers are alive and I can switch them as expected.  
[https://janus.conf.meetecho.com/echotest?simulcast2=true](https://janus.conf.meetecho.com/echotest?simulcast2=true)

If you need some additional information, please let me know. I am eager to help.

---

<div class="post-metadata">

**Author:** ![tarm](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/tarm/32/1091_2.png) [@tarm](https://mediasoup.discourse.group/u/tarm)\
**Post date:** [July 9, 2021, 4:50pm UTC](https://mediasoup.discourse.group/t/only-2-out-of-3-simulcast-layers-are-available/3020/2 "2021-07-09T16:50:38Z")

</div>

![image](https://global.discourse-cdn.com/free1/uploads/mediasoup/original/2X/2/2cadf77003216b432588b78958689b7e32bece3b.png)

---

<div class="post-metadata">

**Author:** ![tarm](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/tarm/32/1091_2.png) [@tarm](https://mediasoup.discourse.group/u/tarm)\
**Post date:** [July 9, 2021, 4:51pm UTC](https://mediasoup.discourse.group/t/only-2-out-of-3-simulcast-layers-are-available/3020/3 "2021-07-09T16:51:09Z")

</div>

![image](https://global.discourse-cdn.com/free1/uploads/mediasoup/original/2X/4/4c4ec8e368941fe2e558e4060f69edc8bc453acc.png)

---

<div class="post-metadata">

**Author:** ![tarm](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/tarm/32/1091_2.png) [@tarm](https://mediasoup.discourse.group/u/tarm)\
**Post date:** [July 9, 2021, 4:51pm UTC](https://mediasoup.discourse.group/t/only-2-out-of-3-simulcast-layers-are-available/3020/4 "2021-07-09T16:51:57Z")

</div>

![image](https://global.discourse-cdn.com/free1/uploads/mediasoup/original/2X/8/89de5102fe0fbc4c86a1f8461150b6394272a208.png)

As you can see one of the layers is pretty much dead.

---

<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:** [July 9, 2021, 4:58pm UTC](https://mediasoup.discourse.group/t/only-2-out-of-3-simulcast-layers-are-available/3020/5 "2021-07-09T16:58:46Z")

</div>

I know that blaming mediasoup is the easiest path but actually it’s the browser who decides how many layers to send depending on video source resolution, CPU usage and uplink capability.

---

<div class="post-metadata">

**Author:** ![tarm](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/tarm/32/1091_2.png) [@tarm](https://mediasoup.discourse.group/u/tarm)\
**Post date:** [July 9, 2021, 5:44pm UTC](https://mediasoup.discourse.group/t/only-2-out-of-3-simulcast-layers-are-available/3020/6 "2021-07-09T17:44:19Z")

</div>

For some reason it works as expected if I use online demo  
[https://v3demo.mediasoup.org](https://v3demo.mediasoup.org)
