以前、OBSに組み込まれている仮想カメラ機能はopencv-python
を含むOpenCVで使用できませんでした。代わりにOBS-VirtualCamを紹介する方法が各所で紹介されています。なおプラグインはOBS Studio 28.0+に対応するためにFenrirthviti/obs-virtual-camから以下にフォークされています。
この問題はすでにOpenCV側で解消しているようです。次のコードでビルトイン仮想カメラが利用可能なことを確認できます。
OBS Studio 30.0.2
> py -3.12
Python 3.12.0 (tags/v3.12.0:0fb18b0, Oct 2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.8.1'
>>> cap = cv2.VideoCapture(2)
>>> while True:
... _, img = cap.read()
... cv2.imshow("", img)
... if cv2.waitKey(1) == 113:
... break
...
ただし、ビルトイン仮想カメラはOBSをいくつ立ち上げても一つしか開始できません。複数の仮想カメラを利用したい場合はこれまで通りプラグインを利用する機会もありそうです。