Streaming via OBS Studio (WebRTC)

SetStream supports streaming via OBS Studio using a custom WebRTC version. Download link found below.

OBS WebRTC allows for maximum flexibility, and is the best way to stream high quality, high resolution, low latency, color accurate video. OBS is a powerful tool with many options and settings for custom workflows. But we are going to focus on the basics to get you streaming, with a focus on color accuracy.

Note – There is a bug in versions after 1.3.2 (27.2.4) through 1.5.0 (28.1.2) that affects color rendering.  The bug was fixed in V 1.5.1 (thank you CoSMoSoftware).   Please use either V. 1.3.2, or V 1.5.1 or newer to ensure color accuracy.


First we’ll install OBS, and open it. Once open, we’ll add a source. For our example we’ll add a ‘Blackmagic Device’ from the source list. However you can also add other devices by choosing ‘Video Capture Device’ as your source.

Click ‘OK’ and you’ll be taken to the source properties where you can select your specific Blackmagic device.

scroll down until you see ‘Color Space’ and ‘Color Range’. Sometimes the ‘Default’ setting will make a mistake, so I recommend you select ‘Rec709’ and ‘Partial’, assuming your video source is a standard Rec709 legal signal.

Then Click ‘OK’.

This next step is optional. Most browsers and devices display video in sRGB-2.2 color space. If you’re a colorist that grades in Rec709-2.4, we’ll need to apply this conversion LUT that causes browsers/devices to correctly display your image in Rec709-2.4. Here is a link to download the conversion LUT. OBS uses PNG image files as LUTs. Don’t be confused.

To apply a LUT, we’ll add a filter to the source. Select your Blackmagic Device in the source list and click ‘Filters’.

Now add an ‘Effects Filter’ and ‘Apply LUT’ and click ‘OK’. Then click ‘Browse’ and select the PNG LUT file you downloaded. Then click ‘Close’.

Now that our source is setup, we’ll go to the OBS settings.

We’ll focus on the Stream, Output, Video, and Advanced tabs.

First, let’s go to our SetStream project page, ‘Keys’ tab and copy our Stream Name and Publishing Token.

Now, back in OBS, let’s go to the ‘Stream’ tab in the settings. Here you can paste your Stream Name and Publishing Token.

You’ll also select your Codec. All of these codecs have advantages and disadvantages, but to keep this short, we highly recommend VP8. VP8 is the best compatibility/color accuracy combination.

Let’s move on to the Output tab. Here we only need to focus on Video/Audio bitrate. This version of OBS bypasses many of the encoding options. The bitrate you set is a limit. The actual bitrate will fluctuate based on the video content and your connection speed. For color and post production, we recommend starting at 10000. The bitrate may settle in around 5000. You can set it to 20000 for critical work. For on-set work we typically recommend below 5000 due to the limitation of both the streaming internet as well as internet limits for client devices.

On the Video Tab you can set your canvas and output resolutions. Typically I match these both to 1920×1080.

You can also set the frame rate. Again, match this to the frame rate of your video content. A quick note that ’24 NTSC’ is equivalent to 23.976.

Lastly we’ll make one adjustment to the Advanced tab.

Because most of our streaming codecs are interpreted by browsers and devices as Rec601 colorspace (then converted to sRGB), we have to set OBS to Rec601. This will cleanly convert our Rec709 image into a Rec601 package, which will then get re-decoded correctly by the browser. So in this tab, simply select Rec601 for your colorspace. Everything else can be left alone.

All you need to do now is press ‘Start Streaming’.

Troubleshooting

There are a couple errors whose dialogue can be confusing. If you get either of the two following error messages, the most likely problem are the following:

  1. There is a misspelling in your Stream Key or Publishing Token.
  2. Your project doesn’t have a pass currently activated.

Color Accuracy Notes

Our above recommendations are based on in-depth testing and analysis using both image pipeline capture, and spectrophotometer color patch sampling, all confirmed by trained eye.

We also highly recommend recent Mac laptops, iPhones, and iPads as color accurate viewing devices. Apple has done a spectacular job with consistency in their screens.

Our recommendations and tests were based on using recent OBS Studio WebRTC (27.2.3-m99-2.27) for streaming, and MacOS 12.4, Safari 15.5, Chrome 102.0.5005.61, and iOS 15.5 for viewing. Using older software may affect the results. Please be sure that you’re using the latest OBS WebRTC, and your clients are using the latest software on their devices.

If you want to dive deeper into the color accuracy, see our updated Color Accuracy article here.