# Using OBS Studio as a Commentary System

Recently, I was involved in a live sports video production where I needed to set up a commentary station. It was nothing unusual, as I have used many Dante commentary stations in my NDI productions. However, this time, I wanted to find a solution where a single device could offer the audio functionality of a commentary station and receive video feedback from the production, thus avoiding connecting two devices with two network cables.

I created this project using a small Windows computer and OBS Studio. In this tutorial, I will explain how to create your own NDI commentary station with these simple tools.

### What you need to complete this project:

#### Hardware

* A Windows computer. I used the **LattePanda 3 Delta**.
  * <https://www.lattepanda.com/lattepanda-3-delta>. This computer is compact, powerful, and very affordable.
* An audio interface with **Side Tone** functionality.&#x20;
  * This feature is essential in a commentary station, as it allows the commentator to hear themselves without delay, helping them avoid straining their voice in a noisy environment. I used the **Focusrite Vocaster Two** audio interface.
  * <https://focusrite.com/products/vocaster-two>
* A control surface to manage the commentary station functions. The **Elgato Stream Deck** is a great choice.
  * <https://www.elgato.com/it/en/p/stream-deck-plus-black>

#### Software:&#x20;

OBS Studio and the following plugins:

* Distro AV for NDI support
* OBS Mute Filter
* OBS-Asio

### Typical functions of a commentary station include:

* Transmitting the commentator's microphone signal to the production
* Sending and receiving talkback audio for coordination between the commentator and production
* Receiving and displaying the program video feed from the production with specific audio (usually international audio or an N-1 mix)

### Step-by-step guide to setting up your commentary station:

#### Step 1

Install the drivers for your audio interface on your Windows computer. ASIO driver support is preferable.

#### Step 2

Install NDI Tools.

#### Step 3

Download and install OBS Studio from this link: <https://obsproject.com/>

After the installation, OBS will prompt you with some options

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/5XzteoV1DtXN5Bj5kTPc/image.png" alt=""><figcaption></figcaption></figure>

No specific selections are necessary as we will not be streaming or recording. You can click **Cancel** and proceed.

#### Step 4

Set the video format in OBS to match the video production format, which in my case is **1080 P50**.&#x20;

Go to **Settings** and then **Video**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/gWsBnwCKD3RA56xDcKVj/image.png" alt=""><figcaption></figcaption></figure>

#### Step 5&#x20;

Download and install the necessary plugins:

* Distro AV to add NDI support to OBS Studio - <https://github.com/DistroAV/DistroAV/releases/download/6.0.0/distroav-6.0.0-windows-x64-Installer.exe>
* ASIO drivers support for OBS - <https://github.com/Andersama/obs-asio/releases/download/v3.2.1f/obs-asio-3.2.1-windows-x64-Installer.exe>
* OBS Mute Filter - <https://github.com/norihiro/obs-mute-filter/releases/download/0.3.0/obs-mute-filter-0.3.0-obs27-Windows.zip>

{% hint style="warning" %}
This plugin doesn’t have an installer, so you’ll need to install it manually in OBS Studio by following the developer’s instructions. - <https://github.com/norihiro/obs-color-monitor/wiki/Install-Windows>
{% endhint %}

#### Step 6&#x20;

Now that OBS Studio and the plugins are installed, configure the commentary station:

* Create the audio channel for live commentary:&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/H9UOgImG0UDUW2bQngtS/image.png" alt=""><figcaption></figcaption></figure>

* Select **Asio Input Capture** as the source and rename it to **MIC-LIVE**. Configure this source by selecting the **Focusrite USB Audio** in **MONO** mode with the **Host Microphone** as OBS **Channel 1**. Then, close the source panel.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/thRE4VoFReTiK6ql1rbB/image.png" alt=""><figcaption></figcaption></figure>

* Set up the talkback channel:&#x20;
  * Select **Asio Input Capture** again and rename it to **MIC-TALKBACK**. Configure this input the same way as **MIC-LIVE**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/1ugrVBReEAVn1pzw0V0C/image.png" alt=""><figcaption></figcaption></figure>

* Add the intercom (talkback) audio channel from the production:&#x20;
  * Select **NDI® Source** as the source and rename it **INTERCOM**. In the configuration panel, select the NDI source the director or production team will use to communicate with the commentator. In my case, this source is generated by a computer named **PRODUCTION-PC**, and the NDI stream is called **TALKBACK\_TO\_COMM**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/LU2KXvw8pGU4WnoBctq3/image.png" alt=""><figcaption></figcaption></figure>

* Add the NDI feed the commentator will view, called **PGM\_MIX\_MINUS**, also generated by **PRODUCTION-PC**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/8zvMUjPZLboYHK0A8tmJ/image.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/zBGlRayhKvC5WjQtrurU/image.png" alt=""><figcaption></figcaption></figure>

#### Step 7

Organize the audio workflow:

* Select the **MIC-LIVE** source and click on **Filters**.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/N7vxjg9xrj6AxYzghALD/image.png" alt=""><figcaption></figcaption></figure>

Add the following filters:

* Discard Audio by UI&#x20;
* Dedicated NDI® output (Audio Only)

&#x20;Configure the NDI stream as **MIC-LIVE**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/zzuvzhpsBtMR5wFo7dcy/image.png" alt=""><figcaption></figcaption></figure>

* Repeat for **MIC-TALKBACK**, naming this stream **MIC-TALKBACK**.
* The **Discard Audio by UI** plugin lets users control the audio channel to broadcast commentary or talk with production. It ensures that muting the audio channel in the mixer also mutes the NDI output.

#### Step 8

Route the **PGM** and **INTERCOM NDI** sources to the commentator’s headphones:

* Ensure the Windows audio interface is the same as used in OBS.
* In OBS Audio Mixer, under **Advanced Audio Properties**, enable monitoring for the **PGM** and **INTERCOM** channels.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/99JuFl51m15n7geyEllE/image.png" alt=""><figcaption></figcaption></figure>

#### Step 9&#x20;

Customize the OBS Studio interface:

* In the **Docks** menu, disable **Scenes**, **Sources**, **Scene Transitions**, and **Controls**.
* Hide the **Desktop Audio** source in the audio mixer as it’s not needed.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/6ACZl5Dba45XTIdPHtRH/image.png" alt=""><figcaption></figcaption></figure>

Then, move the audio mixer to one side of the interface. Changing the layout direction gives more space to the preview window showing the **PGM** return feed.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/SpIxnZTXLxDoFlXBGmyD/image.png" alt=""><figcaption></figcaption></figure>

**Step 10**

Set up and configure the **Stream Deck** and **OBS Studio plugin** to manage the **LIVE**, **TALKBACK** channels, and **PGM** and **INTERCOM** levels.&#x20;

* Create a **TALKBACK** button that mutes **MIC-LIVE** and enables **MIC-TALKBACK**, using the **Multi Action Switch** function.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/8FoouiJGGBBhJe1LEVyp/image.png" alt=""><figcaption></figcaption></figure>

First action disables **MIC-LIVE** and enables **MIC-TALKBACK**, and the second reverses the process.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/3Cb7ODT1jat776UM94Of/image.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/7BXVc3V0jUH2lu5iozlb/image.png" alt=""><figcaption></figcaption></figure>

* Add a **Push to Mute** button for the **MIC-LIVE** channel for a **cough button**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/K51AKCHFcPC6UutG544a/image.png" alt=""><figcaption></figcaption></figure>

* Add a toggle mute button for **MIC-LIVE**.

<figure><img src="https://3444609009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDO9LSaUxLOBIgPjyrjR1%2Fuploads%2F0982mqUpItjTSr7WkXDe%2Fimage.png?alt=media&#x26;token=6c970721-482c-4638-848a-041cb44ad0bb" alt=""><figcaption></figcaption></figure>

* Use two rotary controls to adjust the **PGM** and **INTERCOM** channel volumes.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/1jRRHy7Sp132LhdW0YmY/image.png" alt=""><figcaption></figcaption></figure>

And that’s it! You now have a fully functional commentary station with NDI.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ndi.video/all/using-ndi/using-ndi-with-software/using-obs-studio-as-a-commentary-system.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
