Help Center Welcome, Guest Login

Guide to Broadcast Health and Using Twitch Inspector

Last Updated: Jun 16, 2016 12:30PM PDT

Guide to Broadcast Health and Using Twitch Inspector

This article explains how broadcast ingests work, what Twitch Inspector is, how to use it, troubleshooting issues, and other useful information.

Notice an error or have feedback for this article? Let us know!
 

At Twitch, the main information pipeline for a stream starts with you. A broadcaster sends a video stream to Twitch using any of several tools:

  • A streaming encoder, some software implementation like OBS (Open Broadcaster Software) and Xsplit OR
  • A Console, like the PS4 and Xbox OR
  • A Hardware video encoder

The broadcast tool sends a video signal captured from the broadcaster’s game and cameras, through the open Internet, into Twitch (live.twitch.tv), using the Real-Time Messaging Protocol (RTMP). The video enters the Twitch ingest subsystem, is authorized and registered, and then prepared for viewers.

Twitch has created a broadcast inspector to help ensure broadcast health and aid in the troubleshooting of any issues that might occur. To use this, check out the Inspector tool here and click Run a Stream Test to investigate the health of your broadcasts.
 

 

Below are some tips and general recommendations to ensure the above process occurs with minimal delays and interruptions.

Index:
Broadcast URLs and Stream Keys
Settings and Requirements
Supported Platforms
How to Set a Proper Bitrate
Constant Bitrate vs Variable Bitrate
How to Choose a Twitch Ingest Server
How to Test Bandwidth
How to Check Broadcast Health (Troubleshooting)


First, it is best to understand what a broadcast URL looks like and how it works.

Each broadcast uses an RTMP URL that has the following format: rtmp://<twitch-ingest-server>/app/<stream-key>

A breakdown of what this means:
  • rtmp:// - This is the Real-Time Media Protocol, which is an industry standard for moving video around a network
  • <twitch-ingest-server> - This is the ingest server from Twitch that you are connecting to, and identifies a specific Twitch server that receives this broadcast stream; e.g., live.twitch.tv. The valid values of ingest-server are listed in Choosing a Twitch Ingest Server
  • <stream-key> - Also known as authorization key, uniquely identifies this stream. Stream keys are assigned by Twitch, and broadcasters can retrieve the keys from the broadcaster dashboard on www.twitch.tv. (REMEMBER: never share your stream key with anyone else. Doing so could compromise your channel)
 

Twitch allows viewers to watch on a variety of non-web devices, such as game consoles, tablets, and mobile phones. To broadcast on all devices, the following settings are required:

Video
  • Codec: H.264 (x264)
  • Mode: Strict CBR (constant bitrate)
  • Keyframe Interval: 2 seconds
  • Maximum bitrate: 3500
Audio
  • Codec: AAC-LC (Stereo or Mono)
  • Maximum bit rate: 160 kbps (AAC)
  • Sampling frequency: 48khz recommended (AAC)
These settings are active by default in the latest versions of the most popular broadcast streaming encoders used on Twitch.
 

Check out these pages for articles with information about which software and hardware are supported for broadcasting on Twitch and how to set up your streaming encoder:  

Twitch specifies a maximum bitrate (bits transferred per second of video) of 3,500 kbps, but most Twitch streams use less. While a higher bitrate can result in higher quality video, it reduces the number of potential viewers, as some computers or Internet connections cannot handle higher bitrate video. Moreover, a higher bitrate does not always result in better image quality.

There are good reasons to use a lower bitrate:
A lower bitrate often means a more stable connection, which translates into fewer problems for viewers. The higher the bitrate, the faster and more stable your connection must be. A video stream sends data continuously, so consistency and stability matter more than how fast the connection can be in short bursts.

The less movement there is in your broadcast, the lower the bitrate required for it to look good on Twitch. For card games, talk shows, and illustrations, you can stream at 1500 kbps and still display a good looking, 720p broadcast.
 

If you are broadcasting to Twitch using the latest version of XSplit or OBS, you may have noticed the option to select between VBR (variable bitrate) and CBR (constant bitrate). Twitch specifies using CBR, for several reasons related to the final quality of service that your viewers will experience.

CBR files do not vary the amount of output data per time period. VBR files vary the amount of output data per time period. VBR encoding adjusts the data rate up and down, subject to the upper limit you set.

The main problem with VBR is during lulls in the action — paused games, hero-selection screens, even famous talking heads. During these sections of video, VBR streams produce a significantly lower bitrate, which can cause issues on many end-user connections (particularly wireless) when the bitrate spikes back up during the action moments (team fights, Protoss vs. Protoss battles, 2GD petting Victory Cat, etc). These rapid changes in bitrate frequently cause frame drops for the broadcaster as well as buffering for the viewers.

While VBR does not lead to better broadcasts, a similar client side technology, adaptive bitrate streaming (ABS) is often effective at helping users have a good viewing experience. You need to do nothing to enable this, as Twitch handles this on its servers.

In short, VBR performs poorly for video over the Internet, so use CBR whenever possible.
 

Broadcast streams enter Twitch through an ingest server, where they are authorized and registered, then prepared for viewers. Be sure to choose a Twitch ingest server you can get to with the lowest ping timing. This may change based on how your ISP routes your traffic, so test every time you broadcast from a new location or ISP.
  • In XSplit, ping timings are shown automatically in a drop-down box.
  • For OBS and other tools, try this
If in doubt, use the server physically closest to you.

To construct the RTMP URL for your chosen Twitch server, Please refer to Broadcast URLs and StreamKeys.
 
Location Ingest DNS Name
Twitch Main live.twitch.tv
Seattle, WA live-sea.twitch.tv
San Jose, CA live-sjc.twitch.tv
San Francisco, CA live-sfo.twitch.tv
Los Angeles, CA live-lax.twitch.tv
Dallas, TX live-dfw.twitch.tv
Ashburn, VA live-iad.twitch.tv
New York, NY live-jfk.twitch.tv
Miami, FL live-mia.twitch.tv
Chicago, IL live-ord.twitch.tv
Sao Paulo, Brazil live-gru.twitch.tv
Rio de Janeiro, Brazil live-gig.twitch.tv
Chile live-scl.twitch.tv
Argentina live-eze.twitch.tv
London, UK live-lhr.twitch.tv
Frankfurt, Germany live-fra.twitch.tv
Amsterdam, Netherlands live-ams.twitch.tv
Paris, France ive-cdg.twitch.tv
Prague, Czech Republic live-prg.twitch.tv
Stockholm, Sweden live-arn.justin.tv
Warsaw, Poland live-waw.twitch.tv
Hong Kong live-hkg.twitch.tv
Seoul, South Korea live-sel.twitch.tv
Singapore live-sin.twitch.tv
Taipei, Taiwan live-tpe.twitch.tv
Tokyo, Japan live-tyo.twitch.tv
Sydney, Australia live-syd.twitch.tv
 
HELPFUL HINT
For instance, if you live in San Francisco, using San Francisco or San Jose servers will yield a better connection than using Prague or Sao Paulo servers. When in doubt, use the Twitch main server, live.twitch.tv.
 

After choosing a server, you can test your bandwidth without your stream coming online. Running a bandwidth test allows you to check your connection’s stability without going live or notifying your viewers.
  • On XSplit, use the “Test Bandwidth” feature, located beside the server drop-down list.
  • On OBS or another tool, add “?bandwidthtest” to the end of your stream key.

If you can stream for a while without any dropped frames, you have a stable connection. If not, either test again on another server (of a similar or second-highest ping) or lower your bitrate.
 

Common Issues:

Local Network problems
If lowering the bitrate and checking the encoder settings does not eliminate the instability, it could be intermittent connectivity issues. This could well be a broken cable, spotty wifi, issues in the local internet, or some other processes consuming internet bandwidth inadvertently.

Check no other computers or devices are consuming the internet bandwidth, the modem router is okay, and that there's no problems in the region.

Dropped Frames
Most broadcast software alerts you if frames from your broadcast are not reaching Twitch servers. If your broadcast software indicates you are dropping frames try the following:
  • Check your ingest server. Make sure you have the best server selected for your location and network. See How to choose a Twitch Ingest Server.
  • Check your upload speed. You may be getting throttled or have local network issues that prevent you from uploading at your current bitrate.
  • Lower your bitrate. If you still have issues, lower your bitrate live – most broadcast software allows you to do this – until frames stop dropping.
  • Streaming at a bitrate close to the limit of your internet connection’s maximum may add delay to your stream. If viewers complain about accumulating delay, and the bitrate graph shows a flat line, the connection may be hitting its limit, even though it seems okay. Lower the bitrate by 200 to 500 kbps; this should vastly improve the connection while having minimal effect on visual quality.
 

The easiest way to see the health of a live, or past broadcast, is to head to http://inspector.twitch.tv. This tool will show how the video data is flowing into Twitch servers, and shows some of the common errors, as well as if a broadcast has periods of instability. Most problems will appear in the Bitrate Graph displayed on Inspector. The graph displays bitrates out of the broadcaster’s encoder and how they look once they arrive to Twitch’s server.

Most problems appear as unstable events on bitrate graphs. Here are the most common issues and how you can fix them:

Low Internet Bandwidth
The stream is relatively unstable, even when lowering bitrates. In these cases, either there is not enough bandwidth between the ISP and Twitch, or something is wrong in the network path to Twitch. To resolve this, switch to a different Twitch server (see Choosing a Twitch Ingest Server), check that no other network process is using bandwidth, or contact your ISP for network diagnostics.
 

 



Excessive High Bitrate
Here the broadcaster is streaming at 14,000 kbps. Simply using a higher bitrate does not necessarily mean better quality; in this case such high bitrate is causing instability. Remember to adhere to a maximum of 3500. In many cases, high bandwidth causes stream instability throughout a broadcast.
 

 



Network or Hardware problems
Sometimes the machine doing the video encoding is having issues keeping up with the load (video encoding takes a lot of computing resources). In this case, verify the machine is not overloaded, running too many things at a time, and that the encoder is up to date. Possibly switch to an encoding preset that uses less CPU.
 

 



Possible Network Path Errors
If a well configured stream which used to work fine starts to show instability, it may be a case of network path errors. Try switching Twitch ingest servers (to change the network path from the encoder to Twitch) and lowering bitrate which can help a lot with stability. See How to choose a Twitch Ingest Server and Bitrate.
 

 



Bitrate Spikes
This stream may be using a variable bitrate or a streaming encoder that is not correctly limiting the bitrate. While the average bitrate is around 3500 kbps, 4500 kbps spikes will cause viewers to buffer and experience issues. Also, very high bitrate spikes will cause persistent buffering for viewers. To avoid this, specify constant bitrate or lower the bitrate.
 

 



Bitrate Dips
Sometimes streaming encoders try to be too smart and optimize bitrate. If the bitrate dips, when the bitrate goes back up, viewers will experience buffering from trying to load too much data. Try testing with a different encoder. Be aware that dips can also happen if your machine may not have enough CPU power for the encoder to compress video.