How we Achieved High Quality Streaming Video for Remote Team Bonding!
We wanted to celebrate the holidays with our remote team by hosting a video conference and playing a few rounds of Jackbox. This was way harder than we imagined!
* High quality in this case means a stable framerate and minimal pixelation. Basic screen sharing/presentation modes produce an almost unusable video stream for a shared gaming experience.
What you’ll need:
- A computer with separate audio i/o jacks or a USB dongle/hub with separate audio i/o jacks to run all the streaming software
- A second computer for joining the video meeting (recommended)
- A 3.5mm male-to-male audio aux cable (if your computer doesn't already have separate audio jacks for input/output)
- OBS Studio app with the OBS VirtualCam Plugin
- Jackbox (or any party game that you can run on your computer)
Displaying the game screen
Before setting this up, I decided that I would use my primary laptop for joining the video conference as myself, with a secondary PC laptop to handle streaming the game screen.
I already owned Jackbox for Playstation, so I could just stream the game onto my desktop using the Playstation Remote Play, but you could stream pretty much any window that can be displayed on your desktop. Trying to share this window as a presentation results in a poor video quality and dropped frames, but streaming to a third party site should improve the video quality.
Using the OBS Studio app, I tried streaming to Twitch, Youtube, and Discord, but they all introduced a latency of about 5 seconds, even with “Low Latency” mode turned on. This was too much latency even when playing a game like Jackbox – I wanted the game screen to respond to people’s inputs as close to real-time as possible.
I found that setting up the game screen as a virtual camera feed would eliminate almost all of the latency while maintaining a decent video quality and framerate. OBS Studio has a Virtual Camera plugin that lets you take whatever is being captured in the OBS video stream and output it as a webcam source. This allowed me to broadcast the game as a participant’s webcam feed without having to mess around with Presentation mode or requiring other participants to go to a link to see the video, all they had to do was show up. In our events, we use Google Meet, but this should work with other video conference software.
Once we have a basic set up in place to broadcast our game screen, we want to optimize the output so that we’re not using more resources than needed. There’s no need to output a 1080p video stream when Google Meet can only send and receive a maximum of 720p resolution video.
From the OBS settings, we want to make sure that the following options are set:
- Bitrate: 2500 Kbps
- Keyframe Interval: 2
- Preset: Low-Latency Performance
- Base Resolution: 1280x720
- Output Resolution: 1280x720
Configuring the audio feed
Everyone should be able to hear the audio coming from the game without drowning out our conversations but setting up the game audio as the input source for the mic required a bit more configuration. Most operating systems don’t really let you route the audio output directly to the mic input without third party software or hardware.
To do this simply, I used a USB-audio dongle that had separate jacks for input and output, and a 3.5mm audio cable to route the audio output into the mic input. The USB dongle is not needed if your computer already has separate jacks for headphone audio and mic input. You just need to feed the output audio from the headphone jack directly into the mic input jack. When this is all set up, we just need to configure Google Meet to use these as the audio input/output sources.
An important thing to make sure of is to prevent audio coming from other participants in the conference from feeding back into the output. Thankfully, Windows lets you control sound levels from individual apps, using the built-in Volume Mixer, so all I had to do was mute all incoming audio from the browser.
Setting the mood
Now that we have a video stream set up to broadcast the game, we can start dressing up the presentation. OBS makes it easy to add all sorts of graphics and overlays to your video feed.
Along with some found clipart, our graphic designer Lizzy created some great holiday-themed, Iggy-branded background images for us to use. For the snow effect, twitch.center (https://twitch.center/snow) generously provides a free, customizable browser based source for adding a snowfall effect that works with OBS.
With the current audio configuration, we can broadcast all audio coming from the desktop, including music players, and control their volume levels individually using the built-in Windows Volume Mixer. This allows us to play some light, unobtrusive background music as people entered the video conference.
Once everything was set up, we tested it out, with help from another team member, to make sure that volume levels weren’t too loud and that we were able to hear each other over the audio playing from the stream.
Even though our celebrations this year have been taking place in virtual spaces, taking the time to prepare and create smoother experiences for everyone helps make these celebrations feel a little bit more special.