> For the complete documentation index, see [llms.txt](https://tractus.gitbook.io/tractus-tools-for-ndi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tractus.gitbook.io/tractus-tools-for-ndi/getting-started/using-ndi-or-hx-outputs.md).

# Using NDI|HX Outputs

{% hint style="warning" %}
NDI|HX output support requires a paid license for use beyond 30 minutes. NDI|HX output is currently supported on Windows (NVIDIA NVENC hardware and OpenH264 software) and Linux (OpenH264 software).
{% endhint %}

Multiview for NDI can produce multiview outputs using the NDI High Bandwidth (SpeedHQ) or H.264/HEVC (NDI|HX) codecs on supported platforms and hardware.&#x20;

## Codecs Supported

### SpeedHQ (NDI High Bandwidth)

The default output codec for Multiview for NDI is the SpeedHQ, or NDI High Bandwidth codec.

### H.264/H.265 (NDI|HX)

As of the latest published version, the following encoders are supported by Multiview for NDI.

| Platform | Codec         | Encoder Type              | Notes                                                                                                    |
| -------- | ------------- | ------------------------- | -------------------------------------------------------------------------------------------------------- |
| Windows  | H.264 or HEVC | Hardware - NVIDIA NVENC   | Requires a compatible NVIDIA card - anything newer than GTX 980 should work fine. Uses API version 12.0. |
| Windows  | H.264         | Software - Cisco OpenH264 | Included as a reference/test. Slow and requires a lot of resources.                                      |
| Linux    | H.264         | Software - Cisco OpenH264 | Included as a reference/test. Slow and requires a lot of resources.                                      |

## Configuring a Multiview Output for NDI|HX Output

## Web UI

<figure><img src="/files/ABpyVvP9f9IMU1pWshVD" alt=""><figcaption></figcaption></figure>

### Set the Encoder Type in the Web UI

1. Select the multiview output you want to edit.
2. Click *Edit Layout*
3. Scroll to the bottom of the page and you will see a section called **Encoder Settings**
4. Select the encoder you wish to use.
5. If the encoder selected is an NDI|HX encoder, choose your bitrate.
6. Click *Save* next to the bitrate fiel&#x64;*.*

The multiview will restart its output using the encoder you have selected.

{% hint style="warning" %}
The OpenH264 encoder uses software (CPU-based) encoding. It is known to be slow and is only included as a demonstration.
{% endhint %}

## HTTP API

### Change Encoder using the HTTP API

Using the API, compose a `GET` request to `http://[host]:8901/viewer/{viewerNum}/encoder/{typeCode}/bps/{bitrateBps}`.

| Encoder Type                 | TypeCode    |
| ---------------------------- | ----------- |
| NVIDIA - NVENC, H.264        | `nvench264` |
| NVIDIA - NVENC, HEVC (H.265) | `nvenchevc` |
| OpenH264 (H.264)             | `openh264`  |
| SpeedHQ (NDI Full Bandwidth) | `speedhq`   |

For example, the following will change the first viewer's encoder to openh264 with a bitrate of 10 megabits per second (10,000,000 bps):

`http://localhost:8901/viewer/0/encoder/openh264/bitrate/10000`

{% hint style="info" %}
When choosing the SpeedHQ codec, bitrate can take on any value as it is ignored.
{% endhint %}

## Technical Notes

* H.264 and H.265 encoders from Multiview for NDI will *only* send intra-frames (i-frames). P-frames and b-frames are not used.
* The OpenH264 encoder from Cisco uses software (CPU) to encode h.264 frames. As it tends to be much slower than hardware, it is not recommended to use the OpenH264 encoder.&#x20;
