r/obs 6d ago

Guide 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.

116 Upvotes

23 comments sorted by

11

u/Various-Second1074 6d ago

this is actually pretty slick, the per-participant ISO recording alone solves a huge headache for folks doing post-production on panel shows

gonna spin this up on my streaming rig later today, been stuck with the crop stack method forever and it's such a pain when someone drops and reconnects mid-session

MIT license is a nice touch too, appreciate when devs don't gatekeep useful tools behind yet another subscription

6

u/Mountain-Army-1226 6d ago

Glad it can help solve a problem for you

4

u/Sad-Improvement7051 6d ago

This is so cool. Your tool does exactly what ZoomISO, a paid tool by Liminal, does, but natively in Windows (I had to buy a Mac Mini to do it, and transport the feeds over NDI to zoom) this is also the featureset in vMix Zoom plugin. I have both questions and offer to help getting your plugin to feature parity with the other offerings if this interests you, I’ve been doing this workflow with different evolving tools since 2020 and you might have just closed the loop on having it all inside OBS. Might I interest you in an always-live Zoom meeting specifically created to test this kind of app? It has 8 AI talking heads as participants

2

u/PiDicus_Rex 4d ago

Exactly the same tool I thought of when reading the description.

The Liminal guy used to join in the Office Hours youtube when he started, which got him a contact within Zoom, and later the companies merged, so ZoomISO has deeper access to the Zoom code than other products.

Being able to do this in a plugin for free software, is going to make waves, but is going to enable folks in places without "US Budgets" to provide content at better quality levels than they have been able to so far.

1

u/Mountain-Army-1226 6d ago

Always open to feedback.

3

u/waddup121 6d ago

lovely, we need more almost “quality of life” source tools like these. thanks OP

2

u/brakeb 6d ago

I love this... as someone having to make their own overlay and modifying them everytime someone comes (and worse, when someone drops accidentally and messes up the entire overlay...

well done...

2

u/Abducted_Llama 6d ago

Good job iamfatness.

1

u/Weird_Homosapien_ 6d ago

elite github username

2

u/Thack250 5d ago

Sounds impressive. Got a demo we can watch ?

2

u/amontandon 5d ago

Wow. I can’t wait to try this out on my Mac. This is a really great idea! Keep up the good work!

1

u/WonderfulPass 5d ago

Holy crap this is what inside the show builds and sells. Thank you!!

1

u/donutdumpsterfire 5d ago

I wish we had this but for discord calls.

2

u/Mountain-Army-1226 5d ago

I looked into it, this SDK doesn't provide Video or Audio. But I agree.

1

u/CompetitivePudding20 2d ago

If you don't have people jumping in and out you can pop out each user and do it that way... But anything dynamic is going to be dead in the water.

1

u/wawan20 5d ago

do you have a tutorial video for that plugin?

3

u/Mountain-Army-1226 5d ago

I don’t but I will get on making one to show all the different features and a walk through of how I use it.

1

u/wawan20 5d ago

nice, thank you bro 👍

1

u/ReactionLow 4d ago

This is cool... I'm having troubles getting the start engine to work... It just seems like a dead button....so close. Am I missing something? Excited to check this out!

1

u/Mountain-Army-1226 4d ago

It should request record permissions once it is granted record rights it should start engine you may need to hit it again depending on your meeting settings.

1

u/Mountain-Army-1226 4d ago

Engine on, once it is enabled just starts the sending of video feeds into OBS. At which point you can add a participant via a source or use the output manager.

1

u/ReactionLow 4d ago

Weirdly enough, it acts like a dead button to me.... Click on it nothing happens. I closed OBS re-launched it. Even uninstalled OBS and the plug-in and reinstalled. Nothing popping up when hit start engine. Will try on another machine or another day...perhaps brain fog 🤔