How to Improve Your Live Stream Quality and Avoid Dropped Frames!
I think one of the main challenges people encounter when they start streaming is the endless pursuit of stream quality. Now, stream quality can mean a few things. The quality of the content, the production quality, or the quality of the streaming feed itself. While the first two are very important, people aren’t going to stick around your stream if the video is pixelated and or lags every few seconds. So today we’re going to talk about stream quality or actually how to properly encode your stream to improve the quality of your live stream.
Encoders
What are encoders? Encoders basically take whatever you’ve put together in your streaming software, (gameplay, face cam, audio), and compress it to send it out to the internet. This compression part is what takes most of the work for XSplit Broadcaster and it’s a big factor in improving live stream quality. It is either done by your CPU via X264 and is called software encoding or your GPU via NVENC, VCE or Quicksync and is called hardware encoding.
For a long time, X264 was the absolute best at this encoding process, but now NVENC has established itself on newer NVIDIA RTX (and some GTX) GPUs it is able to go toe to toe with it. This is why in the PC Building guide (below), I recommended buying a GPU for encoding rather than an expensive CPU until you know, crypto mining ruined everything.
Resolution and Frame Rate
So you’re probably wondering, what makes the encoder work so hard? Well, the answer is the resolution and frame rate. The higher the resolution and the faster the frame rate means the encoder has to process more images at larger sizes, something that makes a difference when it comes to improving your live stream quality.
With X.264, you need to slow down the preset in order to maintain the image quality for higher resolutions and frame rates. In XSplit Broadcaster you’ll find these presets, very fast, faster, fast, medium, and slow by heading to…
Broadcast > Clicking the cog next to your stream output > Clicking the cog in the Video Encoding section > Encoder Preset
The problem is when you use these presets, CPU usage rises exponentially which will affect your gameplay drastically unless you’re using a 2 PC streaming setup or aren’t streaming gameplay at all.
Alternatively, on hardware encoders, there tend to be chips dedicated only to encoding, which will limit the amount they’ll affect things like your games’ frame rate. If you have to use your CPU for encoding, it’s recommended that you get a CPU with as many cores as possible (up to 32 cores) to try to achieve the slow preset for 1080p 60fps streaming.
The equivalent would be an NVIDIA GPU with the latest NVENC encoder found in the RTX series of GPUs, which will match X264’s medium preset or even outperform it in some instances. You can also use the older NVENC, VCE, and Quicksync for streaming, but you won’t be able to match the performance of the current NVENC or X264…. yet.
Motion and Bitrate
No matter the encoder you choose, what has the biggest effect on improving your live stream quality is bitrate. Bitrate is basically the internet upload budget you set for the video and audio quality output. The higher the better. Thankfully audio doesn’t require too high of an audio bitrate, leaving most of your budget to video. Now, this is where motion comes into play.
The more motion on the screen, be it from the number of frames per second or just things happening on screen, like supers from a fighting game, or rapid movement from a first-person shooter, the more your video bitrate budget is spread thin. That’s why for games with a lot of motion it’s generally recommended to set your stream resolution and/or FPS lower.
Now your bitrate is determined by two factors, your available internet bandwidth, and the streaming platform. For streaming platforms like Twitch, Twitter, or Facebook they all limit the available bandwidth, usually around 6000 Kbps. Why do they do this? Well because the larger the amount of bandwidth used, the higher their bills are.
Your available bandwidth is determined by your internet connection. You can find this by doing a simple speed test. This can vary during high traffic periods, but generally when setting your bitrate try not to use more than 70% of your available bandwidth so that you won’t have issues with your online games. Also, be sure to connect your stream machine via a wired connection if you can as it can make a huge difference in improving your live stream quality!
The general rule is to set your bitrate as high as your internet connection and the streaming platform allows. If on a limited connection, try lowering your resolution and frame to accommodate for the lower bitrate.
Lag, Stuttering, Frame Drops
Lag is an interesting term, especially when it comes to streaming, but generally, there are two types of lag that can happen with encoding. The first type of lag is experienced on the viewer’s end, this is where their stream stutters or lags, sometimes even go offline and back online as well. At your end as the streamer, you can see this problem as well as dropped frames. This usually happens for two reasons.
1) The bitrate was set too high. As mentioned before, do a speed check before setting your bitrate. Now you may have set this bitrate before and it was fine, but as I mentioned, sometimes ISPs have high traffic periods or there’s some network maintenance going on that will affect your overall bandwidth. The best solution is to lower the bandwidth of your stream. If this continues to be a problem, try getting in contact with your ISP.
2) The streaming server is having issues. Main sites like Twitch have dedicated streaming servers for different regions, but sometimes these have issues. The best solution is to go offline and change servers. If this is a recurring problem, do a bandwidth check to determine if the server you plan to stream to is stable before going live.
You can easily change servers on XSplit Broadcaster by going to…
Broadcast > Clicking the cog next to your stream output > under “Server” change Automatic (or whatever server you have selected) to the next closest server to your region.
For Twitch, for example, a good way to determine this is to check here which will list the servers closest to you in order.
The next type of lag can sometimes be seen by the viewers but is usually felt or seen by the streamer if they are playing games. This is generally known as overloading your stream encoder. Basically, you are trying to encode video in a manner that your encoder can’t handle and is very common when encoding with x264. Basically, your PC is fighting for resources from the CPU, which causes frames to drop on stream and performance to be affected on programs running on the PC.
The best way to resolve this is by lowering the encoding settings as we discussed above, the main culprit is usually setting the X264 preset to higher. If that doesn’t resolve it, then lower the resolution and or frame rate.
So to wrap up, for good stream quality in terms of proper encoding, try to use hardware encoders. Know your internet and platform limitations. Lower settings if you’re having problems. We hope this helps you out but if there are any other topics you’d like us to discuss here just drop us a comment on this post!