Back in December, I found Twitch and fell in love with livestreaming. It was amazing watching people code in PowerShell with blinged out profiles and cool cut screens. Whaaat, this is a thing? I love it!
This post is aims to address the things that were confusing for me when I was starting out as well as my current setup.
- Quick intro
- Streaming Hardware
- Streaming Software
- Stream Settings
- Twitch Settings
So first, a bit of the human side: I tested in a non-live stream to see what it’d be like to code in front of an audience. Would I make weird faces and say dumb stuff? Turns out, yes, but my friends enjoyed it so I put it on YouTube for the public and got a warm reception 🤗
Next up, it was time to stream for real! I had a blast. A whole bunch of PowerShell friends from Twitter joined and this is what it looked like.
Next video will have the chat box on that right side. Sorry, lesson learned 😖
So now onto the guide for you based on my past month of learning.
The overall idea of streaming is this: you create an account with Twitch, get your streaming key, plug it into your streaming software, do some additional configurations, then hit Start Streaming. From there, you’ll be streaming, and whoever wants to join your channel can see you stream, albeit after a slight delay (which you can control with latency settings).
The two most common streaming platforms appear to be Amazon’s Twitch and Google’s YouTube. Most of the PowerShellers I know are streaming on Twitch, though PowerShell Security expert Carlos Perez just started on YouTube. This guide will only address Twitch because that’s what I use.
In order to livestream, you’ll need some streaming software. OBS is free and the most popular, and even advanced streamers who can afford paid software use it. Twitch and YouTube have minimal guides, but my favorite guide is Top 10 Best Twitch Streaming Software Options written by Bill R in October 2018.
A nice lil profile
You can also bling your channel, and a lot of people do. This is what my channel looks like today.
I am so relieved I just upgraded my desktop because it seems streaming requires decently hefty hardware. This section won’t be super interesting, admittedly. I love software development and like my hardware simplified.
- Mac mini 2018 with aftermarket 3.2 GHz Intel Core i7 upgrade
- 16 GB RAM
- 250 GB SSD
- 2×27 inch (discontinued) Thunderbolt Displays sporting an Intel UHD 630 w/1536 MB and 2560 x 1440 native resolution.
- Built-in Thunderbolt Display webcam
- Luminoodle TV Bias Lighting x2
My headset is worth a separate mention. The mic is exceptional for a headset; I was recently told during a meeting that it sounded as though I was sitting next to the person. I’ve had this pair for years, the bass is great and love it.
Even better, the Sades SA903 7.1 Surround Sound USB PC Stereo Gaming Headset is only $29.99 on Amazon.
I tried a cheaper $20 version for a backup, but I much preferred the SA903. So now I have this leet black and red set on the way 🎧 For Windows users, the driver issue is weird. Sander Stad got a pair and said the drivers aren’t on the vendor website. You can download them here.
If you find that you are streaming regularly and want to invest in a higher-end setup, check out Jeff Fritz’s post Live Streaming Setup – 2019 Edition.
Also if you get super into streaming, you can get a Stream Deck which is a physical controller with a bunch of macros on it. People even do green screens too, which is covered in Jeff’s post. Maybe I’ll get that for my birthday, but no need for it just yet.
I chose the Open Broadcast Software, otherwise known as OBS, to broadcast my streams. At first, I was so frustrated with it, I decided I’d pay for one that was easier to use, but then it turns out none of them supported mac OS 👎. So back to OBS.
Happy that it turned out that way, tho! Now that I know how to use it, it’s perfectly suitable.
I won’t go over OBS in-depth, I’ll just cover the things I found challenging, mostly because it’s a whole new world and I didn’t know where to find things or what words to use when searching.
Update: I recently received a message from fellow streamer Shawn Melton who said
OH MY GOODNESS….streamlabs is so flippy easy to setup compared to OBS. It even prompts you on some starting widgets to add to your stream and walks you through each section
I heard great things about StreamLabs but could not try it out because it’s not Mac compatible. If you’re interested, give it a go. It’s based off of OBS so the rest of the guide will likely apply a lot.
First, you’ll notice that a lot of people are like “k, gotta cover my screen while i log into my vpn, be back in 5”, then a cool lil cut screen comes up. That’s a Scene. Here’s mine.
Switching back and forth between showing your screen with some sound and showing a silent photo, is as easy as clicking between “Scenes”
Note that this is a pretty straightforward scene. It’s named pause and just has two Sources or elements. The Creative Commons image and then the simple text that says be right back.
And another update: turns out that you may need to add an extra Source to ensure your mic is muted while you are away. Most people recommend muting your mic physically. I suggest a backup software mute as well. Add an audio source then turn it off.
As someone pointed out to me on Twitch during a livestream, make sure that you have no hidden audio sources! This bit me, too.
My scene, which shows things like my video, chat and so on, is setup like this in OBS.
Here are the Sources for this Scene.
- KapChat – if you see chats in other people’s streams and would like a chat stream in your videos, try KapChat. The sample video above does not have the chat yet :( I realized after publishing that other people couldn’t see what we were all were saying so now it’ll be there for future streams.
- PubNub Closed Captioning uses AI to automatically subtitle as you speak.. Cool as hell! Closed captioning enables the deaf and hard of hearing community to enjoy your stream. It also helps with people who’d prefer to watch the code on mute.
- Audio input capture – in this case, I set mine to “USB Audio Device” or “Default” which is how my Sades headset shows up.
- Video capture device – it automatically detected my built-in webcam and boom, that adds a video of me to the stream.
- Specific window – so I’m actually RDPing from a Mac to my Windows lab. This Source is that RDP window, the star of the show.
- Background – is the hammer photo in the background, which I got from Jason Helmick’s blog post
core dev – entire display
When I am developing for PowerShell Core, it’s easiest and best to develop on the Mac itself. Because of this, I share my entire primary display, as I need to show VS Code, GitHub Desktop, PowerShell itself and more.
You can see in the above screen, the only thing that changes is that the relevant Source changes from Specific window to Display Capture
I mostly use the settings that are from Best OBS Settings for Twitch. I had an issue with choppy video tho, and found these settings worked best.
I don’t understand the mechanics, but here’s what works for me, based off of a 2560×1440 native resolution:
- Native Resolution: 2560 x 1440
- Base Canvas Resolution: 1920 x 1080
- Output (Scaled) Resolution: 1280 x 720
This is important: even though I have 7MB up and a decent setup, my stream started clipping any time my output resolution went above 1280 x 720. So if you think your internet is just weak, try lowering your output resolution.
But really, dig into Best OBS Settings for Twitch and personal testing for fine tuning. Be sure to give your stream at least 10 minutes to crap out.
Recording locally with OBS is a great way to test how your local configs sounds and see how will look when you’re streaming. Just hit Record instead of Stream. I also saw that you can test your stream with Twitch’s inspector but I haven’t played with that yet.
So now that you’ve got your streaming software ready, let’s spruce up your Twitch channel.
First, to setup your avatar and banner, go to your profile. The banner is what appears at the top when you click someone’s avatar/screenname when visiting their channel. In my profile, it’s a picture of my office.
Note that the banner isn’t immediately visible when you visit a profile. It appears only after you click the user’s avatar.
Next to name your stream (some people update this each time, some leave it for good. The name of mine right now is powershell and chill), hit up your Dashboard Live settings
To add a Video Player Banner, go to your Dashboard Settings. On my channel, the Video Player Banner is the PowerShell Hammer.
The lil sections at the bottom of people’s channels are called Panels. You can add your own informational panels by clicking the Edit Panels button.
I found someone’s channel and liked their panels so I saved them and used them on my own channel because I figure panels are reused on twitch. Still not sure if that’s accurate or not but I’m thinking yes 🤔
Edit: Since this screenshot was taken, I’ve added three extensions. So this section can do text or image panels or extensions. Both are easy to config.
Panels are a popular thing to customize and you can even download packs of them. nerdordie.com has a Panel generator. OMG, and they even have a Retro Wave Panel Package!
Chat Rules and Moderation
You may notice when you go to most channels, they have Chat Rules. The Chat Rules can currently be found on the Moderation Settings page under Channel Privileges. My chat rules are don’t be a d:\
From the Moderation Settings, you can also block specific terms and phrases. If you’d like a friend to be a moderator, you can add them as one to the Roles page.
I ban a whole lot of stuff, including non-friend raids because I just wanna PowerShell and chill, yenno?
Archiving to YouTube
- Navigate to Video Manager from the menu to access the list of videos you have created.
- Select Past Broadcasts and More.
- Select Export. Select a title and any settings you want to add.
- Set the privacy options, Public or Private.
- Select the Export button.
Due to copyright issues, you can’t just stream any music. Twitch will literally silence portions of your video and YouTube also barks if you play copyrighted stuff or if their algorithm messes up.
I’m not a huge fan of sharing music within my stream; it subjects portions of your video to be potentially muted and, even if you’re saying great stuff, people may still leave the stream because the music drives them crazy.
OBS blank/black screen
Using an laptop with Nvidia GPU to livestream and get an OBS black screen? This solution totally worked for Sander Stad who ran into the same issue.
Here are some handy links.
I plan to write a follow up post once I learn more about things like the benefits of subscriptions, affiliations and cool features like streaming to both Twitch and YouTube. Hope to see you soon on Twitch! 👩💻