Spout Capture

Spout is a real-time video sharing framework for Windows that moves frames between applications through shared GPU textures. WATCHOUT can act as a Spout receiver: a Spout-capable application on the same node and the same GPU publishes a texture, and WATCHOUT picks it up as a capture source. No copy through system memory, no network hop, no compression — sub-frame latency at up to 32-bit float RGBA.

The trade-off is that Spout is strictly local: the sender and WATCHOUT's Runner must run on the same machine and the same GPU. For cross-node sharing, use NDI or Deltacast VideoMaster.

Monitor GPU load. The Spout sender and WATCHOUT share the same GPU and compete for memory and compute. A heavy sender — high-resolution generative graphics, complex shaders, multi-stream output — can starve WATCHOUT and cause frame drops across every cue on the node, not just the captured one. Check GPU usage and memory headroom during rehearsal before relying on the setup live.

Adding a Spout Capture Source

  1. Start the Spout sender application on the node and confirm it's actively publishing a texture.
  2. In the Devices window, select or create a capture device.
  3. In Capture Sources, click Add Capture Source.
  4. Set Node to the same machine the Spout sender is running on. Spout cannot reach across nodes — pick the host that owns the GPU texture.
  5. Click Refresh if the sender does not yet appear in the Stream dropdown.
  6. Pick the Spout sender from Stream. The dropdown lists every Spout sender currently advertising on the node.
  7. Format — usually Auto; Spout publishes the native texture format.
  8. Color Space — pick to match the sender; default Auto is fine for most use.
  9. Sync ModeOff for lowest latency; Maintain to preserve frame timing under load.
  10. Click Add.

When to Use Spout

  • A generative-graphics or VJ application is producing real-time output on the same node and you want WATCHOUT to use that output directly.
  • Latency must be sub-frame.
  • You need uncompressed pixels or higher bit depth than NDI offers. NDI uses high-quality but lossy compression and is fixed at 8-bit; Spout passes the sender's GPU texture through unchanged and supports up to 32-bit float RGBA.

When Not to Use Spout

  • The sender is on a different node — use NDI instead.
  • The sender is on a different GPU on the same node. Spout uses shared-GPU-texture handles and does not support cross-GPU sharing; WATCHOUT logs "Invalid texture parameters (possible cross-GPU usage)" when this happens.

Resolution Behavior

The Spout sender publishes its texture at its own native resolution. See Capture Resolution for how the capture's Width × Height relates to the source.

Spout does not use frame blending. When the sender's frame rate differs from the show's, Spout cues show whichever frame is currently available, without the one-frame blend latency that applies to the other capture types.

Multiple Sources

A Spout source has to be on the same node and GPU as WATCHOUT — it cannot be reused across nodes. When a capture device with a Spout source has to play on more than one node, each node needs its own Spout source bound to its own sender running locally. See Capture Devices → How Capture Devices Work for the full model.

Troubleshooting

For Spout symptoms and fixes (sender not listed, black or frozen image, wrong colors, cross-GPU error), see Capture Issues → Spout.

  • Capture Devices — capture model and multi-node source distribution.
  • NDI — the cross-node alternative when sender and WATCHOUT are on different machines.