So the big news this week, if you somehow missed it, is that Amazon bought Twitch. Announced Monday, just under a billion dollars, and the whole gaming internet has been dissecting it since. I'm not going to spend this whole post rehashing the deal itself, half the blogs I read did that on Tuesday and Ill just be repeating them. What I will say, since everyone keeps asking what I think: Im relieved it wasnt Google. I liked Twitch as the weird scrappy thing that grew out of Justin.tv, and I had a bad feeling a YouTube integration was going to mean forced pre-roll ads on every single stream and some kind of content-ID nightmare for anyone playing licensed music in the background. Amazon buying it doesnt exactly thrill me either, but it feels less likely to break the thing I actually use every night.
Which brings me to the actual point of this post. Ive been streaming my own Hearthstone and Diablo 3 sessions on and off since spring, to an audience that peaks at around eleven people (hi Dave, hi the guy whose username is just numbers), and Ive spent enough evenings fighting with OBS settings that I figured Id write down what actually worked for me instead of just complaining about it on Twitter.
Getting OBS talking to Twitch without dropping frames
If youre on Windows and havent paid for XSplit, youre almost certainly using Open Broadcaster Software, and for a free tool it does a genuinely good job. The part that trips people up is the encoding settings, because the defaults are tuned for nothing in particular.
Here's what Ive landed on after a lot of trial and error on my aging i5 laptop:
- Encoder: x264, obviously, since thats the only real option in OBS right now.
- Rate control: CBR, not VBR. Twitch wants a constant bitrate and your stream will look worse if you fight it.
- Bitrate: I run 2800 kbps. My upload cap is only about 3.5 Mbps according to Speedtest (thanks, Time Warner, for advertising 50 down and giving me a joke of an upload), so I left myself some headroom instead of maxing it out and getting buffering complaints in chat.
- Resolution: Im capturing at 1080p but downscaling the output to 1280x720. Nobody watching a 720p stream at 30fps is going to notice, and it takes real pressure off the encoder.
- Keyframe interval: 2 seconds. Twitch is picky about this and if you leave it on "auto" some of their servers will just refuse your stream or transcode it badly.
- CPU preset: veryfast. I know the temptation is to bump this up toward "medium" for better quality, but if youre also trying to actually play the game youre streaming, your CPU does not have that kind of room to spare. I tried "fast" for one night and my framerate in the game itself tanked to something like 20fps. Not worth it.
For the server, just pick whichever Twitch ingest is physically closest to you, theres a dropdown right in your stream settings on the Twitch dashboard listing them by city. I'm on the east coast so I use the New York one, and my latency to it is consistently better than anything further out.
One thing that isnt an OBS setting but matters just as much: close everything else. I had Chrome open with about fifteen tabs one night, doing a stream, and the whole thing chugged. Task manager showed me it wasnt even the game or OBS eating the CPU, it was some Flash-based ad on a page I'd forgotten I had open. Streaming has made me way more disciplined about actually quitting programs instead of just minimizing them, which honestly probably says something about my computer habits in general.
I dont know if the Amazon deal changes any of this for streamers day to day. Probably not for a while, these things take months to actually restructure anything, and Id guess the ingest servers and the dashboard look exactly the same next week as they did last week. But if you've been thinking about trying it yourself now that its in the news again, the barrier to entry really is just OBS, a Twitch account, and about twenty minutes of fiddling with bitrate numbers until chat stops telling you your stream looks like a slideshow.