In OBS, add a new "Source". Which choice you use will depend on your operating system, but on macOS they're using the built-in APIs in the OS to do the captures. I think on Linux and Windows it's "Application Capture" or "Window Capture". Choose your Zoom meeting window. Mess with the size/position as you please, and hit record. The OOBE setup that OBS takes you through on first launch should choose reasonable settings for output and audio pickup, but do a test recording first in your Personal Room and see if its picking up everything right. At least on Linux/Windows I don't think anything special needs to be done to pick up Desktop Audio. On macOS, you might need to add a "macOS Audio Capture" source as well.
I use OBS all the time in the opposite direction, using the Virtual Cam plugin to serve video and content to a Zoom share. I have kinda draft of a walkthrough of my setup, with some explaination of like, the hierarchy of things and terms in the UI and how it all mixes together, that I haven't published but if there is a dearth of good basic setup docs for stuff it might light a fire under my ass to actually publish what I have and add some stuff for recording.
I'd love to hear more about your setup. The last time I tried messing with virtual webcams on macOS, most of the OSS options were still using the deprecated DAL API, which stopped working in Sonoma (without setting a `system-override` from Recovery Mode).
Do you know if your setup is using the new CMIO APIs? Or did you need to set the `legacy-camera-plugins-without-sw-camera-indication` override?
I believe the old DAL stuff is gone, maybe somewhere around version 30? I used to have awful crashes all the time, either Zoom's capture host process (caphost) would crash, necessitating completely restarting the app, or OBS would crash. Now it just installs a camera extension, so yes, I believe it's all on the CMIO APIs.
I am mostly broadcasting the desktop view of a second or third computer on my desk, plus slide decks, graphics, etc. I hate Zoom's clunky screen picker UI and never want to accidentally share plaintext secrets or PII to the attendees by choosing the wrong window or absentmindedly moving a window to a shared monitor or something, so I got around that by just using OBS as a switchboard, and never having production data on my test computers. One is hooked up to an Elgato Neo capture device over HDMI, the other when required over a BMD Intensity 4K on an eGPU dock. Slide decks are the only data from my presenter computer ever shared, but via a 'macOS Screen Capture' source. I have a few scenes with text only too for info/time stuff. It's great being able to slap some text over a scene, or have two computers up at once in a half-and-half arrangement. Plus plugin support (used to capture from the BMD from a PC tower and send the video to my presenter computer over NDI when an older elgarbo capture card shit the bed), audio and video filters/effects, goddamn shaders, sky's the limit since OBS is so extensible. I've done in person presenting and still used OBS to generate a fullscreen projector of the program output.
I also personally have always found the "presenter awkwardly clicking around through an un-played Powerpoint" to be really unprofessional. I can hide all of that messy stuff and not just a bunch of dead air.
Right now I'm working on getting an Adafruit Macropad to talk to an ESP32 over UART so I can build a wireless streamdeck that doesn't require any shitty bloated control software. The ESP32 would then send commands/get statuses from the Websockets server and send em back to the Macropad so it can update the screen. This would be impossible to do with Zoom since the app isn't scriptable (on macOS most AppKit UI can be automated with AppleScript) and they only engineer for the lowest-common-denominator use cases.
Complicated interaction with macOS Sequoia though. I’m on apple silicon and trying to capture on a multimon setup (although only capturing one screen) and the capture freezes painfully often. Going to window capture helps but doesn’t eliminate the problem. Seems to be related to ScreenCaptureKit. I’ve tried a lot to debug it but so far failed.
I use OBS all the time in the opposite direction, using the Virtual Cam plugin to serve video and content to a Zoom share. I have kinda draft of a walkthrough of my setup, with some explaination of like, the hierarchy of things and terms in the UI and how it all mixes together, that I haven't published but if there is a dearth of good basic setup docs for stuff it might light a fire under my ass to actually publish what I have and add some stuff for recording.