[jitsi-dev] How to change resolution and frame rate (FPS) of Jitsi?


What you’re controlling here is the base resolution we acquire from the camera. Because of simulcast, we’ll get 3 different streams (720, 360, 180). When users aren’t selected (in the thumbnail as opposed to the main stage) we send the low quality stream. This is different in ‘brady bunch’ mode where we alter the resolution instead based on how many people are in the call.

Are you using the thumbnail view? Or is this a custom view of yours? If this is custom, you could just select all remote participants, then we’d send them all in the highest quality possible (depending on bandwidth)


Thanks for the info! yes I am using the original “brady bunch” layout from jitsi-meet.

I also create a 2-participants room(participant-A and participant-B), in each side I choose “brady bunch” layout:
in participant-A side I see only 1 sending-video: ssrc_send(googleFrameHeightSent=720)
in participant-B side I see only 1 recv-video: ssrc_recv(googleFrameHeightReceived=360)

because I didn’t see multiple video-streams between A and B, so I think it is not Simulcast, but why A send 720 and B receive 360? also if I am using the default jitsi-meet-config.js(quick-install), Silmucast is enable or disabled? Thanks!


where are you checking for the streams, webrtc-internals? webrtc-internals doesn’t show all the simulcast streams. you should see the multiple ssrcs and the sim group in the sdp though.


Thanks for the info! yes I see the Simulcast info in SDP Thanks!

in my 3-participants room, in every participant I can see 1 local-participant (myself) and 2 remote-participants, and for both local and remote, in the statistic-data I can see “up”-bitrate and “down” bitrate

I just have a question: why local-participant has “down”-bitrate? local-participant is only sending audio/video out to jitsi-server, is that right? similar, why remote-participant also has “up”-bitrate? I think remote-participant is only receiving audio/video data from jitsi-server, is that right? what kind of data is sending out for remote-participant? Thanks!


All participants push stats for how much they’re sending and receiving (from the client’s perspective) and those stats get pushed to all the other clients.


Thanks for the info! could you help me confirm that as default jitisi will select 3 resolutions(for example, 720/360/180) for Simulcast? or as default jitisi will select 2 resolutions(720/360) for Simulcast? Thanks!


default is 3 resolutions: 720, 360, 180

1 Like

Thanks for the info! I just have a question for the quality-control of simulcast in jitsi: I have a 3-participants room, and every participant is sending simulcast(max, medium, min) to jitsi-server, I found the max-resolution might change automatically(for example, at beginning it is 720, then after several minutes it might become 540), my question is: is this change by webrtc quality-scaler itself in participant-side according to the participant-side bandwidth? or by jitsi-server? for example, if I have lots of participants, and every participant has enough bandwidth to support simulcast with max-resolution as 720, in this case will jitsi-server ask participant to change the max-resolution if jitsi- server itself doesn’t have enough bandwidth in server-side? Thanks!


If the webrtc client detects low send bandwidth (or I think even high encode times due to CPU) it will stop sending certain simulcast layers. On the bridge, we’ll always take whatever streams the client is willing to send. We only limit what we forward to other clients based on:

  1. what is available to us (what the sender is sending)
  2. what the receiving client wants (only ‘selected’ endpoints have their high quality stream forwarded)
  3. the available receiver bandwidth (we won’t send more than we think the receiver can handle)
1 Like

Thanks for the info! I have one question for Simulcast when I switch from the participants, for example, I have a 3-participants room: participant-A(pA)/pB/pC:

question1: when pB and pC all show pA as thumbnail(small videos, like 180p), in this case, does pA still out put multiple resolution videos(like 720/360/180)? or in this case jitisi will ask pA only output 180 because noone requires higher resolution?

question2: in pB when I click pA’s thumbnail and start to show pA’s video in the main area of the screen, at this point, what is the “init/starting resolution” of pA in pB-side? if at this moment pA is outputong 180/360, then will 360 be the starting resolution in pB-side? or 180? Thanks!


We’ll tell chrome to only output 180 (though I think there may currently be a bug with this).

I’m not sure I follow what you’re asking, but, once pB selects pA, we’ll start forwarding as high of a resolution as possible for pA to pB. This mainly depends on getting a keyframe from pA, since we can’t start forwarding a new stream (with the higher resolution) to pB until we get a keyframe for pA’s stream.

1 Like