Streaming via OBS Studio (WebRTC)

OBS Studio is a free application designed for streaming various types of content directly to streaming platforms. Thanks to CoSMo Software, we have an ultra-low latency WebRTC version of OBS Studio available to SetStream.io users. This version specifically uses WebRTC protocol to deliver a secure, realtime feed to SetStream.

The real advantage of OBS Studio for SetStream users is the ability to have full control over image quality, while maintaining realtime streaming. This is most ideal for post production, where high bitrates and fine-tuning of final images is so important.

Before you begin, you’ll need to download the Windows or Mac version of OBS Studio (WebRTC)

OBS Studio is a very capable and versatile software. You can combine multiple video/audio sources with a customized layout. Because of this, there are a lot of settings you’ll need to familiarize yourself with.

Once you understand the interface and have setup your sources and layout, you’re ready to configure the stream, output, video settings to be optimized for SetStream.

Let’s start with the Stream tab.

This is where you setup the connection between SetStream and OBS.

  • Service: Millicast WebRTC Streaming PLatform
  • Stream Name/Publishing Token: This can be obtained from the “Stream Keys” tab of your SetStream project
  • Codec: Your milage may vary with each codec option. H.264 will be smoother on some computers, while VP8/9 will be smoother playback on others.

VP8 is essentially equivalent to H.264 in quality and is compatible with most browsers. VP9 is similar to H.265 in quality and is only compatible on Chrome, Firefox, Edge browsers currently.

Now let’s take a look at your Output Settings

There are a lot of settings you can adjust here to dial in the encoding to your specific workflow. Refer to the screenshot above as a starting point that works well with SetStream and produces ultra-low latency and high quality.

Bitrate is the most arbitrary setting. You can set this as high as you’d like. Just make sure your network connection and that of your viewers can support a high frame rate. For on-set streaming I recommend 3,000. For higher demand such as a color session, I recommend 5,000 to 10,000.

 

Next up, video settings.

Lastly, let’s talk about the Advanced tab. There are a couple viewing scenarios that you’ll need to be aware of if you’re concerned with color accuracy. This is mostly important for post production and color session. It’s less important for on-set streaming.

If you’re streaming via H.264, you can ignore the Advanced tab.

If you’re streaming via VP8/9 (which we recommend for best color accuracy) You’ll want to know what browser your clients are viewing from because that will determine what to set for ‘Color Range’. If your clients are viewing from iOS (any browser) or Safari on MacOS, set ‘Color Range’ to Full. If your clients are viewing on any other browser or device, set ‘Color Range’ to ‘limited’.

The other thing you’ll want to do in the Advanced tab is change the colorspace to ‘601’. WebRTC expects a Rec601 image. So here is where you set OBS to convert your Rec709 source properly to Rec601 for delivery to SetStream. Don’t worry about the Rec601, this is only during transport. Your client’s Mac Chrome browser will be decoding the video correctly as Rec709 2.2 gamma.

The main thing to note here is that if you’re looking for a 23.976 FPS value, you won’t find it listed. However the “24 NTSC” is in reality 23.976. You’ll probably also want to match your Base and Output Resolution. 1920×1080 is recommended for an HD stream.

This is basically it. There are a lot of other adjustments that can be made, and functions to explore, but those are beyond the scope of this article. If you have any questions, feel free and chat with us from our contact page.