You'll probably need a separate instance of OBS for each one. You can do that, and keep them from complaining about each other, with the
--multi
flag on the command line. So:
obs
becomes
obs --multi
Once you have that, it's almost necessary to also tell each one which settings to load, so they don't run over each other when (not if!) you forget to change each one manually:
obs --multi --profile "Profile 1" --collection "Scene Collection 1"
obs --multi --profile "Profile 2" --collection "Scene Collection 2"
etc.
The names must match *exactly* what you call them in OBS, and they must be in quotes. Otherwise, it probably won't find a match, which puts an error message in the logfile, and it'll be as if you didn't specify at all, which loads the last one that it remembers using. That could be the right one by accident, or it could be a different one.
There are lots of other things you can do on the command line as well.
obs --help
in a terminal to see all of them. :-)
I have this in a Linux bash script, for example:
Bash:
obs --verbose --unfiltered_log --disable-updater --multi --studio-mode --profile "$OBS_PROFILE" --collection "$OBS_PROFILE" --startvirtualcam > /dev/null &
PID_MASTER=$!
sleep 10
obs --verbose --unfiltered_log --disable-updater --multi --studio-mode --profile "Meeting_Slave" --collection "Meeting_Slave" > /dev/null &
PID_SLAVE=$!
sleep 10
and later in the same script, after waiting for my okay to tear down:
Bash:
kill -TERM "$PID_SLAVE"
sleep 5
kill -TERM "$PID_MASTER"
sleep 5