Discord’s Go Live feature is designed to bring high-quality, high-framerate streams of games or applications at a low enough latency that lets viewers talk and interact with the streamer in real time. Check out our first blog post all about Go Live here to catch up.
To achieve both the quality and speed needed for Go Live, Discord uses its own custom capture and encoding code that integrates with operating systems and video drivers, using WebRTC to transport the video from streamer to viewer.
To keep latency low, WebRTC is constantly tuning target bitrates and frame rates based on what's going on in the transport in real time.
Even with this parameter adaptation, we’ve seen cases where we weren’t happy with the visual quality or encoding performance of Go Live. Sessions using AMD graphics cards seemed particularly worse — we even had a Discord staff member tell us about the choppy and blocky streaming experience on their new PC with a recent AMD video card.
So… how can we fix this? Let’s dive in together and make Go Live the best it can be: