[SOLVED] VP8/VP9 Youtube Fail and How to Fix it

I'm a big supporter of technologies which make it easier to transfer data faster and/or safer, like Let's Encrypt, or Socket.io, etc. And in the realm of multimedia I found myself more than once evangelising Google's own VP8/VP9.

A while back I wrote an article about the codec wars, as in, H.264/H.265 vs VP8/VP9 vs The Alliance for Open Media, and in there I explained what VP8 and VP9 are and how they had the potential of being game-changers.

Alas, a recent bug showing up on my Chrome installation on the Macbook Pro I'm using to write this post has made me lose hope.

What's the problem? Well, Youtube videos won't play. Or to be more specific, Youtube videos will not play if I have Hardware Acceleration enabled on Chrome.

I only got the first frame of the video to show up and stay the same even when scrolling the timeline, or some very few times I would get a few seconds of playback and then complete standstill again.

"Huh?", you may say... so did I...

And the bigger issue is that I love GPU acceleration, I use it daily. Heck, my website heavily relies on it to work smoothly. So turning off Hardware Acceleration is not an option.

But why is this happening? My best guess is that Google is trying to shove down people's throat VP8 and VP9 via Youtube.

How do I know this? Here's where the fix comes in:

I simply installed a Chrome extension called h264ify that forces Youtube to load videos in H.264 format, et voilĂ ! No more tears, as the song goes.

But why is this happening???

H.264 hardware acceleration has been implemented in mainstream GPUs since forever. And even though Google boasted for years the same as The Alliance for Open Media does today, that they have nVidia, Intel, etc as partners in crime, when it comes to implementing VP8/VP9 algorithms in hardware, only a single solitary obscure video card by Intel claims to "partially support" VP8 hardware acceleration.

Good grief.

So next time you have Youtube troubles, just try h264ify'ing it.

Show Comments