
I made a free OBS plugin that brings each Zoom participant in as their own source — including an auto-laying-out gallery
Zoom won't give you individual participants on its output, so most setups end up as a window capture with crops stacked on top. This plugin subscribes to each participant's raw feed through the Zoom Meeting SDK and hands them to OBS as native sources.
The screenshot is a single source. It lays out everyone who has video and re-flows automatically when people join or leave. Tile ratio (16:9 through 9:16 or custom), gap, margin, background colour or a background source, borders with optional rounding, outer glow, and per-tile crop are all settable. It can also spawn one audio source per participant so everyone gets their own fader.
Other things it does:
- Each source independently follows a fixed participant, the active speaker, a spotlight slot (1-8), or the screen share
- Active-speaker switching with sensitivity and hold time you set, plus manual take/release and exclusions
- Per-participant ISO recording to separate MP4s, with encoders placed automatically across NVENC -> Quick Sync -> x264 within the session budget
- Optional GPU colour conversion (CUDA / QSV / VAAPI / VideoToolbox)
- TCP and OSC control APIs, so Companion or a lighting desk can drive it
- Diagnostics dock with requested vs observed resolution, frame age, and a redacted support-bundle export
Honest state of it: Windows 10/11 x64 only for packaged builds. It configures on macOS and Linux but I wouldn't call those supported yet. Still pre-1.0 — I've been shipping fixes off real 8-person shows all week and there are rough edges. Needs OBS 30+, and you sign in with your own Zoom account.
Free, MIT licensed, source is all there: https://github.com/iamfatness/CoreVideo
Happy to answer anything. If it breaks on your setup I'd genuinely like to know — the Diagnostics dock exports a scrubbed support bundle that makes that easy.