My Streaming Setup 2020
Given this web site is mostly a place where I write stuff up so I don’t have to remember it, but which may be of use to others as well, here’s a short rundown of my current Twitch streaming setup.
First, what am I streaming, and what features do I want?
- The currently stream PS4 and PC games. I want to do this with high quality, so I opted for a capture device with a separate streaming PC setup.
- I want audio ducking. That is, I want game audio to be reduced in volume while I speak into the microphone, but want full game volume when I’m quiet. Too many streams have very low audio so it doesn’t conflict with their commentary, which makes it hard to follow the story.
- I want to have overlays that show current chat messages and my channel logo, and notifications about new followers.
- I want to have a bot running in the channel with which I or viewers can play sound effects.
Why not PS4 built-in streaming?
PS4 built-in streaming is really nice:
- You just push a button on the controller and you get a menu from which to start/stop the stream.
- It shows the chat onscreen at the right edge of the screen.
- The PS4 has reserved capacities for streaming, so no stutter or slowdown, even without an extra PC and hardware capture card.
- I can just plug in a USB headset and the mic will be used for commentary, and the headphones will play game audio without it being picked up by the headset mic.
- Chat notifications and other private data is automatically blurred, and switching out of the game turns off stream video, so I don’t have to worry about accidentally showing my friends list, PSN ID or private messages containing sensitive data.
Sadly, it has a few downsides:
- Text wrapping in the chat overlay is horrible. I think they just use Japanese-style character wrapping instead of breaking only at spaces between words.
- The chat overlay doesn’t show all Twitch emotes, only an older set.
- There is no way to call up Twitch’s web site to check how the stream sounds or whether there are compression artifacts without an extra PC.
- No support for a bot. I still have to run a PC for the chat bot.
- No game audio ducking.
The Setup
Basic setup
- Elgato Game Capture HD
- OBS
- Elgato Sound Capture
- Microsoft LifeChat LX-3000 headset (w. microphone)
- Streaming PC for Game Capture software, bot.
- Gaming PC resp. PS4 for the actual game (+ TFT Display)
I plug my headset into the streaming PC, and set up OBS so it records the audio from its microphone.
I plug the Elgato Game Capture HD (EGC for short) between the gaming PC and its display. The USB lead from the EGC goes into the streaming PC, which will be running OBS.
If you get a current EGC device, you can just turn on monitoring in OBS under “Advanced Audio Settings” to hear the game audio in the headset as it is being recorded.
Old capture devices with a delay
Given my EGC is the old model that had a delay, that would come confusingly late compared to what I see onscreen. So I use the “StereoMix” device built into Windows on the gaming PC to output audio not just to the display (so it goes into the EGC), but also out the line out port. This is a device that is disabled by default and has to be turned on in Windows’ old Sound Control Panel (by first showing inactive and disabled devices, and then enabling the StereoMix device). The audio is fed via a jack-plug-to-jack-plug cable and a Jack extension cable with in-wire volume controller into the microphone in port of the streaming PC. I then set that microphone in port to output through my headset in Sound Control Panel via “Listen to this Device”, while the streaming PC’s default audio is going through Elgato Sound Capture. This lets me feed all audio I want recorded (i.e. bot audio) into Sound Capture, which I can still hear in my headset, but what I don’t want recorded (the un-delayed audio from microphone in) only ends up in my headset, circumventing Sound Capture and therefore OBS.
For capturing the PS4, I use a little hardware dongle called an “HDMI Audio Extractor” to fulfill the same function. It gets plugged in between the PS4 and its display somewhere, just like the EGC. But again, that’s only needed if you have a capture device that has a delay, which Elgato’s new ones don’t have.
Ducking
OBS’s “Compressor” filter includes support for “sidechain ducking”. Which means you add a Compressor filter to your EGC track by clicking its little gear icon, set its “sidechain/ducking source” audio device to your microphone and it will go quieter when you speak into that microphone. I also increased its “release” duration to 500ms (which controls how quickly the audio will go back to full volume after you start speaking, the “attack”). My Ratio is 32:1
, my threshold -35dB
. You may want to play around a little with the ratio or threshold depending on how loud your microphone and game audio are.
Encoder settings
Since my internet connection’s upstream isn’t that good and I want good quality for my YouTube archive, I’ve set up the streaming PC to record using the GPU encoder at High
quality 1080p with VBR 4000/5000 kbps using nvEnc. For streaming, I use the CPU encoder at fast
quality with x264 at 720p and 1100 kbps CBR.
Since the CPU- and GPU-intensive game runs on the gaming PC, the streaming PC can afford to encode twice and to scale down 1080p to 720p for streaming with no ill effect on game performance. Since one encoder runs on the GPU and another on the CPU, both have ample processing power without one taking away from the other (If you don’t have an nVidia GPU, you can likely use Intel QSV instead of nvEnc).
Bot audio
Elgato Game Capture for Windows comes with a “virtual audio cable” application called Elgato Sound Capture. It has a few modes to run it in. I use its “Music” mode to take the audio the chatbot plays on the streaming PC and make OBS record it (Because EGC only includes the PS4/gaming PC audio).
To do that, I set up Sound Capture’s output device as the default system output device, then tell Sound Capture to play back through the headset. Then I set OBS to capture desktop audio from the Elgato Sound Capture device. That way, I can hear bot audio, as the Streamlabs Chatbot plays all sounds on the default audio output device, but it also gets recorded.
OTOH, any other audio I set up to directly play through the headset (like the un-delayed game audio for old capture devices above) is not recorded.
Other setup miscellanea
Both the PS4/gaming PC and streaming PC are plugged into wired internet, to avoid Wifi issues and get full Gigabit speeds for stream upload.
I also have a Blue Icicle XLR-to-USB adapter that I use with my XLR mic for better audio quality, but I prefer the headset, as it means I can turn my head to check out a noise or the clock and still remain audible. If I ever do webcam streams again (I have a Logitech C270 for that), I might forego the headset and use the mic on a separate microphone stand, and go back to the iPhone headset, which is less noticeable on cam, but I don’t want to use its microphone because I bump the mic with my chin too often.
My microphone stand is one of those full-height ones that you can stand on the floor, because table stands would pick up the noise and vibrations from me typing on the desk.
Disclaimer
The Elgato Game Capture HD was a gift from back when I worked at Elgato (I left in mid-2017). I used to work on the Mac version of Elgato Game Capture. That said, for capturing from the PS4, with overlays and all, a capture device is the only choice, so I think even if I was biased, I am not recommending anything I wouldn’t recommend otherwise.