VP8 melting my battery - can I force H264 in jvb too?

As the title suggests, using the VP8 codec in jitsi-meet leads inevitably to complaints about chrome using up all the power since there doesn’t seem to be VP8 HW acceleration.

Since most platforms have h264 HW acceleration the experience is much better and battery consumption doesn’t go through the roof.

I have h264 preferred for P2P in my config.js, but I was wondering if I could also force H264 for jvb meetings to see if that solves the draining battery problem.

H264 doesn’t have simulcast I believe, so that’s a downside for H264 in jitsi-meet, but I still would like to try it out to see how it works in practice.

Can someone help me force H264? Are there any other downsides besides not supporting simulcast?

Thanks

Any help?

Is it enough in config.js to just set

preferH264: true,
disableH264: false

Will this setting force H264 instead of VP8 or is there another setting I need to change?

Thanks

@damencho Can you confirm that to force H264 always (including when using jvb) all I need to do is set the two flags I mentioned above? Or is there something else I need to do?

Thanks!

Sorry to insist @damencho but I was hoping you could help.

I set preferH264: true, and disableH264: false in config.js but I see in testing with webRTC internals that I’m still getting VP8 codec from an iOS device running the app, whereas other connections seem to be using h264.

This confuses me greatly, specially the fact that iOS should prefer h264 anyway since it has hw decoding capabilities whereas VP8 is also decoded in the CPU and drains the battery super fast.

Any clues as to how to always force H264 (basically disable VP8)?

Thanks

When I profile the webbrowser I see other 3 reasons for high CPU usage that are unrelated to the codec:

1 Like

Thanks @xranby
I’ve been following your tweaks in the other thread and indeed they help a lot.

Nonetheless I’d still like to try using different codecs to test them out in real world meetings.

Do I have to hack the SDP code to force only h264, VP8 or hopefully soon VP9?

1 Like

you can add the following to jicofo properties
org.jitsi.jicofo.ENABLE_VP8=false

You will lose simulcast, as its not supported for h264. Keep in mind that most modern hardware can also use hw acceleration for vp8 and vp9, so you may not see much of a difference.

1 Like

Thanks @speedy01 That’s exactly what I was looking for.
I know I’ll lose simulcast but I’m trying to get jitsi meet (on mobile and OSX) to work more like Zoom (quality and stability wise - obviously not security wise).

Ideally all platforms would already support VP9 and HEVC with SVC, simulcast, etc as well as hardware decoders on iOS/Android and Desktops. But until that day comes I need to experiment a lot to try and find the sweet spot between quality, stability and scalability.

It may actually be a problem with hardware acceleration using chrome on mac.
Here is one report of massive CPU usage caused by the hardware acceleration setting inside of Chrome on mac.

1 Like