Broadcasting is complicated.
If you are new to the world of live streaming on Twitch, its myriad of settings requirements might have your head spinning. Fear not, for the NZXT team is here to help you understand each configuration element so that you are pumping out an optimized stream, regardless of what broadcasting application you are using.
Determining Your Available Bandwidth
It is important to understand that not everyone has a beastly amount of bandwidth or an insane gaming/streaming rig; you should never just set each setting to the maximum possible and assume that this will produce an optimal live stream. Not only does Twitch have very specific requirements for the data it receives from your broadcast, but how you configure your broadcast should be based upon the hardware and Internet speeds you are working with.
This step is extremely important, and it should be first on your list. Speedtest.net is a great free tool that allows you to measure your Internet speeds. Simply visit the Speedtest.net webpage and click “Begin Test.” For the purposes of broadcasting to Twitch, your upload speed is the most important number. This is because when you live stream, you are only sending data to the Twitch servers; you are not receiving anything back, so download speed is irrelevant.
Here’s a quick tip: most broadcasting applications have you specify your output bitrate in Kbps. Speedtest.net will give you your upload speed number in Mbps. If you aren’t familiar with how to convert your Mbps Speedtest.net measurement into Kbps for your broadcasting application, just go to this online conversion site and plug in your upload speed number into the “Mbps” text box.
Configuring Your Video Output Bitrate
Got your upload speed number from Speedtest.net? Good. You will use that information to determine what the highest value is that you should ever set your video output bitrate to.
Quick Note For Non-Partnered Streamers: It is important to note that if you are a non-partnered Twitch streamer (you don’t have one of those coveted “Subscribe” buttons and get paid advertisement revenue and subscription fees by Twitch), Twitch caps your bitrate at 3500 Kbps. What does this mean? It means that you should never set your output bitrate to more than 3500. Even if you have a monster amount of upload bandwidth available, doing so is completely pointless, as Twitch will only ingest your data stream at a maximum rate of 3500 Kbps; nothing more.
Okay, getting back to actual settings configuration. Let’s say that Speedtest.net reports that your upload speed is 2 Mbps, which translates to 2000 Kbps. Does this mean that you should automatically set your video output bitrate to 2000 Kbps? The answer is probably no, but this depends on some other factors.
Things to Consider: Before you decide whether or not you can set your output bitrate equal to the maximum upload speed of your network, you should consider if you are going to be playing a game that needs to connect to the Internet – think multiplayer online modes. If this is the case, then you should set aside some of your available 2000 Kbps upload bandwidth for your video game. Otherwise, your gaming experience will be a complete lag festival, which is never a fun-for-the-whole-family affair (it typically involves a fair amount of profanity). Your game will want some of that available 2000 Kbps upload for communicating with online servers and other platforms, so make sure to spread it around and don’t let your broadcast software hog all the resources. The same is to be said if you are running other applications or devices that might be attempting to connect to the Internet while you are live streaming.
Here are some general rules-of-thumb in regards to output bitrate:
- The higher your output bitrate value, the better your stream’s video quality will be.
- Remember that the higher your output bitrate, the more it will tax your viewers’ Internet resources. If your viewers are complaining about buffering issues, it might be because they don’t have enough bandwidth to view your super hi-def hi-fi wi-fi 1080p 60fps 3500 Kbps broadcast. …Okay, that may be a bit of hyperbole, but the point is that if your audience is experiencing buffering issues, you might need to consider lowering your bitrate to help their network process your broadcast.
- High-motion games (such as FPS or Bullet Hell type games) will look much better at higher bitrates. At lower bitrates, the video will become blurry and distorted during scenes with a lot of motion. If you’re playing a game with a lot of onscreen action, try to set your output bitrate as high as possible (without going overboard like we’ve already discussed, of course).
- Low-motion games don’t need as much bandwidth as their high-motion counterparts to look good, so do your audience a favor and turn down your output bitrate! They’ll experience less playback issues this way. As an example, I recently had a viewer request that I drop my bitrate to 1500 Kbps while I was streaming Sword Art Online: Lost Song. He was experiencing a lot of buffering, and I decided it was worth sacrificing a little bit of visual crispiness so that more viewers could enjoy the stream. Since it was an RPG with a lot of low-motion cut scenes, I felt that it was perfectly okay to drop my output bitrate.
- Something you should never do is set your output bitrate to a value that exceeds your available upload bandwidth. For example, don’t try to set your bitrate to 3500 Kbps if you only have 2000 Kbps to work with. This will result in your broadcasting software trying to cram too much data down a pipeline that is too narrow to accommodate all of it; this results in dropped frames and a terrible viewing experience for your viewers.
- For the sake of this guide, let’s say that you should only allocate about 80% of your upload bandwidth to your broadcasting bitrate. This is by no means a hard-and-fast rule, but if you aren’t sure just how much of your available upload speed you should use for live streaming, try starting out by only giving your broadcasting application 80% of it. If the game you are playing isn’t experiencing connection issues, you can try allocating more of your upload bandwidth to live streaming, or vice-versa.
In summation, first determine how much upload bandwidth you have available with your network. Then, take into account whether or not your game and other programs/devices will also need access to Internet resources. If the answer is Yes, then be sure to set aside some of that upload bandwidth appropriately. Next, consider how much motion and action the game you intend to broadcast has; the more motion, the higher you will want to set your output bitrate.
Set Your Mode to CBR
Some live streaming applications give you the option to set your bitrate mode to Constant Bitrate (CBR) or Variable Bitrate (VBR). Simply put, make sure your broadcasting application is always set to CBR; this will ensure a more stable viewing experiencing for your viewers. CBR will keep your output bitrate as stable as possible, even when there are lulls in onscreen action. VBR, on the other hand, would drop your bitrate during low-motion scenes, and then boost it back up during high-motion scenes; this sudden change can cause problems for your viewers’ devices, so just don’t use VBR. Ever.
Choose Your Output Resolution
1080p is all the rage these days, and to be honest, it sure does look pretty. But does that mean that you should set your output resolution to 1920×1080 right out of the gate? No, and you should take several factors into consideration when determining your output resolution.
Hardware and Game Resolution: First, be sure that your PC’s hardware can handle trying to output a stream at this high resolution. Also, consider what the input resolution of your game is; for example, if you are broadcasting a console game, your console might be outputting the game at 720p. There’s no reason to try to broadcast a 720p game at 1080p.
Trial and Error: In general, you’ll be able to figure out what resolution is safe to broadcast at with your hardware through the process of trial and error. If you try to cast at 1080p and your viewers report a lot of tearing or stuttering, this is a good indicator that your hardware might not be powerful enough. Your next step should be to try progressively dropping your output resolution in steps, such as 720p, followed by 540p, etc. Once you or your viewers can watch your stream without any onscreen disturbances, you’ve found a good output resolution for your broadcasting application.
Live streaming is hardware intensive, so you might also have to lower your output resolution because higher settings might impede your PC’s ability to run your game. Live streaming might cause frame drops, tearing, and other issues on your end while you are attempting to play (which will also be viewable to your viewers).
Bitrate Matters: You also need to consider your available upload bandwidth. Going back to video bitrates, if you don’t have a ton of upload speed, you should consider downscaling your output resolution. Lower resolutions require less video bitrate values to look good. The opposite is true, too: higher video resolutions require greater bitrate values to look good. So, even if your PC can handle playing and broadcasting a game at resolutions of 1920×1080, if you only have, say, 2000 Kbps upload bandwidth available, you should really consider outputting at a resolution of 1280×720 instead. A 1080p stream at 2000 Kbps is unlikely to look good.
Determine Your FPS Value
60 Frames-Per-Second (FPS) is another buzzword these days that streamers get tripped up by. While your broadcasting application will offer you the ability to output a stream at 60fps, this doesn’t mean that you should dive straight into the deep end right away. Like the other sections of this article, I want to help you understand when it’s appropriate to use certain FPS values so you can produce the most optimized stream possible.
Don’t Alienate Your Audience: Again, just as with your output resolution, even if your PC can run a game at 60fps, this doesn’t mean that you should broadcast at 60fps. Not everyone’s viewing device can process a live stream being cast at 60fps, so you might automatically alienate a potential portion of your viewership by broadcasting at this frame rate. Does 60fps look really nice? Yes. Is it worth preventing potential viewers from watching your stream? That’s up to you.
Your Hardware Might Not Be Able to Handle High FPS Values: In some cases, your PC might not even be powerful enough to broadcast at higher FPS values. 30fps might be your PC’s limit, or perhaps this number is even lower. Don’t try to exceed what your hardware is capable of; it will be easily apparent if you are doing this because the gameplay being displayed on your live stream will suffer from frame drops, tearing, and other issues.
Don’t Exceed Your Game’s FPS Value: This one’s easy – don’t try to broadcast at a frame rate that exceeds the frame rate of your video game. It will look bad.
Games with less motion and onscreen craziness don’t need high frame rate values to look quite as good. Conversely, high-motion games will look much better at higher frame rates. Consider what frame rates your PC and your game are capable of outputting, then choose an FPS broadcast value accordingly. Also, never try to cast at a rate greater than 60fps.
Set the Keyframe Interval to 2
This is another one of Twitch’s requirements for data streams it ingests. Your broadcasting application should have a setting that you can configure, commonly called “keyframe” or “keyframe interval.” Set this value to 2, and then leave it alone. Any value other than 2 will cause the Twitch dashboard to report a problem with your stream configuration.
Set Your Video Codec to h.264 (x264)
Without getting into the technical jargon related to why it’s important to use this specific video codec, it’s good to know that most of the commonly used broadcasting applications provide h.264 encoding as a codec option. If your application doesn’t offer h.264, you need to find a new one. Your application might also refer to this codec as “x264,” and this is the same as h.264.
Set Your Audio Codec to AAC or MP3
In your application’s settings, be sure to set your audio codec to either AAC or MP3. AAC simply sounds better than MP3, so I recommend using AAC. Also, using any codec other than these two is a surefire way to experience some audio difficulties during your live broadcast.
Choose Your Audio Bitrate
Ah, back to bitrates. Fortunately, audio bitrates are a little more straightforward than video bitrates, so my explanation will be accordingly simple.
If you are using AAC as your audio codec as recommended, you’ll likely have the ability to set your audio bitrate to a value between 64 and 160, or some similar number. The higher the value, the better the audio quality, but just like with video bitrate, your available upload bandwidth will constrict just how high you set this number. If you have less upload speed available, I recommend lowering your audio bitrate to help prevent playback issues for your audience.
Wall of Text OP
Quite the wall of text we’ve got here! Armed with all this information, you should be able to go forth and optimize your live stream broadcast, regardless of what application you choose to use. To summarize, Twitch has the following requirements for any data streams its servers ingest:
- Video Bitrate: Max of 3500 Kbps
- Mode: CBR
- Keyframe Interval: 2
- Video Codec: h.264
- Audio Code: AAC or MP3
- Audio Bitrate: Max of 160
Remember that when live streaming, there exists a sensitive interplay between your available upload bandwidth, your PC’s hardware, and your audience’s own network capabilities. Take this article and use it find the perfect balance for your broadcast! I wish you the best of luck, and please be sure to let us know if there are other elements of live streaming you would like to see covered here on the NZXT blog.