I’ve been having fun streaming games on Twitch this week, and thought it might be interesting to document my setup in late 2021. The last time I streamed was around 4 years ago, so I was interested to see what had changed in that time. You can follow and watch on Twitch: https://www.twitch.tv/carrot
My short-term goal is to reach the requirements to apply to the “Twitch Affiliate” program — that’s 50 followers, an average of 3 viewers per stream, and 8 hours streamed over 7 days, in a 30-day period. I’m actually quite close to the follower requirement, and over halfway there for the viewer requirement.
Here’s a picture of the setup that I’ll reference throughout the post:
There’s not too much concerning hardware — I don’t have a particularly fancy setup with mixers and extra microphones. I’ll improve things over time, but I’d prefer to at least meet the affiliate requirements before spending any money — these are all things I already had.
The laptop is a 14” MacBook Pro (2021) upgraded with an M1 Max and 32 GPU cores. I’m really impressed with it — it’s fast! It handles a 1080p @ 60fps stream with the
faster preset in OBS Studio (discussed below) just fine. In the past, I tried to use a laptop to stream, but it struggled with anything above 720p.
Just behind the laptop is an Elgato HD60 S+ Capture Card, plugged in to the PS5 and the laptop itself. It captures 1080p @ 60FPS content handily, using HDMI passthrough. In theory, it also does HDR, but that’s not very useful for a livestream. I’ve not noticed any lag in the passthrough and can play twitchy games like Spelunky, where input lag is a (literal) killer. The capture card has good macOS support and is visible to everything as a standard video and audio input source, which is great — you don’t have to use their “Game Capture HD” software at all.
To stream, I’m using OBS Studio1 on macOS from my laptop. I was pleasantly surprised to find that setting this up is very straightforward — it now includes an automatic setup wizard. You connect your account to Twitch, and the wizard runs automatic bandwidth tests and (I’m assuming, but haven’t double-checked) encoding quality tests to benchmark your hardware and choose appropriate encoding settings.
I tried to use the more advanced options with OBS to see if I could do any better, and it turns out the defaults it chooses are basically perfect. The only tweak I made was to change the encoding preset from
faster — trading extra CPU usage for theoretically better encoding quality. I haven’t actually compared these two settings on the stream, and the difference might be negligible, but it made me feel like I’d done something extra.
The only other thing to mention about OBS was that I attempted, unsuccessfully, to get hardware encoding to work. Newer Apple laptops have a built-in hardware accelerator for H264 video, which OBS can pick up as
Apple VT H264 Hardware Encoder in the advanced output settings. In theory, offloading the stream encoding to hardware should result in a massive reduction in CPU usage, leaving more for the game you’re playing. The catch here is that Twitch can only ingest streams which have a constant bitrate, and the hardware encoder simply doesn’t support that. Even constraining the
limit options to 6000kbps (Twitch’s recommendation for
[email protected]) didn’t work, with my stream not going live and showing as “unstable” in Twitch’s inspector tool.
To monitor the stream when I’m live, Twitch has a great tool they call Stream Manager (which I can’t link to — it’s in your Twitch Creator Dashboard). It includes your chat, an activity feed to show you when people follow, and quick actions for things like chat moderation and editing stream information.
Finally, I use Notion2 to make checklists and write game and project ideas. If I don’t write things down immediately, they’re basically lost forever to my brain (which I think is a common trait in neurodiverse people), so having a place at the start to write thoughts down is invaluable. Getting ready to go live is a bit scary which makes me forget things, so it includes “before”, “during”, and “after” sections with basic reminders like power, ethernet, to take breaks, and to publish videos after the stream ends.
I’m pleased with this setup so far, and I’ve been having a lot of fun streaming this week. I’m not sure how achievable Twitch Affiliate status is for me, or if anybody will be interested enough to watch, but I’d like to give it a try.
Next, I’ll figure out a lightweight stream UI, to show things like when people follow, or perhaps the current stream goal (like reaching 50 followers). I really dislike alerts that make noise and take up the entire screen, though, so I’m inclined to make something bespoke that fits the character of the stream — relaxed and respectful.
The laptop is currently just encoding the output of a capture card, so I’ll be interested to see how it handles playing a game at the same time. Minecraft 1.18 is due to launch on November 30th, so I’m planning to try that out on my private Realm.
You can follow me on Twitch to get notified when I go live: https://www.twitch.tv/carrot — thanks for reading, and hope to see you at a stream!
Sponsor me on Patreon to help fund my work on open-source software, and technical write-ups on this website!