# Spout

{% hint style="info" %}
**Windows only** - Spout is a Windows-specific technology for GPU texture sharing.
{% endhint %}

Spout allows OmniScope to receive video directly from other applications via GPU texture sharing on Windows. This provides the lowest possible latency as frames are shared directly on the GPU without CPU copying.

## Overview

Spout is the Windows equivalent of Syphon on macOS. It enables:

* Zero-copy GPU frame sharing between applications
* Ultra-low latency monitoring
* Direct integration with creative applications
* Real-time color grading workflows

## Requirements

* Windows 10 or later
* DirectX 11 compatible GPU
* Spout-compatible sender application

## Supported Applications

Many creative applications support Spout output:

* **DaVinci Resolve** (via third-party plugins)
* **After Effects** (via Spout plugins)
* **TouchDesigner**
* **Notch**
* **Unreal Engine**
* **Unity**
* **OBS Studio** (with Spout plugin)
* **vvvv**
* **Processing**

## Setup

### Connecting to a Spout Source

1. Ensure the sending application is running and outputting via Spout
2. In OmniScope, go to **Input** menu
3. Select **Spout**
4. Choose the Spout sender from the dropdown list

### Settings

| Setting     | Description                      | Default     |
| ----------- | -------------------------------- | ----------- |
| Sender      | The Spout source to receive from | Auto-detect |
| Color Space | Input color space interpretation | sRGB        |

## DirectX 11 Mode

OmniScope 1.11.25 adds improved DirectX 11 Spout support for even better performance:

* Direct GPU texture sharing without format conversion
* Lower latency than OpenGL-based Spout
* Better compatibility with DirectX-based applications

To use DirectX 11 mode, ensure OmniScope is running with the DirectX 11 backend.

## How It Works

1. The sender application renders frames to a shared GPU texture
2. Spout creates a handle that can be accessed by other applications
3. OmniScope receives the texture handle and reads directly from GPU memory
4. No CPU-side copying occurs, minimizing latency

## Performance

Spout provides the best possible performance for local application monitoring:

| Aspect     | Performance                |
| ---------- | -------------------------- |
| Latency    | Sub-frame (< 1ms overhead) |
| CPU Usage  | Minimal                    |
| GPU Usage  | Shared with sender         |
| Resolution | Up to 8K+                  |

## Troubleshooting

### No Spout Sources Visible

1. Verify the sender application is running and outputting via Spout
2. Check that both applications are using compatible DirectX/OpenGL modes
3. Restart OmniScope to refresh the sender list
4. Ensure no firewall is blocking Spout communication

### Black or Corrupt Image

1. Check color space settings match the sender
2. Verify GPU drivers are up to date
3. Try switching between DirectX and OpenGL modes in the sender
4. Restart both applications

### High Latency

1. Ensure you're using DirectX 11 mode if available
2. Check that V-Sync is disabled in the sender if low latency is critical
3. Verify GPU is not overloaded with other tasks

## Tips

* Spout sources update in real-time; use OmniScope's frame rate display to verify smooth reception
* Multiple OmniScope instances can receive from the same Spout sender
* Spout works alongside other OmniScope inputs (you can monitor Spout and SDI simultaneously)
* For the lowest latency, use DirectX 11 mode in both sender and receiver

## Related

* [Syphon](https://docs.timeinpixels.com/nobe-omniscope/sources/syphon) - macOS equivalent for GPU texture sharing
* [NDI Input](https://docs.timeinpixels.com/nobe-omniscope/sources/ndi-r) - Network-based video sharing
* [Screen Capture](https://docs.timeinpixels.com/nobe-omniscope/sources/screen-capture) - Capture any application window
