Three methods:
OBS Studio
Get OBS Studio here. Very powerful software. I have not used it. I hear it is easier to set up on Windows than on Mac.
Manycam
Manycam takes a lot of CPU processing. Make sure your computer prioritizes both Zoom and Manycam as explained here.
Manycam can run on the same computer as the Zoom call. It shows up as an alternative camera. To get onscreen titles, use the Text function. See image below.
One issue is that the video processing takes time, so it is a good idea to run the microphone through manycam too, and put an audio delay (~200ms) on it, to keep the audio and video in sync. Experiment to find the delay that works for you.
A useful Manycam feature is to test things out with audio monitoring. Otherwise, it’s difficult to figure out what your mix is going to sound like. (I mix my microphone and music before inputting to the Mac through USB)
ATEM mini hardware
I have replaced Manycam with the ATEM mini hardware box. which my friend happened to own and since they weren’t using it, we are borrowing it. Basically you can have multiple HDMI inputs and combine them into one HDMI out which is then used as the camera for Zoom. Audio is also passed through it and needs to be delayed 5 frames (about 200 ms) to correct for the video delay due to the video processing. The box can do some fancy things, but all I’m doing is superimposing a slightly transparent title on the top of the webcam image. The title comes from yet another computer (connected with an HDMI cable) which displays a Google document with the list of titles. Aside from the top line of the document the rest of the screen is masked out. I do not touch that computer after it gets positioned properly. The Google document can be modified in another window on any other computer in any other house. The top line is what is displayed. The biggest challenge is to move the cursor out of the top line in all the windows where the document is open.
Lots of fun!