TwitchTest

A lightweight Windows program that performs a bandwidth test for Twitch.

About

TwitchTest is a free, open source program that allows you to easily measure your upload speed to each Twitch server. Picking a server with sufficient bandwidth, low RTT and a high quality rating will ensure the best results when streaming to Twitch.

TwitchTest Screenshot

A screenshot of the program. Here's what the different metrics mean:

Bandwidth: Fairly self explanatory - this is the bandwidth TwitchTest was able to sustain to the server. Note that TwitchTest will max out at 25mbps and Twitch currently recommends a maximum of 6mbps (6000 kbps) when streaming at 1080p.

Quality: This is a metric which tries to measure the overall stability / quality of the connection based on the rate at which data was sent and the number of re-transmitted packets. It's measured out of 100, and a quality rating of 80 or higher is recommended for a stable stream. If your internet connection is below 25mbps upload, quality numbers may be lower due to your ISP discarding packets.

RTT: This is the time it took to establish the connection (Round Trip Time). Servers further away from you will have a higher RTT.

ConWnd: TCP Congestion Window. This is how much unacknowledged data can be in-flight between you and the Twitch server at any time. The congestion window shrinks if the OS thinks there is network congestion, typically caused by packet loss or re-ordering. Under ideal conditions, the congestion window should grow to match the send window.

SndWnd: TCP Send Window. This is the maximum amount of unacknowledged data that can be in-flight between you and the Twitch server at any time. The send window should be large enough so that under high round trip times, enough data can be sent in-between acknowledgements to maximize throughput. This value is controlled by the OS and depends on factors such as the requested TCP buffer size and network conditions.

Retrans: The amount of data that had to be re-transmitted. Re-transmissions are bad, as this is usually a sign of packet loss or re-ordering and often results in the congestion window shrinking in response.

Limited: The amount of time that the OS has spent waiting to send data but was restricted by the congestion window or send window. There will always be a small period of limited time due to TCP slow start. Due to what appears to be a Windows API bug, if the connection is limited for the entire duration of the test, this value will show as zero.

The TCP Buffer Size setting allows you to experiment with fine tuning certain TCP parameters. The System Default on modern versions of Windows should automatically tune the buffer size to match the network conditions. If your send window is consistently low with the default setting and you aren't reaching expected speeds, it's possible some 3rd party application has disabled the automatic buffer tuning. You can use R1TCPOptimizer to reset your network settings to known good values.

Note: Speed test sites will often not give you an accurate view of your potential upload speed to Twitch, as they are designed to measure your upload as a whole, not to a single site over a single connection. Some ISPs may also have poor routing or overloaded peering with Twitch which affects your maximum possible upload speed, even if a speed test seems to give a good result.

You must not already be streaming during the test, and although TwitchTest needs your stream key, your stream will not go live. Testing all servers can take a while, so it's best to select only regions close to you.

Privacy Notice

As of version 1.4, TwitchTest sends your settings and results to my server for analysis. Data is sent securely over HTTPS and will only be made available in anonymized, aggregate form, eg to show how a certain ISP compares relative to others. If you wish to opt out of this data collection, pass --disable-data-upload on the command line when starting TwitchTest.

Download

TwitchTest will work on Windows 10 64 bit and higher. The Visual Studio 2022 Redistributable is required (you'll get a missing VCRUNTIME140.DLL error otherwise). The program will prompt to launch as an administrator since connection quality statistics can only be measured under admin mode.

Download: twitchtest-2.0.zip (56 KiB).

TwitchTest is open source, licensed under the GPLv2. Source code can be found on GitHub.

Donate

If you find TwitchTest useful, please support my work by making a PayPal donation. Thanks!

Version History