# Bridge

{% hint style="info" %}
Download NDI Tools [here](https://ndi.video/tools/download/).
{% endhint %}

**NDI Bridge** enables the interconnection of remote NDI infrastructures, incorporating multipoint capabilities. It delivers local convenience on a global scale as it handles all the complexity of remote sources, supporting all of the benefits of NDI, including:

* **Video Transcoding** for transmitting streams over the internet using H.264[^1] or HEVC[^2] compression
* [**Alpha channel**](#user-content-fn-3)[^3] support (due to h.264 compression's resolution limitations, it is only possible to use HD resolution with an alpha channel or UHD without it. HEVC supports all reasonable resolutions with and without alpha)
* **Multichannel audio** support
* [**PTZ**](#user-content-fn-4)[^4] controls
* **Tally** support
* [**KVM**](#user-content-fn-5)[^5] (Keyboard, Video, Mouse) support
* **Custom metadata**

This system is comprised of three key components:

* [**Host**](#host-mode)
* [**Join**](#join-mode)
* [**Local**](#using-ndi-bridge-locally)

***

## **Host Mode**

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/bx74TNiJx9qKrwQl8Bar/Bridge%201.png" alt="" width="369"><figcaption><p>Screenshot of Host menu on NDI Bridge (Windows)</p></figcaption></figure>

In **Host mode,** you can configure the following settings:

* **Groups to Share:** Share specific NDI Groups defined in the NDI local network by the NDI Access Managers.
* **Bridge Name**: Define a specific name for the connected bridge system. This name helps to identify the sources shared through a remote Bridge.

{% hint style="warning" %}
The Bridge Name specified must be unique.
{% endhint %}

* **Server IP Address**: This field is automatically populated by default on Bridge startup; the application automatically discovers the public IP address of the wan connection. However, NDI Bridge Host/Join can be used inside a local area network or over an existing VPN; a local Bridge Join can connect to a local Host using the physical Host IP Address.
* **Port**: Define the network port used by the remote Bridge Join to establish the connection with the Host through a [port forwarding](#user-content-fn-6)[^6] (NAT[^7]).
* **Encryption Key**: Encryption ensures that only authorized parties can access the connection and data transmission between Bridge applications.&#x20;

{% hint style="danger" %}
The strength of the key, determined by its length and complexity, is crucial to the security of the encrypted data.
{% endhint %}

* **Resolve Public IP and Port**: This option allows the Bridge Application to automatically find and verify the public IP address and the port forwarding configuration.
* **Buffer**: The buffer setting in NDI Bridge is a configurable option that determines the amount of video data the system temporarily stores (or buffers) during transmission. \
  \
  This setting helps manage the data flow and can improve the stability of the video stream, especially over networks with varying latency or bandwidth. By adjusting the buffer, you can find a compromise between lower latency and smoother video playback, depending on the network conditions and performance requirements.

### **Encoder Settings**

Adjust encoder settings to define how signals are shared across the wide-area network.<br>

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/oz0RbvsFywNEiHnzY9oe/encoder%20settings.jpeg" alt="" width="297"><figcaption><p>Screenshot of Encoder Settins menu on NDI Bridge (Windows)</p></figcaption></figure>

**Check Compatibility:** Verifies if the system can support h.264 and h.265 (HEVC) encoding and decoding.&#x20;

{% hint style="info" %}
In Windows 10 and above, the HEVC decoder is an additional license that can be purchased through the [Microsoft Store App](https://apps.microsoft.com/detail/9NMZLZ57R3T7?hl=en-US\&gl=US).
{% endhint %}

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/H2nFEedI4Gm1XXZmD9NU/Compatibility.JPG" alt="" width="525"><figcaption><p>Screenshot of Compatibility Check menu on NDI Bridge (Windows) </p></figcaption></figure>

**Output**: Configure how NDI Bridge manages the stream transcoding:

| Transcoding format | Video codec   | Audio codec                         |
| ------------------ | ------------- | ----------------------------------- |
| NDI HX             | H.264 or HEVC | Opus (Max. 255 audio ch per stream) |
| NDI High Bandwidth | SpeedHQ       | Passthrough PCM Uncompressed        |
| Do Not Transcode   | N/A           | Opus (Max. 255 audio ch per stream) |

***

## **Join mode**

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/4wUxCN80mlLyIEWENudJ/Bridge2.JPG" alt="" width="369"><figcaption><p>Screenshot of Join menu on NDI Bridge (Windows)</p></figcaption></figure>

Through **Join mode**, you can connect your local NDI network to a remote Host. On the menu, you can configure the following settings:

* **Groups to Share:** Share specific NDI Groups defined in the NDI local network by the NDI Access Managers.
* **Bridge Name**: Define a specific name for the connected bridge system. This name helps to identify the sources shared through a remote Bridge.

{% hint style="warning" %}
The Bridge Name specified must be unique.
{% endhint %}

* **Server IP Address**: define the public IP address of the remote Bridge Host.
* **Port**: Define the network port used by the remote Bridge Join to establish the connection with the Host through a [port forwarding](#user-content-fn-6)[^6] (NAT[^7]).
* **Encryption Key**: Encryption ensures that only authorized parties can access the connection and data transmission between Bridge applications.&#x20;

{% hint style="danger" %}
The strength of the key, determined by its length and complexity, is crucial to the security of the encrypted data.
{% endhint %}

* **Resolve Public IP and Port**: This option allows the Bridge Application to automatically find and verify the public IP address and the port forwarding configuration.
* **Buffer**: The NDI Bridge buffer setting is a configurable option that determines the amount of video data the system temporarily stores (or buffers) during transmission. \
  \
  This setting helps manage the data flow and can improve the stability of the video stream, especially over networks with varying latency or bandwidth. By adjusting the buffer, you can find a compromise between lower latency and smoother video playback, depending on the network conditions and performance requirements.

***

## Using NDI Bridge Locally

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/DARyCO77nOF1GgWl8jDG/Bridge3.JPG" alt="" width="369"><figcaption><p>Screenshot of Local menu on NDI Bridge (Windows)</p></figcaption></figure>

NDI Bridge can be used inside a local area network using the Local mode for the following use cases:

**Transcoding NDI High Bandwidth to NDI HX**, which can be useful for distributing NDI streams with a lighter codec (h.264 or h.265).

**Unicast repeater:** By default, NDI transmitters use unicast, and the network interface's capacity limits their output capability. When an NDI stream needs to be shared with multiple receivers, NDI Bridge can be employed to leverage a larger network capacity by using Bridge in local mode. \
\
In the encoding settings, the "**Do Not Transcode**" option can be selected. This allows the NDI Bridge to replicate the requested stream to multiple receivers, overcoming the limited unicast capacity of the original NDI transmitter.

**Here's how to configure Local Mode**:

1. Select the **Local** tab.
2. Enter the [NDI Access Manager groups](https://docs.ndi.video/all/using-ndi/ndi-tools/ndi-tools-for-windows/access-manager) and bridge name.
3. Adjust the [Encoder Settings](#id-1.1.-encoder-settings).
4. Click **Start** to activate the NDI Bridge in Local mode.

{% hint style="info" %}

#### An NDI Bridge executable can also be launched using the following [command line arguments](https://docs.ndi.video/all/using-ndi/ndi-tools/ndi-tools-for-windows/bridge/ndi-bridge-automation).

{% endhint %}

***

## Troubleshooting

{% hint style="success" %}
To troubleshoot common issues hover your cursor over the yellow exclamation point for a tool tip of the issue
{% endhint %}

<figure><img src="https://3444609009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDO9LSaUxLOBIgPjyrjR1%2Fuploads%2FBJnH31Dj05txpbr6x7jy%2Fimage.png?alt=media&#x26;token=a5d9aa24-3d44-4ac1-b85b-32ebb3c819a3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3444609009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDO9LSaUxLOBIgPjyrjR1%2Fuploads%2FDYzkZNg0xVYGD2cjRdbJ%2Fimage.png?alt=media&#x26;token=e5d66faa-c59f-4db2-82f3-b368622fb7f9" alt=""><figcaption></figcaption></figure>

[^1]: Advanced Video Coding (AVC), also called **H. 264**, is the most common video compression standard used today. AVC/H. 264 can encode high-quality video at lower bit rates than older compression standards.

[^2]: High Efficiency Video Coding (**HEVC**), also known as H.265 and MPEG-H Part 2, is a [video compression standard](https://en.wikipedia.org/wiki/Video_coding_format) designed as part of the [MPEG-H](https://en.wikipedia.org/wiki/MPEG-H) project as a successor to the widely used [Advanced Video Coding](https://en.wikipedia.org/wiki/Advanced_Video_Coding) (AVC, H.264, or [MPEG-4](https://en.wikipedia.org/wiki/MPEG-4) Part 10). In comparison to AVC, HEVC offers from 25% to 50% better [data compression](https://en.wikipedia.org/wiki/Data_compression) at the same level of [video quality](https://en.wikipedia.org/wiki/Video_quality).

[^3]: The **alpha channel** is a color component that represents a color's degree of transparency or opacity (i.e., the red, green, and blue channels). It determines how a pixel is rendered when blended with another.

[^4]: **PTZ** is an abbreviation for Pan-Tilt-Zoom, normally applied to cameras that can pan, tilt, and zoom.

[^5]: **KVM** stands for “Keyboard, Video (monitor), Mouse.” The main function of a KVM switch is to control, switch between, and manage multiple PCs or servers via a single keyboard, monitor, and mouse (also referred to as the 'console').

[^6]: **Port** **forwarding** in a network router or firewall is a technique used to direct incoming internet traffic to a specific device or service within a private local area network (LAN). It is commonly used to allow external devices to access services hosted within a private network.

[^7]: Network address translation (**NAT**) is a method of mapping an IP [address space](https://en.wikipedia.org/wiki/Address_space) into another by modifying [network address](https://en.wikipedia.org/wiki/Network_address) information in the [IP header](https://en.wikipedia.org/wiki/IP_header) of packets while they are in transit across a traffic [routing device](https://en.wikipedia.org/wiki/Router_\(computing\)).


---

# 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/ndi-tools/ndi-tools-for-windows/bridge.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.
