๐Ÿ˜Š SVC on VP9 Working Beautifully. How to Check

Iโ€™ve been running my Jitsi with VP9. For those in the know, VP9 offers remarkable benefits over VP8, especially in low bandwidth conditions. I was able to implement VP9 in my deployment by using a baked JVB (with code still in an experimental phase) and making changes to Jicofo. The difference in visual quality is astounding! You can check my post on that here - VP9 [with bridge support] soon cometh! Do a happy dance! :man_dancing:t5:

But the real icing on the VP9 cake is SVC. SVC is an exponential upgrade to the simulcast technology that allows clients with different bandwidths to still connect to a video conference successfully. Although VP9 was working exceptionally well for me through the bridge (which should be proof-sufficient in itself that SVC is enabled), I really wanted a definite way to prove it and to show the benefit of SVC.

After much tinkering, I finally did! I found that if I disable simulcast in my config, I could essentially disable SVC implementation in my VP9 environment. The remarkable difference in bandwidth measurements proves the incredible work that SVC is doing on the bridge! Take a look at my findings below:

TEST
Clients
Client1 โ€“ Mac, OSx 10.13.6, Quad Core, Inter i7 โ€“ 2.5GHz, 16GB RAM (Brave)
Client2 โ€“ Mac, OSx 10.13.6, Quad Core, Inter i7 โ€“ 2.5GHz, 16GB RAM (Chromium)
Client3 โ€“ Android Phone (Jitsi Android App)

Client Camera Resolutions
Client1 - 1280x720 max
Client2 - 1280x720 max
Client3 - 640x480

Internet Connection
All 3 Clients connected on WiFi on the same network as the server (ethernet)

Findings

Look at the incredible bitrate savings! Turning SVC off literally doubles the bandwidth consumption by each client! So SVC cuts down the bandwidth consumption by a whopping 50%! WOW!!! Honestly, if youโ€™re not upgrading to VP9, youโ€™re not living life, Iโ€™m sorry. :grin: This has to be the next best thing to sliced bread! Hehehehehe! :joy:

Anyway, the summary of this is that you can confirm SVC is actually working in a VP9-enabled Jitsi deployment by toggling your simulcast status. Shall we do a Jitsi dance? But of course, mes amis, but of course! :rofl:

P.S: The slight drop in recorded resolution (1280x720 to 960x540) is because I tested using the same machine for multiple clients.

2 Likes

Hello @Freddie Is there anyway to force it to use VP9? Iโ€™m using jonathan repo for adding VP9 support and also enabled it on Jicofo but most of the times connection status shows VP8.
I tried it on brave,chrome,edge browsers.

Version:

root@jvb1:/# dpkg -l | grep jitsi
ii  jitsi-videobridge2         2.1-418-g27bafcb1-1         all          WebRTC compatible Selective Forwarding Unit (SFU)

@metadata youโ€™re saying you baked the jar using Jonathanโ€™s PR and replaced it in your install but you donโ€™t consistently get VP9?

Fixed it. I have disabled p2p mode and now its VP9 only.

Okay, good. :+1:t6:

I have a similar question.

I was able to bake Jonathanโ€™s jar and now I have VP9 on the bridge.

However I also want to enable VP9 for p2p, not just bridge.

When I set preferredCodec: โ€˜VP9โ€™, (inside the p2p: section in config.js - I already have it set as the preferredCodec inside the videoQuality: section) I get the dreaded grey screen error since it doesnโ€™t seem to like the config.

Is having VP9 in bridge mutually exclusive with having it enabled for p2p also?

Thanks