If you’re a gamer in South Africa, you’ve inevitably run into a situation where streaming live gameplay from Twitch is next to impossible. If you can’t do it in “source”, you have to drop the resolution down until fine details in DOTA 2 look like coloured blobs, and the announcer’s face might be pimpled for all you know because it’s horribly pixelated. When the image clears up somewhat, your download speed drops again and the stream stutters while the buffer fills up. I’ve been through several ISPs trying to figure this out, and it’s been an exercise in frustration and hours of pointless messages and phone calls to support staff to isolate the cause.
I’d move to a new ISP and see things improve dramatically, only to have the wheels fall off the wagon rapidly. Without local content caching servers, Twitch’s performance remains lacklustre across almost all ISPs. Until now, that is. I’ve come across a gem of a browser plugin that fixes it all, and I want you to know about it, because it’ll save you some grief. Maybe it’ll even save some lives, who knows!
Twitch 5 is a plugin available for Mozilla Firefox, Google Chrome, and Microsoft Edge. Once installed, it replaces the standard video player that Twitch will use on their website with an HTML5 player that exists in your browser. It’s lightweight and fast, and it uses slightly less RAM, in addition to having the ability to dodge adverts run during a live stream.
There have been efforts to work around Twitch’s poor performance in the past, from viewers using VLC to stream the content, to people setting up a VPN to improve the connection throughput, to even editing things as simple as the hosts file in Windows to force it to connect to servers which are closer geographically. Heck, even Twitch’s desktop app was an alternative for a while until they made the switch to HTML5.
The user interface is quite simple. On Twitch, you get a stylised Twitch 5 logo that matches the border colour and looks like it belongs there by default. Clicking it will enable or disable autoplay support. Since it only works for live feeds anyway, leaving autoplay enabled is probably best. If it’s disabled, you can also click the button below the viewport to enable the Twitch 5 UI.
And the UI looks like something out of the early 2000s. The default colour scheme and the overall design looks like it was made by someone who yearns for the days when Winamp really whipped the llama’s ass. Still, it’s clean and functional. The video stats are more detailed than standard Twitch, and it shows you average bandwidth numbers, as well as the time to the first byte, which could be a neat metric to measure ISP performance for streaming Twitch.
Twitch also has polling intervals for their content delivery network (CDN) that dictates how much the servers should be polled for a stream to work properly. This seems to be a percentage of a default time duration, and I’m not sure how that’s calculated. The statistics do note which polling interval you’re using, and what the average performance is, as well as what the performance might be on other intervals, which I haven’t figured out how to force. Not that it will matter much…
So how does it change things?
Well, it annihilates Twitch. By default, the Twitch HTML5 player will do an initial speed test on your line when syncing the stream, and it’ll use that speed to determine the correct playback level for your line speed. The problem with doing this is that most ISPs will allow your line to burst instantaneously to give you speed for things like page loads, and that’s likely the point at which Twitch thinks you’re good to go. You can see how the average usage on my line trends down after the stream starts, moving from an average of 6.6Mbps to around 3.4Mbps. As you can see, I took the screenshot while the stream had stuttered, with the buffer somehow empty despite a constant load.
Switch to Twitch 5’s player, though, and you can see the absolutely absurd increase in bandwidth usage with the defaults (streaming in source with moderate bandwidth settings). My usage jumps up to around 7.7Mbps, and the stream is in crisp, clear 720p 60Hz source video with nary a stutter or glitch in sight. I actually continued to watch a Youtube video while the stream was going on, and it didn’t hiccup.
Interestingly, you can make Twitch 5 behave just like the standard Twitch player by setting the connection quality to good. It behaves in the exact same way, down to using the lower connection speed and buffering all over the place. Eugh!
Setting your connection to “bad” doesn’t achieve or change much unless you really have a wonky internet connection, like a connection to a congested 3G tower. Keeping it set to “moderate” does all it needs to, and I don’t think anyone will have to make tweaks further. But there is one you can play with.
By default, the Twitch player will try set a constant connection quality and will try to utilise a constant amount of bandwidth. Depending on your network setup, this isn’t a bad thing, but it doesn’t leave room for others to use the internet when your buffer is still full. Twitch 5, however, does a neat trick. If you choose any other video resolution than source, it will throttle how much bandwidth the stream uses on your line, filling up the buffer at regular intervals instead to match the chosen bandwidth usage.
For this stream, in particular, picking 720p60 didn’t noticeably degrade the image quality, and the stream was still coming in at 60Hz without stutters. The bandwidth profile is significantly different though, and more suitable for when you’re trying to do other things on the internet like downloading game updates or playing online.
Picking 720p made an even bigger difference. You can see the drop-off in usage as I changed the setting, with the seesawing motion of the graph immediately visible. It continued to look like that for the next ten minutes. It’s astonishing to me how well it does this, and gives me confidence that I could have any live stream I wanted open without it impeding on anyone else in the house who needed to use the connection at the time. It’s not like it’s black magic, but I’m surprised that Twitch doesn’t see their way forward to implementing these changes to improve the user experience.
So, yeah. Install this thing. It will probably change your life. It might even make you want to get into some Twitch streams again. I know I did.