"one to many" conference configuration in server jvb component

I have deployed docker-jitsi server and using lib-jitsi-meet api to create room in that server.
I can customize “one to many conference” by just attaching the desired tracks for specific participant but this isnt optimizing anything as the server actually sending all video+audio 's but I am just attaching the desired tracks in client side seeing the “role” property in the conference object (that I implemented in the api - “students and teacher” ) and refuse other tracks.
is there any way to to configure the server jvb component that it won’t just forward all tracks rather it will forward tracks depending on the role property? I just want to optimize the network bandwidth as it is really a great issue in production…
Thanx in advance :heart:

1 Like

Hey , have you got any solution ?

Please help me if you have

Thanks in advance

I propose we start create a branch named “one to many”
on github so that we can collaborate and share changes in all jitsi components that are usable for the
“one to many”
usecases

“one to many” use-cases:

4 Likes

yeah, great!

Do you have any example for one to many ?

Looking for similar implementation, do we have an update?

This is how I have modified the jitsi-meet user interface to work better for yoga-instructor usecase: https://github.com/xranby/jitsi-meet/commits/one-to-many


This is how the default view looks when a user connects using the yogainstructor usecase, note that the right side filmstrip start hidden and most buttons are gone including notifications: The teacher enable video and mirophone pressing V and M on the keyboard, the teacher can choose to focus on itself in fullscreen by pressing 0 on the keyboard.

the instructor may choose to use tile view to show all participants, note that all remote participants join with audio and video muted.

this userinterface can be combined with jitsi configuration options in /etc/jitsi/meet/*-config.js
to reduce client side load.

2 Likes

debugging and identifying server load issues for one-to-many use-cases using flame graphs: Server load for many simultaneous meetings

I was thinking if off-stage layer suspension would solve your use-case?
Off-stage layer suppression lets the client only send the streams that are being viewed at a given time, reducing CPU and bandwidth consumption on both client-side and server-side while improving video quality.”
enableLayerSuspension: true,

3 Likes

Oh, I wasn’t aware of the details of it…
“Off-stage layer suppression lets the client only send the streams that are being viewed at a given time, reducing CPU and bandwidth consumption on both client-side and server-side while improving video quality” - what is actually happening here ?
all clients are sending 3 streams and by using “Pin_Participant()” I can select whose video quality needed to be good and yeah, if the role is “student” I refuse otherstudent’s audio+video tracks… can u plz explain a little about this feature? does enabling this feature will send 1 selected stream (that are being viewed at a given time) from client rather than 3 streams all time? this is really good …! @xranby
Thanx in advance :heart:

2 Likes

Can anybody respond?

From my understanding, enabling suppression layer really saves bandwidth and server/client load as without this enabling, client will always send 3 streams (simulcast enable) and server will select one to route one stream but here sending 3 streams from client increases the use of bandwidth. I think enabling suppression layer just keep the record which 1 of 3 stream is being routed/selected by server and then start sending just that 1 stream instead of 3 which results in saving bandwidth and reducing load (for student it will always send bad quality video and for teacher it will always try to send high quality videos in my case instead of sending 3 streams always and let server decide. if streams quality needed to be higher client should request for it and then again after sending 3 streams when server already have decided which stream is selected ,client will start sending that 1 selected stream only). I haven’t implemented it yet though…