This week we’re going to talk about how YouTube broke HD for me and about 40% the UK population, give or take.
I moved to a newer home earlier this year and like most places in the UK (even in London) it only had broadband internet aka slow ADSL over copper. It’s pushing a good 4.2 Mbps, sometimes up to 4.6 Mbps on a good day.
YouTube decided to rollout 60 FPS videos by default to everyone. It came in effect automatically for most videos published over the past couple years.
Have a look at quality setting and see what pops up. If the video is relatively recent the options are usually limited to: 1080p60, 720p60, 480p …
There’s no setting and there’s no opt-out to get back to 30 FPS. Like all software updates lately, the switch happened and there’s nothing you can do about it.
Problem: 60 FPS video requires roughly 50% more bandwidth than 30 FPS video.
- 1080p video can take 4-5 Mbps, variable depending on the content of the video, it can be played on a 5 Mbps broadband but it really takes a 6-7 Mbps connection to have a decent experience without pauses nor long load times.
- 1080p60 video is another beast entirely. 1080p requires 6 Mbps+ to stream at all, better have 8+ Mbps to have a good experience.
- 720p video can take 2 or 3 Mbps, it plays well with a 4 Mbps broadband.
- 720p60 video is more akin to 3-4 Mbps. It can well enough with 5 Mbps where the 1080p was struggling.
These are not accidental numbers of course. ADSL2+ is hard capped at 20 Mbps, having a home in the same street as the internet center. ADSL is hard capped at 8 Mbps, having a home further than roughly 2.5 km (1.5 miles) from the internet center. Hard limitations due to physics and loss in cables, practical speed is less than that. (Grossly summarized here, I don’t want to get into a course about G992.X standards).
Hence video streams are tuned to fit within the limitations of what is available.
- < 18 Mbps cap to work at all with broadband, with the fastest broadband, usually in city centers. (4k has to get down there or it’s de facto dead).
- < 8 Mbps to work with the majority of broadband users who are not lucky to be so well-located. (it’s the distance before VS after 2 km).
- < 5 Mbps in practice to work with most of the country (the majority of users might actually be here),
- < 2 Mbps to work with the slowest connections and countryside (doesn’t hurt mobile either but that’s a different subject).
Found some data about internet speed in the UK, wasn’t easy to come across, that puts 45% of UK housesolds have < 8 Mbps connection.
Personal Note: The figures look legit enough as it is, if anything it might be embellished to look better, considering note 13 saying the data was heavily processed by a third party and normalized and considering that important figures in the complete report are often missing or too-good-to-be-true.
Problem: YouTube rolled 60 FPS overnight and started requiring 50% more bandwidth, however users didn’t get a 50% faster connection overnight, they’re still using the same shitty broadband that’s the best they could get.
When the switch to 60 FPS happened, 40% of the UK population simply got cut off of the higher quality that they were able to watch so far. The few percents at the edge with enough headroom to play 60 FPS got a much worse user experience, the impact on load time and buffering/pause being significant.
There’s also an impact on CPU and battery life but we can’t cover every side effect in one bug report. We’re talking about networking today!
There’s no way back. When videos are 60 FPS it’s impossible to get back to 30 FPS. There’s no setting. There’s no way to opt-out.
The best I was able to find out of desperation and lots of research –I can’t stress enough that 1080p60 is just breaking YouTube with my 4.6 Mbps connection– is this extension “Disable YouTube 60 FPS (Force 30 FPS)” + TamperMonkey.
The YouTube player is actively detecting the download speed and automatically adjusting the quality to what can pass through.
Problem: The quality detector is only picking between the 60 FPS options, same options as in the popup menu, it doesn’t switch back to 30 FPS.
This could be easily fixed. When it’s detecting that the connection is < 8 Mbps or so, it should fall back to 30 FPS exclusively. 60 FPS won’t work there so there’s no point in doing it at all. There’s a soft edge (somewhere around 6-8 Mbps) where it can load but the impact on loading time and on buffering and on another person in the household trying to open Gmail is really sizable so better have some margin.
YouTube stores videos in numerous formats, there’s always a 30 FPS version of the video available alongside the 60 FPS version, the web player doesn’t show it. Different devices and players make use of streams. Ironically a player could sell the non-detection of 60 FPS videos as a feature not a bug.
I hope Google fixes this so I can start watching YouTube again in good conditions. Sadly it’s not like there’s a place where you can report bugs to Google. Last resort might be to fill a bug bounty, “YouTube DoS’ing home internet connections due to suboptimal video flow control“, I wonder if they’d receive it.