Improve YouTube Video Playback on Low Power Intel mini PCs by Disabling VP9 Support in Chrome or Firefox

I’ve been reviewing several Intel Bay Trail, Cherry Trail, and Braswell mini PCs in the last year or so, and I always end up recommending Microsoft Edge browser over Firefox or Chrome for people wanting to watch YouTube videos, as the last two browsers always drop many frames with the video stuttering regularly. However I noticed that while Edge is playing  MP4/AVC (H.264) video, the other two browser would normally stream WebM/VP9 videos, and it could be the cause of the problem as H.264 can be hardware accelerated, but VP9 not, and the low power processor might not quite powerful enough to handle 1080p VP9 video decoding smoothly.

So I investigated the issues with Vorke V1 mini PC powered by an Intel Celeron J3160 processor (6W TDP) with the three browsers by first checking enabled codecs in YouTube HTML5 page.

  • Microsoft Edge has both VP8 and VP9 disabledEdge_YouTube_HTML5
  • When I tested  Firefox 47 in other mini PCs VP9 was enabled, but I decided to install Firefox 48 Beta instead, and while WebM VP8 is enabled, MSE & WebM VP9 is disabled.Firefox48_YouTube_HTML5
  • Chrome stable has both VP8 and VP9 enabled.

Chrome_YouTube_HTML5

I’ve selected a video and played it in Edge, Firefox, and Chrome. The first had no frame drops using H.264, but the later had many using VP9 as verified using “Stats for Nerds” option in YouTube.

That’s the result in Edge (and the same in Firefox).

Click to Enlarge
Click to Enlarge

No dropped frame after 1 minutes and 30 seconds using MP4/AVC1 (H.264) video streaming. Power consumption while playing the video was 7 to 8 Watts. Compared that to Chrome results:

Click to Enlarge
Click to Enlarge

461 frames dropped out of 2,788 after 1 minutes and 56 seconds using WebM/VP9 video streaming, and power consumption around 11 Watts, or 3 to 4 Watts greater than with Microsoft Edge. So what’s the solution? Let’s try to disable VP9 using h264ify extension, also available as a Firefox add-on.

Click to Enlarge
Click to Enlarge

Magic! No frames dropped after one minute and 30 seconds (and the rest of the video), and power consumption drops to around 8 Watts.

I’ve tested this in Windows 10, but it should also work with Linux distributions on Intel hardware. ARM based mini PCs running Linux may not benefit as I’m not aware of any ARM Linux mini PC or boards that support 1080p hardware video decoding inside any web browsers.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
16 Comments
oldest
newest
TC
TC
7 years ago

wow, thanks! i dont have h264 hw decoding at all (old ati card) but no frame drops with sw decode anymore now!

toto
toto
7 years ago

Should be interesting to report it to Firefox team, so the can take care of this case.

Sander
Sander
7 years ago

Very interesting and useful article.

Question @CNX: with WebM/VP9 still enabled, did you monitor the CPU load? If so, was the CPU (almost) fully loaded?

I have a laptop with an Intel Celeron N2840. Is the above true for that CPU?

Harley
Harley
7 years ago

The problem is chip manufacturers implementation of VP9 hardware decoding. VP9 is still not as prioritized as HEVC or H.264 so chip manufacturers really only make sure that those latter codecs are working nicley. @cnx-soft, that could be an interesting topic for a new blog post by yourself? I think it is unfortuante that VP9 is still considered a second-class citizen by chip manufacturers. Why is VP9 still considered a second-class citizen by chip manufacturers? Compared to HEVC and H.264, the VP9 video codec is royalty free and promoted by Google through Android and YouTube. VP9 hardware acceleration is supported… Read more »

mdel
mdel
7 years ago

having troubles on my linux desktop (nvidia gtx670, no VP9 hw decoder, amd fx 8 cores) in chrome, i’m actually wondering how good (or real) is hw decoding in that browser. I have enabled html5 player and in chrome i get all the videos formats enabled by youtube. But when playing youtube h264 videos in chrome (i don’t have vp9 hw decoding, so i’m forcing h264) i get those results : – 1080p h264 in chrome will bring my cpu to 60-80% load on 2-3 processes, the Gpu at 30% load, Vpu stays at 0% (!?). – mpv will play… Read more »

Eversor
Eversor
7 years ago

This also happens in Chromebooks. The issue here is that sites should be interfacing with the browser to check for what is available as hw decoding support. Since Google is pushing VP9, they don’t even seem to care at all and one has to use h264ify to fix this.

mdel
mdel
7 years ago


i also tested that in my current firefox 43.0 which also registers all the codecs on youtube’s html5 player, and i get the exact same thing 0% vpu.

hw video decoding could work in firefox on windows (check about:support “Supports Hardware H264 Decoding”) but i looks like it’s only in a DXVA context, so not available on linux.

But from what i gather html5 engines are much more WebGL (openGL ES 2) GPU acceleration oriented (3D), than hw video decoding.

Anthony Jones
Anthony Jones
7 years ago

@toto Firefox hides VP9 functionality where it isn’t going to be a win for the user. MSE/VP9 is enabled by default on machines that don’t have hardware decoding enabled or machines that can decode 720p VP9 at over 150 fps. Another way to put it is that MSE/VP9 isn’t enabled on slow machines unless they’re constrained to software decoding anyway.

If you are concerned about either power consumption or performance then the first thing you should so is upgrade your graphics driver. I also recommend looking at the graphics section of about:support to see if hardware H.264 decoding is available.

Sander
Sander
7 years ago

Tested it on my HP Stream 13 with Intel(R) Celeron(R) CPU N2840 @ 2.16GHz, and Chromium 50 on Ubuntu 16.04 LTS. Short: I can confirm the above. Details: Default in Chrome is webm/vp9. Traffic is 14 Mbps, stuttering youtube clip, 50% (!) dropped frames, and CPU at 100%. So: absolutely unusable. After installing h264ify: Traffic is 25 Mbps, just a bit of stuttering and frame drops at the beginning of the clip, but after that: no more frame drops, CPU load between 60% and 90%. So: very usable. So, @CNX, impressive and useful article. And now we can wonder the… Read more »

mdel
mdel
7 years ago

@Jean-Luc Aufranc (CNXSoft) i think cnxsoft : I think the reason is here: VP9: 14 Mbps H.264: 25 Mbps there’s a misunderstanding here, the bandwidth you saw in your html5 player is not the video bandwidth it’s the buffering (download) bandwidth used by the player at that time. for the video used above by cnxsoft, the video bitrates are much much lower : – VP9 video only is 50.4MB, 3.37min ~ 1.85Mbps – h264 video only is 56.2MB, 3.37min ~ 2.07Mbps You can also verify that by playing them in VLC and open the stats data which will show you… Read more »

Anthony Jones
Anthony Jones
7 years ago

@Sander
Firefox uses ffvp9 https://blogs.gnome.org/rbultje/2014/02/22/the-worlds-fastest-vp9-decoder-ffvp9/ which gives a 2x improvement on machines with 4 physical cores. How does Firefox compare on your machine and what GPU and CPU do you have?

Ryan G Bridgeman
Ryan G Bridgeman
7 years ago

Thanks for the information. I have an Intel Braswell box (Vorke V1) and noticed dropped frames under certain circumstances. I’ll try that extension.

Any workarounds for Kodi?

Khadas VIM4 SBC