Fix Video Resolution

I’ve tested Jitsi with many different configurations by enabling and disabling simulcast and changing resolution config, but I never get what I want which the following:
All users always send to Bridge 2 (not 3) streams: a low res stream (say 240p), and “better res stream” (720p).

Now:
1- Users in Tiles View always pull the N participants LO RES video stream, no matter who is talking…

2- Users in Stage View get the Main Speaker HI RES video plus the corresponding 8 LO RES for thumbnails.

Of course, I’d like also that if no one is watching a particular user in main stage, that user should stop sending his HI RES stream, as is supposed to happend with enableLayerSuspension: true, but not strictly required

So, if that can be accomplished, with N=20, users will always send to JVB:
2.5(720p) + 0.2(240p)20 = 6.5 Mbps,
and receive 0.2
20 = 4 Mbps if in Tile View; and 2.5 + 0.2*8 = 4.1 Mbps for Stage View.

Appreciate any help…

This is not a “fix”, this is a total revamp in technology. Simulcast is not a Jitsi-creation, it’s a concept that works the way it works - 3 streams (low, standard, high). You would need to build your own solution to get what you want.

Ok Freddie thxs for your explaination…

Now, assumming Simulcast is what it is, Jitsi implementation should have control on what it shows in each View. So, despite every user will be sending all 3 streams, is it possible to make Jitsi show always Tile View using the Lo Res Streams, and the highest resolution available for the Active Speaker in Stage View.

Its also kind a bit confussing to me this subject (Resolution). Using the config below, Would every user still send 3 streams? How do theese (and each) parameters (resolution, ideal, max, etc…) affect what Jitsi shows…What happens if I disable simulcast…?
resolution: 360,
constraints: {
video: {
height: {
ideal: 180,
max: 360,
min: 180
},
}
},
Lot of questions, of course I don’t pretend to be answered here… good Doc its all I need… As IT, it is frustrating to me to host a service I don’t know exactly how it works (and not been able to fully control).

Thnx again…

You can set resolution constraints. One area is what you’ve already highlighted. Another area is in the
minHeightForQualityLvl property where you can tie the resolution to the height of the tile.

// minHeightForQualityLvl: {
// 360: ‘standard’,
// 720: ‘high’

So for your use case, you might want to raise the height requirement for ‘standard’ definition (for instance, to 720), so your tiles will always use low definition and your stage view will stay in high definition.

If you disable simulcast, only one stream will be sent. You can specify the definition of that stream by setting hard parameters in the section you highlighted in config. So let’s say you just want 180p resolution, you would set it like:

Thats what I want Freddie, really appreciate you quick response and help…

// minHeightForQualityLvl: {
// 360: ‘standard’,
// 720: ‘high’

I also found this:

// How many participants while in the tile view mode, before the receiving video quality is reduced from HD to SD.
// Use -1 to disable.
// maxFullResolutionParticipants: 2

This above would also be perfect to me if the switch were from HD to LD. so I would set maxFullResolutionParticipants: 2, so obviously, it will always apply.

Lastly, is it correct to asume that Main Speaker in Stage View will always be HD (or higest resolution he is uploading to JVB, assuming upload bandwidth constrains)

That would be the desired behaviour I described in the original post, and will stop me from bothering any more…at least fo now… :laughing: :laughing: :laughing:

Thnx a lot, again…