jitsi / jitsi-meet

Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
https://jitsi.org/meet
Apache License 2.0
23.2k stars 6.74k forks source link

The videoQuality property setting in Config.js doesn't work. #12646

Closed koalawangyang closed 1 year ago

koalawangyang commented 1 year ago

Description:

I have changed some property about videoQuality in Config.js, but the actual videoQuality is always about 1440x810, can not reach 1080P. So how to let the videoQuality settings work?

Steps to reproduce:

  1. Edit the config.js file in '/root/.jitsi-meet-cfg/web/config.js'.
  2. Make below changes: ` // Koala added config.videoQuality.minHeightForQualityLvl = { 1080: 'low'} ; config.resolution = 1080; config.constraints.video.height = { ideal: 1080, max: 1080, min: 1080 }; config.constraints.video.width = { ideal: 1920, max: 1920, min: 1920};

config.desktopSharingFrameRate = { min: 30, max: 60 }; `

  1. run the command 'chattr +i /root/.jitsi-meet-cfg/web/config.js' and restart the container 'docker-jitsi-meet-stable-8044-1-web-1'.
  2. Enter the container 'docker-jitsi-meet-stable-8044-1-web-1' and check the file in path: /config/config.js to confirm the changes.
  3. Re-create a new meeting room and check the frame rate of SharingScreen but the number is always 5.
  4. Change the frame rate to 30 and starting SharingScreen.
  5. Check the status of sharingscreen and saw the resolution is '1440x810' and frame rate never over 30.

Expected behavior:

The actual resolution and frame rate are same as the one I set in config.js .

Actual behavior:

The actual resolution and frame rate never reached the one I set in config.js .

Server information:

Client information:

koalawangyang commented 1 year ago

Waiting for your response : )

saghul commented 1 year ago

Check what parameters are passed to getUserMedia with chrome://webrtc-internals there are reasons why you might not be reaching 1080p regardless of you requesting it.

koalawangyang commented 1 year ago

Check what parameters are passed to getUserMedia with chrome://webrtc-internals there are reasons why you might not be reaching 1080p regardless of you requesting it.

Hi, saghul

Appreciate for your reply.

I have checked the parameters with chrome://webrtc-internals as below: getUserMedia call Time: 14:29:57 GMT+0800 (China Standard Time) Video constraints: {width: {min: 320, max: 1280, ideal: 1280}, height: {min: 180, max: 720, ideal: 720}, deviceId: {ideal: ["c922f0f66be50411d8954f1a4666309c78f9d720d5265da8ed9ddfa0d3067036"]}} According to these parameters, the resolution of SharingScreen is still 720p max which means the settings I set in config.js is not working.

What's the correct way to change the resolution settings of Sharing Screen?

saghul commented 1 year ago

According to these parameters, the resolution of SharingScreen is still 720p max which means the settings I set in config.js is not working.

That is not the screen sharing config. The video constraints only apply to the camera video.

The call to getDisplayMedia (used for screen-sharing) should look something like this:

getUserMedia call
Time: 09:07:00 GMT+0100 (Central European Standard Time)
Audio constraints: true
Video constraints: {width: {ideal: 99999}, height: {ideal: 99999}}

The resolution of the resulting stream will vary depending on the source, that is, your desktop resolution, or window size, depends on what you are sharing.

koalawangyang commented 1 year ago

According to these parameters, the resolution of SharingScreen is still 720p max which means the settings I set in config.js is not working.

That is not the screen sharing config. The video constraints only apply to the camera video.

The call to getDisplayMedia (used for screen-sharing) should look something like this:

getUserMedia call
Time: 09:07:00 GMT+0100 (Central European Standard Time)
Audio constraints: true
Video constraints: {width: {ideal: 99999}, height: {ideal: 99999}}

The resolution of the resulting stream will vary depending on the source, that is, your desktop resolution, or window size, depends on what you are sharing.

Hi saghul,

Thanks for your quick response.

I have checked again and found the Video constraints is "true", no config about width or height.

` Caller origin: https://meet.abc.com Caller process id: 74385 getUserMedia call Time: 16:23:39 GMT+0800 (China Standard Time) Audio constraints: {echoCancellation: {ideal: true}, autoGainControl: {ideal: true}, noiseSuppression: {ideal: true}} Video constraints: {facingMode: {ideal: ["user"]}} getUserMedia result Time: 16:23:41 GMT+0800 (China Standard Time) Stream id: 5dc2R6CAdFKwXAMDhbx2ScKO3JdKvnp7bXFR Audio track: id:6b3f50db-bbaf-4b94-bdb4-809eb23addbf label:Default - MacBook Pro Microphone (Built-in) Video track: id:72b9c48b-6ecb-4201-9410-2d2639492f17 label:FaceTime HD Camera

Caller origin: https://meet.abc.com Caller process id: 74385 getUserMedia call Time: 16:23:43 GMT+0800 (China Standard Time) Audio constraints: {echoCancellation: {ideal: true}, autoGainControl: {ideal: true}, noiseSuppression: {ideal: true}} Video constraints: {facingMode: {ideal: ["user"]}} getUserMedia result Time: 16:23:43 GMT+0800 (China Standard Time) Stream id: OvWzrSDCxBVVBsN220omgWQBZ6bzFCXOuksX Audio track: id:0cdb6ba6-b87e-4399-aad9-b950cd2da2dc label:Default - MacBook Pro Microphone (Built-in) Video track: id:6e61f261-f800-4284-9405-f1eee539f161 label:FaceTime HD Camera

Caller origin: https://meet.abc.com Caller process id: 74385 getUserMedia call Time: 16:23:59 GMT+0800 (China Standard Time) Audio constraints: true Video constraints: true getUserMedia result Time: 16:24:01 GMT+0800 (China Standard Time) Stream id: evsFT1TQeaB2uveRUCjl7snggzfI1iPNYUPr Video track: id:673131b0-13be-4cc5-b5c5-37aaedbc755f label:screen:2:0 `

don't know why is that

koalawangyang commented 1 year ago

How to set the config to let the SharingScreen result like this ? Video constraints: {width: {ideal: 99999}, height: {ideal: 99999}}

saghul commented 1 year ago

What steps are you following exactly? Do you join a meeting, and click the start screen-sharing button? Or do you do something else?

koalawangyang commented 1 year ago

What steps are you following exactly? Do you join a meeting, and click the start screen-sharing button? Or do you do something else?

  1. create a meeting.
  2. enter the meeting.
  3. click the start SharingScreen button.
  4. choose which screen I want to share.
  5. start sharing.
  6. check the sharing status.
koalawangyang commented 1 year ago

hi saghul,

Any progress here?

saghul commented 1 year ago

I'm not sure what you are expecting. I don't see any errors. As I said the resolution constraints don't apply to the screen, so you'll get the native resolution of whatever you are sharing. A quick test on meet.jit.si:

Screenshot 2022-12-09 at 10 27 11
koalawangyang commented 1 year ago

hi, saghul

Thanks for your reply.

I'm not sure what you are expecting.

I expect to see high quality of screenSharing in my self-hosting Jitsi Meet. I have tested your official demo in meet.jit.si, the resolution of screenSharing can reach to 1080P.

Xnip2022-12-12_09-41-01

with the same environment( same laptop\network\screen ), only 810P in my self-hosted Jitsi Meet, how could be this?

Xnip2022-12-06_11-15-49

To solve it myself, I tried to change some property setting in Config.js, but it doesn't work. Even I add a custom-config.js in

/root/.jitsi-meet-cfg/web/custom-config.js

still not work. My core question is how to let my self-hosting Jitsi Meet has the high quality of screenSharing???

saghul commented 1 year ago

Are you sharing the exact same thing?

koalawangyang commented 1 year ago

Are you sharing the exact same thing?

Yes, of course. Actually I have tried that no matter what I'm sharing, the max resolution in my self-hosting Jitsi Meet is 810P while the max resolution in your Demo is 1080P.

What could be the root cause of this?

saghul commented 1 year ago

We don't have high fps screen-sharing enabled on meet.jit.si. Can you please disable it on your deployment and try again?

koalawangyang commented 1 year ago

We don't have high fps screen-sharing enabled on meet.jit.si. Can you please disable it on your deployment and try again?

I have re-deployed and used default config, the same result. Still high resolution in meet.jit.si and low resolution in my self-hosting.

It this related with [less quality in open source or high quality in JaaS] ? It's fine with me, I just want to know the root cause.

saghul commented 1 year ago

That is absolutely not the case, so hey are the same codebase.

Are you deploying Docker or Debian packages?

koalawangyang commented 1 year ago

That is absolutely not the case, so hey are the same codebase.

Are you deploying Docker or Debian packages?

Docker deployment.

Server information:

Jitsi Meet version: stable-8044-1 Operating System: Alibaba Cloud Linux 3 Running Time: Docker with your official docker image Bandwidth of Server: 200Mbps with DCDN and original server.

Client information:

Browser / app version: Chrome Version 108.0.5359.94 (Official Build) (arm64) Operating System: MacOS 13.0.1 (22A400) Bandwidth: 200Mbps

koalawangyang commented 1 year ago

@saghul Hi, saghul, any progress here?

saghul commented 1 year ago

None, sorry.

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

perfumescent commented 4 months ago

@saghul Hi, saghul, any progress here?

后来解决了吗