Presenter video blured when more that 2 participants

Hello guys. We are developing react app with using lib-jitsi-meet. We’ve added presenter mode as on jitsi-meet repo, and it works as expected. But there is one issue, when in a conference only 2 participants, then quality of video is good, but if there are more than 2 participants, video quality extremely low.
One more things, is that this issue only when presenter enable local video. What can we do in that situation ?

@jallamsetty @damencho

Do you have testing.capScreenShareBitrate set to 1 in your config.js ?

Yes, I put it directly to connection create function:

const JITSI_OPTIONS = {
  hosts: {
    domain: REACT_APP_JITSI_DOMAIN || 'alpha.jitsi.net',
    muc: REACT_APP_JITSI_MUC || 'conference.alpha.jitsi.net',
  },
  serviceUrl: REACT_APP_JITSI_SERVICE_URL || 'wss://alpha.jitsi.net/xmpp-websocket',
  clientNode: REACT_APP_JITSI_CLIENT_NODE || 'https://alpha.jitsi.net',
    testing: {
      p2pTestMode: false,
      capScreenshareBitrate: 1, // 0 to disable
  },
  enableNoAudioDetection: true,
  enableNoisyMicDetection: true,

  p2p: {
      enabled: true,
    }
};

const connection = new JitsiMeetJS.JitsiConnection(null, null, JITSI_OPTIONS);

Is this on chrome ? Also do you have any maxBitratesVideo set under videoQuality ?

Chrome and FF the same behavior. No, nothing related to quality, I sent my options object

Also, we have our own server, can it be a source of problem ? Or is it front end issue ?

Chrome and FF the same behavior. No, nothing related to quality, I sent my options object

Can you try with enableLayerSuspension: true in your config ?

Doesn’t help. :frowning_face:

Will you be able to share browser console logs for the sender ?

Sure.

That is not very useful, can you pls set the log level to debug and send the full log again ?

Yes, sorry.
jitsi-logs.log (363.9 KB)

Logger.js:154 2021-02-04T23:38:57.505Z [/index.js] <TraceablePeerConnection.push../node_modules/lib-jitsi-meet/modules/RTC/TraceablePeerConnection.js.TraceablePeerConnection.setSenderVideoConstraint>:  TPC[1,p2p:false] senderVideoMaxHeight: 720
Logger.js:154 2021-02-04T23:38:57.505Z [/index.js] <TraceablePeerConnection.push../node_modules/lib-jitsi-meet/modules/RTC/TraceablePeerConnection.js.TraceablePeerConnection.setSenderVideoConstraint>:  TPC[1,p2p:false] setting max height of 720, encodings: [{"active":true,"networkPriority":"low","priority":"low"},{"active":true,"networkPriority":"low","priority":"low"},{"active":false,"networkPriority":"low","priority":"low"}]

I don’t think simulcast has been disabled for screenshare, I still see 3 streams being sent by the browser. This shouldn’t happen if testing.capScreenshareBitrate is set to 1.

Also you will have to make sure you call selectEndpoint([screenshare_ep] on the JitsiConference instance on the receiver. Only then the bridge will ask the client to send 1080p resolution. Bridge is requesting only 180p right now. As a result the sending client is suspending the higher resolution stream resulting in poor quality.

2021-02-04T23:38:51.206Z [/index.js] <WebSocket.channel.onmessage>:  SenderVideoConstraints: {"idealHeight":180,"preferredFps":-1,"preferredHeight":-1}
​ 2021-02-04T23:38:51.206Z [/index.js] <RTC._senderVideoConstraintsChanged>:  Remote max frame height received on bridge channel:  {"idealHeight":180,"preferredFps":-1,"preferredHeight":-1}
Logger.js:154 2021-02-04T23:38:57.610Z [/index.js] <WebSocket.channel.onmessage>:  SenderVideoConstraints: {"idealHeight":0,"preferredFps":-1,"preferredHeight":-1}
Logger.js:154 2021-02-04T23:38:57.610Z [/index.js] <RTC._senderVideoConstraintsChanged>:  Remote max frame height received on bridge channel:  {"idealHeight":0,"preferredFps":-1,"preferredHeight":-1}
Logger.js:154 2021-02-04T23:38:57.693Z [/index.js] <WebSocket.channel.onmessage>:  SenderVideoConstraints: {"idealHeight":180,"preferredFps":-1,"preferredHeight":-1}
Logger.js:154 2021-02-04T23:38:57.693Z [/index.js] <RTC._senderVideoConstraintsChanged>:  Remote max frame height received on bridge channel:  {"idealHeight":180,"preferredFps":-1,"preferredHeight":-1}

Thanks, I’ll take a look. And what could be a reason, that, without video on (only with screen share) it looks normal, but with local video - quality down ? And could you clarify where I can find selectEndpoint method ? Search doesn’t find anything.