Flagship VP9 Support: Notes and Discussion

Any formal support for VP9 ?

1 Like

Also curious about the status of VP9. There hasn’t been any news for some time.
Is the jitsi team still working on this?

You can see constant updates to this WIP Pull Request:

2 Likes

Thanks @lllmb

For those following my WIP, see also https://github.com/jitsi/jitsi-videobridge/pull/1321. (The jmt work is largely done at this point; the remaining work is in finishing up the source projection logic in jvb.)

Once the bridge work is done, we’ll also need client work to determine whether all conference members support receiving VP9 (since Safari, and some mobile clients, don’t), and to determine when it’s advantageous for the client to send VP9 (since it’s a bandwidth/CPU use tradeoff).

7 Likes

Yay !

Much thanks Jonathan

Egarly waiting for this full support for VP9 with fallback for Safari and some low cpu devices.

Hello,
Thank you for this great work.
Is there a way to follow the client evolution or any time estimation of a release with VP9 support?

1 Like

Any update about VP9 support?

Hi there, any further estimation on when VP9 will be merged to master? Thanks! Daryl

In this battle of video conferencing platforms, Vp9 is what required to fight the battle.
Nowadays, people don’t want 3 or 4 participants in a call, they want over 100 in a conference room as this is max capacity for a class.

Please provide VP9 support as soon as possible.

@Jonathan_Lennox , I believe I found a vp9-related bug.

When using vp9 in gallery mode (tile view), the server sometimes decides to forward only the dominant speaker’s frames (simulating lastN=1), even when estimated bandwidth is reasonable.

I suspect this is happening because the calculation to to see if there is available bandwidth for all the low-quality layers is not layer-aware, and so I suspect it is using the bitrate of high-quality layers in the calculation instead of the bitrate of the low-quality layer. It therefore computes that there is not nearly enough bandwidth, even though there is.

I suspect this because we never see this when using VP8 simulcast, but see it regularly with vp9. I have my team investigating, but they are integrators, not server jockeys, so I thought I would alert you.

@Omatic: to be clear, is this with the current videobridge, or with my not-yet-landed PR?

@Jonathan_Lennox let me seize this opportunity of your rare appearance to hijack you for a quick minute (:smiley:): what would you say is the best way to force VP9 right now? I know you’re still working on getting it to work correctly with JVB, but with the current stable (or even unstable), what would you say is the best way to get it to work (somewhat)?

By the way, I believe @Omatic is talking about the current videobridge (he’s forcing VP9 through changes in jicofo and the videobridge). He’s detailed this in another post, that’s how I know.

This is with the latest stable. My developers compared the latest stable code to to the latest unstable code and did not see anything that they believe would make a difference. Is your PR not yet included in unstable?

Yes, my PR is not yet included in unstable.

The current stable doesn’t have any VP9-specific knowledge, so it forwards it generically.

My PR is at https://github.com/jitsi/jitsi-videobridge/pull/1321 .

1 Like

To force VP9 right now, I’d suggest building a Videobridge with my PR, and then forcing it in jicofo (telling it to negotiate VP9 and not negotiate VP8).

You’ll have problems talking to Safari on older macOS and iOS, and possibly with some mobile devices.

Let me know of any other issues you run into if you do this!

1 Like

Great! Thanks Jonathan! Will try that.

So, basically just build the Videobridge with your PR and then enable in Jicofo (VP9=true, H264+false, VP8=false)?

hello @Jonathan_Lennox I’m using docker-setup and I tried this PR to force VP9 via jicofo and I can see codec VP9 when I hover over connection status but sometimes it fallback to VP8(even though I disabled it in jicofo config). I observe the video quality has been improved BUT now I’m wondering after going through this discussion whether It is really VP9 or not.

If it says VP9, it’s really VP9.

However, the videobridge isn’t applying any VP9-specific treatment to it.

1 Like

I’ll try your PR but before that I have to figure out how to build docker image using your repo.

Thanks a lot for clearing my doubts. :slight_smile: