Better layer suspension

Hi

Jitsi meet has the enableLayerSuspension option, which suspend higher simulcast layers sending by clients to the bridge, when they not used by another clients.

It allows participants to save a lot of compute power and network bandwidth. But actually it almost never works. Why?

Problem

lib-jitsi-meet suspend sending layers when videobridge signals that local participant is not selected by another participants.

When any participant use grid layout - his Jitsi Meet UI selects all participants and set max receive video quality constrants. In order for enableLayerSuspension able to work - all participants should zoom single another participant.

Proposal

I think that layer suspension should work like this:

One participant should suspend layer if it not actually used by any another participant

Videobridge knows which layers of each participant is using, he can send this info to each client. Clients will suspend unused layers.

In order when all participants using grid layout (most cases I guess) - they will encode and send only middle layer. High layers will encode only when anybody zoom you. In conferences with huge ammout of participants - UI will cut participants list, and they will suspend all layers.

I thinks that it will be a great impact of Jitsi Meet perfomance

5 Likes

Hey @vbukharin
I totally agree with you. Don’t understand why when sending higher layers we need to send lower ones as well.

Did you find a way to define that?
@damencho @jallamsetty can you advise how we can achieve this?

If you want to do that, this is basically disabling simulcast and risking overloading participants download bandwidth. As there will be no lower layers the bridge to send to avoid these problems when your video is displayed just in a thumbnail.

This is already how meet.jit.si works today.

This is not true, when a participant uses grid layout, the max. resolution requested from the bridge is determined by the pixel height of the tile. Therefore, depending on the number of participants you are viewing in tile view, your request resolution varies, and in most cases it can go down to 180p so all the other clients will be suspending SD and HD streams.

In addition to what @damencho mentioned, we need to send the lower layers because not everyone will be viewing the conference in speaker mode, there will be some viewing the conference in tile view and the bridge will also lose the ability to send SD/LD streams to users who are bandwidth constrained.