Testing 2160p cameras at 2160p30 and 1080p60

Hi guys,

We got some 4K webcams (Avermedia PW513) to use internally on the local network only. Their native res is 3840 x 2160 @ 30fps but they can also do 1080p @ 60fps. I am curious to know if Jitsi Meet supports either of those? I thought it would be a simple case of changing the config to below but all the users are all still limited to 1080p@30 (most seem to be 1080p@31 and not 30 which is interesting). Other thing I tried was setting preferH264 to true in case it was an encoding issue but all the clients have CPUs that can encode VP8 and H264 in hardware or software. I dont think the webcam itself encodes to that format.

    constraints: {
         video: {
                 frameRate: {
               max: 60
            },
             height: {
                 ideal: 2160,
                 max: 2160,
                 min: 720
             }
         }
     },

Thoughts from anyone? Damencho maybe?

Yes, Jitsi Meet now supports FHD and UHD video quality. You might want to try disabling simulcast to force the stream quality that you want. Understand though that disabling simulcast is not recommended because it places strict requirements on the resources of the connecting clients (if any of your participants does not have enough bandwidth to support that stream quality, they will simply not be able to connect). Camera capacity notwithstanding, the available bandwidth will drive the quality of the feed (up to but not beyond the capability of the camera).

Can you try to open chrome://webrtc-internals and check the “GetUserMedia requests” tab? What constraints do you see there?

@saghul @Freddie

Thanks for the replies guys, this is what I see in the Video Constraints section…

Video Constraints
{height: {min: 720, max: 2160, ideal: 1080}, frameRate: {max: 60}, deviceId: {ideal: [“1b9d98e9d1653d8617c424b280e2583acf80343fd29a8debc1fd0d93c90aed35”]}}

I have set disableSimulcast to true and rebooted the server but on a client with one of the 4K cameras I am still only seeing 1080p@30, note that its not even 1080p@60fps

image

Is there a bandwidth section maybe that I need to add or maybe something to do with the Codecs, vp8 vs h264?

What version of Jitsi Meet are you on?

image

Yeah, that’s the latest stable. Hmm… mm… :thinking:

You can force VP9, but I’m not sure how that would help in this instance. Talking about VP9, what’s your available bandwidth?

as a note, when you change a parameter in the config.js file like this, it’s not necessary to reboot the server, only emptying the cache in the browsers (something like Ctrl F5) and starting a new meeting will be sufficient.

1 Like

Everything is local, some clients are on a 10Gbe switch and others are on a 1Gbe switch so bandwidth shouldnt be an issue I hope. The jitsi server itself has a 10Gb connection to the network with 16 cores and 16GB RAM but I know most of the work will be on the clients themselves. The clients CPUs barely go over 10% during a meeting currently (1080p@30)

One other thing I thought of was maybe it was the webcam driver so I installed OBS on one of the clients and when I open OBS studio it detects the native resolution of the camera as 3840x2160@30 and 1920x1080@60/30 so looks like thats ok. OBS even has a virtual webcam so I set up the virtual webcam to 3840x2160@30 and then selected that virtual webcam in Jitsi. It still displayed as 1080p@30 but the CPU usage went up 10% so maybe it was encoding it down to 1080p? Not sure

Yeah, but what’s the actual Upload/download speed though?

And what about this (in your config)?

Sets the preferred resolution (height) for local video. Defaults to 720.
resolution: 2160,

how about setting ideal to 2160 ? maybe it’s worth a try.
Edit: just noticed that’s what you did; but somehow it’s not what you get in your browser.

Yeah I had its set to 2160 but it had no affect so I reverted it back to 1080. Might try that again because I had not disabled simulcast at that point. Thanks

Just did an iperf test to the server from a client on 10Gbe and am getting 10Gbit upload and download to it.

Will try setting resolution: 2160 again. I did it previously but I had not disabled simulcast then.

Ok, some success :slightly_smiling_face:…

image

But some side effects too. First off let me say that the picture quality looks amazing which is crazy because the bandwidth used doesnt go over 10Mbps

When 2 clients are in a meeting they will both have the resolution above. 4K@24fps and everything looks fine. I think this is because they are using P2P. When a third person joins the meeting the quality drops to 1080p

When I joined the call with my own C920 webcam (1080p@30) the other cameras were fine but my camera was very jerky like I was moving in slow motion.

When someone else joined with their laptop webcam (720p) OR when I joined using the mobile app the 4K webcams dropped to 1080p@30. Understandable for the mobile app but I dont know why it would drop for the laptop.

I think the jerkyness of my C920 is an issue with my webcam driver, maybe tis trying to go higher than its able, when I pass it through to something like OBS and then use OBS virtual camera in Jitsi Meet there is no jerkyness but it does only connect at 720p30. The 4K client stays at 4K@25 which is good.

So yeah, seems to work in P2P mode but drops to 1080@30 when there are more than two people.

CPU usage was also high. On a 10 core Xeon client the CPU was 50% across all 10 cores :crazy_face:

I think this will be good for 1:1 meetings between internal offices but it would be great if it was not just for P2P

Switching to preferH264: true offloaded some of the workload to the GPU it seems. The clients have Nvidia GTX cards so now the process for Chrome is @ 20% CPU usage and the 10% GPU encode/3D usage

I think you might be seeing the downgrade due to layer suspension. Can you try to set enableLayerSuspension to false in your config?

@saghul Thanks that worked. Now the 4K video remains with more than 2 participants. I also saw 1080p 60fps after I added additional bitrate settings to config file ie {min:15, max: 120, ideal:60}

1 Like