What worked for me on Skype, with both preview and real video chat, was deleting the code signing on Skype. This was already posted by OliFrieda earlier, but I think people will appreciate the reason why this works. I'll also repost the commands posted by OliFrieda for your convenience.
I came to this after following a link in other discussions about how various apps were disabling virtual cameras through application restrictions. It turns out that hardened applications can tell the OS that they only want to use libraries signed by Apple, or the same developer. This was stopping the obs virtual camera working.
Deleting the signature from Skype meant that this extra level of security was disabled allowing the obs virtual camera to work.
Should you delete the code signature from Skype. Well, this is up to you. The code signature is providing several security benefits, but on their own, you're not opening up a big hole in your security, and few attackers will look to exploit an unsigned instance of Skype, because it is so rare.
From OliFrieda ( Skype only, see Oli's post for the rest)
I removed the signature from Skype and Teams. Now the preview works, but no output through the network. No one can see my video.
Bash:
# everything executed with sudo
codesign --remove-signature "/Applications/Skype.app"
codesign --remove-signature "/Applications/Skype.app/Contents/Frameworks/Skype Helper (Renderer).app"
codesign --remove-signature "/Applications/Skype.app/Contents/Frameworks/Skype Helper (GPU).app"
codesign --remove-signature "/Applications/Skype.app/Contents/Frameworks/Skype Helper (Plugin).app"
codesign --remove-signature "/Applications/Skype.app/Contents/Frameworks/Skype Helper.app"