Why YouTube’s HTML5 Player Sucks
YouTube has begun rolling out their HTML5 video player in order to replace Flash, and although I applaud them for pushing us to the future, I am finding it very hard to enjoy YouTube at the moment. While some of these problems are minor, others make the new player impossible to use.
Perhaps not the worst issue, but when I want to skip into a video, it doesn’t give me an accurate measurement of time. In the pictures below, you can see that I hover over 1:20:43, however, when I click it jumps nearly a minute away to 1:21:35. YouTube’s Flash player used to have a similar problem, usually it’d be off by about two seconds max (and that was likely due to the way the video was compressed rather than a bug in the player), but nearly a minute off? I think that’s unacceptable for YouTube’s standards.
I average around 700 KiB/s downstream on my connection, but YouTube tends to load at a far slower rate – likely due to the setup YouTube has in Australia. Nevertheless, YouTube’s HTML5 player doesn’t buffer for me. It keeps playing the video pausing and playing, pausing and playing multiple times a second – you know, that really jittery playback you get when a video loads as fast as it plays? It’s unbearable. So I pause videos at the start to let them load. Now, pausing a video to let it load isn’t a big issue, but it’s also useless because of the next issue…
Caching and Download Limits Make HD Impossible!
Whether this is a setting in my browser or something else, I don’t know, but I have tested this on all of my computers – both Windows 7 and Mac OS X Lion – using Chrome 16. Videos hardly cache for me anymore. This means that if I want to rewind more than about 20 seconds in a video, it starts loading the video again despite the fact that I just loaded it. This isn’t just bad for my transfer quota, but what about YouTube’s!? – Just imagine how many people are reloading their videos due to this issue.
What’s worse is that when I rewind, I have to pause it again to let it buffer again.
It gets even worse, though! I can’t play YouTube HD videos. Why? Because videos will only load so many seconds into the future before they stop downloading (perhaps a limitation in cache size?) In other words, if I’m watching a 10 minute video in HD, I pause the video, the video will only load X seconds ahead and no more. (X depends on the quality of the video, 1080p may only load a minute or so, whereas 360p may load the entire video.)
Here’s what happens…
I’ll give an example of me watching an 1080p video the other day, because generally watching 360p will be fine due to the often small file-size of such videos.
So, I pause the video at 0 seconds to let it buffer (because it doesn’t auto-buffer.) The video then stops loading after X seconds due to the cache limitations(?). I start playing, and so the video continues to load a bit further, while in the background the player/browser is un-caching what I had previously watched. BAM! I’m hit with the slow transfer rate that YouTube offers in Australia and so I have to pause again to let the video buffer. I hit play, but for some reason it skips ahead a second and so I missed what someone said in the video. I put my cursor on the time-bar to go back 5 seconds, but it instead decides to pull me back 30 seconds. BAM! Cache limitation! It starts loading the video again, and so I pause to let it load. It is impossible to use!
These same issues occur on all of my computers, all using Chrome 16 on both Mac OS X Lion and Windows 7.
I don’t know who’s to blame here, but when watching videos via HTML5, my screen will go dark after 5 minutes, as per my computer’s energy saving settings. The computer doesn’t realise I’m watching a video, as it did with Flash, it therefore thinks I am inactive and dims the screen. This results in a bad user experience, especially if you’re watching a movie or TV show on YouTube.
Fullscreen has it’s own issues, where Chrome will continue to display my downloads panel at the bottom of the browser.
Annoyingly, the cursor never hides when in fullscreen.
If you’re wanting to skip forwards or backwards in a video while in fullscreen, hovering over the timeline won’t give you an indication of the time you’ll jump to (then again, it’d be inaccurate anyway, as mentioned at the top of this post.)
Also, weirdly, sometimes exiting fullscreen results in odd problems, as shown in my screenshot below…
All in All…
I really hope YouTube fixes these issues soon. I would prefer to use HTML5 over Flash for the simple fact that I’d like to use as few plugins as possible, but these issues are making it hard. The biggest issue, in my opinion, is the cache. I simply cannot load 1080p videos. I’d love to hear if anyone else is having these issues.
Regarding the caching issue, I am unsure if this is just a default browser setting, but if it is, YouTube’s going to have a lot of issues bringing this player in.