The following settings are required to be compatible with broadcasting to the entire site:
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
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.
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.