Behind the scenes at #oer17- Streaming to YouTube with Open Broadcaster Software (OBS) Studio

I’m still processing #OER17: The Politics of Open, not for a single session but as the collective experience and there is a growing list of blog posts published as a result of this event to digest. This post is slightly different from those as I thought it would be useful to capture the continued evolution of how I live video stream events.
In terms of requirements the list hasn’t changed much from my previous post, but I thought it would be useful to detail the current kit list in case you want to setup something similar. Before going into this I should point out we’ve gone down a consumer level route and you can easily spend a lot more cash on this. Detailing what we use is also an opportunity to say why we use particular devices.

  • Main camera (Panasonic HC­-V750EB-­K) – key thing is HDMI video pass through which lets us take a live video feed from the camera.
  • Second camera (Logitech C920 HD Pro Webcam) – useful for wide shots while changing main camera shot.
  • Main camera video capture (AVerMedia – Live Gamer Extreme (LGX), USB 3.0 Game Capture Card) – HDMI video capture.
  • Presentation video capture (StarTech USB 3.0 Video Capture Device) – allows capture of HDMI, DVI, VGA and component.
  • Cables (various) – this includes a 50m long VGA cable useful for getting the data projector feed to the camera position.
  • External Monitor (Eyoyo 8 Inch TFT LCD Color Video Monitor Screen 1024×768 VGA, BNC, AV, HDMI) – useful for checking there isn’t an issue with HDMI or VGA feeds.
  • Audio mixer (Behringer Eurorack UB502 Mixer) – we usually get a mixed audio feed from the PA/Mixing desk. This could usually be directly fed in as 3.5mm stereo to the camera and then captured via the HDMI. I find a mini desk is useful to control the balance.
  • Laptop (GIGABYTE P35X V5-CF2) – this is probably overkill now and anything with a dedicated graphics card may suit, the P35X V5 has the NVIDIA GTX 980M card.
  • Video mixing software (Open Broadcaster Software (OBS) Studio) – previously we used Wirecast but this was a real processor muncher and doesn’t play nice with Nvidia graphics cards. OBS Studio is open source and the interface is more agricultural but it’s performance is exceptional, more on that below.

Pre-Event Setup

There is a bit of setup we do prior to the event. If you haven’t setup live events before it’s fairly straightforward box ticking. For the case when using OBS Studio we use basic ingestion (usually 720p) and the ‘Other encoders’ option. Nice thing about setting up live events beforehand is we get all the YouTube video pages beforehand and can even embed them in our own site ahead of time.

YouTube Ingestion Setup

There is some setup you can do with OBS Studio ahead of time. OBS Studio allows you to configure scenes. These let you pre configure shots you can cut to such as combining the main camera and presenter desktop. OBS Studio allows you to use different sources including images and videos. There is a lot you can do in building up a scene with layers. For example, by using .PNG image files with a transparent layer we can display title overlays showing who is speaking. Something to keep in mind when setting these up is if you are, like us, putting the audio feed into the main camera for a backup recording and then taking the the audio from the camera over HDMI into OBS Studio you need to include the main camera in all the scenes you want the audio feed included with even if the main camera shot is not needed. For example, with our full screen presenter desktop the main camera shot is included beneath it, but not visible, so we can still include what is being said in the scene. Here is a nice OBS Studio tutorials series if you are interested in finding out more plus there is the official OBS Studio help pages.
I’ve only done approximately 12 hours streaming over two days as part of OER17 but my experience was OBS Studio was rock solid. The only issue I initially had was configuring our video capture cards. In the case of the Avermedia it was initially stating the source was out of range. This was fixed by setting a custom resolution of 1280×720. Each time I started OBS Studio I found I also had to toggle the custom resolution for it to work. With the Startech card the issue was the video capture source name changes each time it’s plugged in. This means I had to setup it up in the scenes each time I started OBS Studio.

Going live with OBS Studio

If you’ve gone live with YouTube events before the process is basically the same, you start your stream and preview from the YouTube Live Control Room. As Wirecast is a supported product there is tighter integration from the software with your YouTube account which allows you to select your streaming event from a list. In OBS Studio there currently isn’t the same level of integration but the process is still fairly straight forward as YouTube is included as one of the pre-configured services. With this the only remaining step is to navigate to your YouTube event Ingestion Settings page and copy the ‘Stream Name’ (random 16 character similar to the one shown in the previous image) as your ‘Stream key’.

OBS Stream Selection

One final piece of setup I do with the stream is crop the presenter desktop source if there is any letterboxing because of presentation ratio sizes (we seem to be in between people using 16:9 and 4:3 in their presentation setup). I’ve included some screenshots from the OBS Studio overview page which shows you how to do this:
OBS Studio Edit Transform
Edit Transform menu:

Overall I was very impressed with OBS Studio. Performance wise it seemed very capable and we were able to stream and also record sessions with our laptop barely hitting 20% of the CPU. I guess other users might find the tools in OBS Studio limiting but for what we need it ticks all the boxes and I can’t wait to use it again at the ALT Annual Conference in September.
[If you would like to see some of the output from OER17 visit the ALT YouTube channel]

chevron_left
chevron_right
css.php