Broadcast Requirements

This article explains the different requirements necessary for broadcasting on Twitch, as well as some common issues and resolutions.

Index (click to jump):


 * Broadcast Requirements
 * Stream Configuration Quality
 * Troubleshooting Errors
 * A Note on CBR

Broadcast Requirements
The following settings are required to be compatible with broadcasting to the entire site:

Video Requirements

 * Encoding Profile: Main (preferred) or Baseline
 * Mode: Strict CBR
 * Keyframe Interval: 2 seconds
 * Framerates: 25/30 or 50/60 frames per second
 * Recommended bitrate range - 3-6 megabits per second

Audio Requirements

 * Codec: H.264 (x264)
 * Codec: AAC-LC. Stereo or Mono
 * Recommended Bitrate (for maximum compatibility) 96kbps
 * Maximum audio bit rate: 160 kbps (AAC)
 * Sampling frequency: any (AAC)

Other Broadcasting defaults:

 * Max Broadcast Length: 48 hours

Additional recommendations for broadcast settings can be found here: stream.twitch.tv.

These configurations are already supported and active by default in the latest versions of the most popular broadcast software options on Twitch. If you are running an older version of your broadcasting software, you may have to make a few adjustments. For step-by-step instructions, please see the applicable Knowledge Base articles.


 * XSplit
 * OBS
 * Gameshow

Stream Configuration Quality
To help you determine whether your stream settings are compatible, there is an ingest feedback feature on your Broadcast Dashboard and Twitch Inspector.

Inspector configuration check (advanced):
On your Twitch dashboard, your Broadcast will be rated on its Stream Configuration Quality. Here are the three ratings and what they mean to you:

Excellent
(Stream is stable and configured properly)


 * Twitch hasn’t detected any instability in the stream
 * Configuration checks for codecs, bitrate, settings are looking well so far

Note: This value can fluctuate at time during a live stream.

Acceptable
(Some stream incompatibilities)


 * Twitch detected some settings which need tuning. For example: Ingest bitrate is too high, or an incompatible codec is being used.
 * Your Broadcast will be available but some users may experience problems when watching your stream.

Unstable
(Important settings are not met)


 * Twitch detected instability in the stream. This will cause buffering, or prevent users from being able to watch video smoothly, and in severe cases, watch at all.

Health checks are the same on dashboard and inspector. The difference will be Inspector will show more advanced details to aid in troubleshooting broadcasting errors.

Troubleshooting Errors
Here are the four errors you can receive and quick ways to fix them:

Video codec must be set to h.264 (it is currently "{codec}" or "unknown")

 * Wait about 30 seconds and refresh to ensure that your settings are loaded
 * Set your video codec to h.264 (x264) (AVC)
 * If you see this, you are probably running a very strange RTMP encoder. Try to adjust the codec in the settings
 * All the software displayed on http://twitch.tv/broadcast can provide h.264 encoding

Audio codec must be set to AAC (it is currently "{codec}")

 * AAC are supported in HLS, MP3 support has been deprecated
 * Be careful as some of the more exotic hardware encoders come with audio codecs that may not play nice with the transcoding and demuxing tools used on Twitch
 * The software listed on http://twitch.tv/broadcast fully supports MP3 or AAC.

The broadcast is not set to constant bitrate (CBR). [Current average: {avg} kbps, current max: {max} kbps]

 * This means the bitrate is fluctuating too much. On average you are transmitting at {avg}, but peaking at {max}, and the difference is large. Enable CBR in your Broadcast software accordingly.
 * FMLE does not support CBR encoding. Please switch to software that supports this

Reasons why Source wouldn't be available on a stream

 * In the case keyframe intervals (GOP size) is set higher than 10 seconds, source will be disabled to guarantee playback compatibility across devices.
 * If the streaming bitrate is too high, this may also cause incompatibilities with some viewers, causing source to be disabled as well.
 * Using https://inspector.twitch.tv can provide more information about incompatible settings on a stream, as well as provides recommendations to address such incompatibilities.

A Note on CBR
If you are Broadcasting to Twitch with a recent version of XSplit or OBS, you may have noticed the option to select between VBR (variable bitrate) and CBR (constant bitrate). Twitch suggests that all Broadcasters use CBR for several reasons, all of which relate to the final quality of service (QoS) that your viewers will experience.

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 pretty much any end-user connection when the bitrate spikes back up during the action (team fights, Protoss vs. Protoss battles, 2GD petting Victory Cat). This is due to interactions between multiple RTMP, other TCP streams, routers, buffers, and a whole complex morass of tech buzzwords.

VBR also leads to issues when sending data to the Twitch network over many ISPs. When connecting to Twitch, the route your ISP takes may not be stable enough to handle sudden increases in bandwidth, leading to “broadcast starvation.”

Broadcaster starvation (instability) is when video data is not arriving on time, or completely missing to twitch servers. This happens when there are network problems between you and twitch, when you attempt to stream at a bitrate that is too high for your network/isp, or have problems with your router causing frames to be dropped before entering the Twitch network. This leads to lag for everyone including people watching on your lower resolutions, buffering, and stream disconnections.

TL:DR
Variable bitrate is bad for video over the internet due to how TCP (the internet protocol most streaming video uses) works, and you should use CBR whenever possible.