OBS is excellent at the middle of the job — scenes, transitions, layout, recording, streaming. It is weakest at the two ends: getting good sources in on macOS, and getting a clean programme feed back out to anything that is not a streaming platform.

Both ends are fixable, and neither fix involves pointing a camera at a monitor.

Getting sources in

Display Capture: the blunt instrument

OBS’s macOS Screen Capture source can grab a whole display, and it works. It is also how notifications end up on a stream, and how a moved window turns a carefully cropped scene into a shot of the desktop.

Recent OBS versions can capture a specific window or application using ScreenCaptureKit, which is a significant improvement — the capture follows the window rather than a rectangle. Use that in preference to display capture whenever the target is a single window.

Two things to know about it:

  • It needs Screen Recording permission, and that grant breaks in specific ways after updates and rebuilds. The permission prompt that stops your show covers the diagnosis.
  • Window capture stops updating if the window is minimised. Occluded is fine; minimised is not. This surprises people who tidy their desktop mid-show.

Syphon input: the better route for other Mac apps

If the source is another application on the same Mac, OBS can take it as a Syphon source rather than capturing its window. That is a GPU texture hand-off: no encode, no subsampling, full-range RGB.

For anything that is text or hard-edged graphics — a scoreboard, a browser dashboard, lyrics, a generative patch — this is visibly better than window capture and considerably better than a virtual camera. Resolume, MadMapper, VDMX and TouchDesigner all publish Syphon natively, and SpectraBridge publishes anything else that only has a window.

OBS’s Syphon support arrives via a plugin rather than the core build, so check that it is installed and matches your OBS version — a plugin built for the previous major release will silently not load.

What to avoid: the virtual camera round trip

A common pattern is to publish a window as a virtual camera and take it into OBS as a video capture device. It works, and it costs you the camera pipeline: 8-bit subsampled colour, a device that may or may not survive the next macOS release, and an extra buffer of latency.

If a Syphon path exists, take it. Reserve virtual cameras for the direction they are good at — getting OBS’s output into a conferencing app that has no other input.

Cameras and capture cards

USB webcams into OBS on macOS are fine and buffer more than you would like — two or three frames is normal. If latency matters, an SDI or HDMI capture card is a meaningful improvement at the front of the chain, where it compounds through everything downstream. The latency breakdown has the arithmetic.

Getting a clean feed out

This is where OBS on a live show usually needs help. Streaming out to a platform is well covered; getting programme out to a wall, a switcher or a second machine is not.

NDI output

The NDI plugin gives OBS an NDI output — programme, and optionally individual sources. Anything on the network with NDI input can take it.

Notes from using it in anger:

  • Encode happens on the OBS machine, which is already encoding for the stream. Two encodes on one machine is real load; watch for it before you discover it.
  • Match the frame rate to the show, not to OBS’s default. A 30fps OBS canvas feeding a 50Hz house is a judder problem you will chase elsewhere.
  • Name the output for the rig. It appears in a source list shared by every machine on the network, and will be read by people who did not build it.

Syphon output

If the destination is on the same Mac — a mapping tool, a recorder, another compositor — a Syphon output avoids the encode entirely. Same reasoning as the input side, in reverse.

SDI out via a DeckLink

OBS supports Blackmagic output devices directly, and for feeding a switcher or an LED processor this is the most predictable path in the building: uncompressed, no network, a short fixed list of modes that either lock or do not. The DeckLink article covers the four things that stop it locking.

Virtual camera out

OBS ships a virtual camera, and this is the one place a virtual camera is clearly the right answer: getting a produced OBS programme into Zoom, Teams or Meet, none of which will take NDI or Syphon. Accept the subsampling; there is no alternative.

Canvas and output settings that matter for live work

Three settings people leave at defaults and should not:

Base canvas resolution. Set it to what the show is, not to your monitor. If programme is going to a 1280 × 640 LED wall, consider building the canvas at that and letting the stream scale, rather than building at 1080p and letting the wall scale. Whichever resample you cannot avoid, choose where it happens.

Colour format and range. Under Advanced, OBS defaults to NV12 limited range — correct for streaming, wrong if programme is going to a full-range destination. Mismatched range is why blacks look grey on the wall and correct in the stream. Set it deliberately and note which way round.

Frame rate. One number for the whole show. In Australia, 50 if there is a hire camera package; 60 for a Mac-and-projector corporate job. Not both.

A typical hybrid rig

Corporate event, streaming and an in-room wall, one OBS Mac:

  1. Presenter cameras in over SDI on a capture card.
  2. Slides in as a Syphon source — a presentation app on the same Mac, published by SpectraBridge. Full-range, so the text is sharp.
  3. Remote contributors in over NDI from their own machines.
  4. OBS composes programme.
  5. Out to the streaming platform as usual.
  6. Out over SDI to the LED processor — or as Syphon into SpectraMap if the wall needs its own canvas geometry rather than a copy of programme.

The pattern to notice: Syphon inside the machine, NDI between machines, SDI to hardware, virtual camera only where a conferencing app forces it. That division is the whole of NDI or Syphon?, and it holds in OBS as much as anywhere else.

Originally published on the SpectraRig blog.