OBS の仮想カメラ」として知られるものには2種類ある。

  • バージョン 26 以降で使える OBS 標準機能
    • 標準機能なのでプラグインは必要ない
    • 仮想カメラは1つしか作れない
    • 仮想カメラを開始/停止/設定するボタンが一等地(「コントロール」ペイン)にあって便利
    • 仮想カメラに出力する映像を何にするかを細かく選択できる
    • サポートする色フォーマットは NV12, I420, YUY2
    • OpenCV の VideoCapture で扱えない(真っ黒な画面になる)
  • 以前からあるプラグイン
    • ブラグインを別途インストールする必要がある。OBS バージョン 28 より前と後ではブラグインのバイナリが異なる(28より前/28とそれ以降
    • 仮想カメラは最大で4つまで作れる
    • 開始/停止/設定は「ツール(T)」メニューの中にある
    • 出力する映像は標準機能で言う「インターナル」の「プログラムを出力」のみ
    • サポートする色フォーマットは YUY2 のみ
    • OpenCV の VideoCapture で扱える

上述のとおり、一長一短がある。

標準機能の方は OpenCV の VideoCapture では扱えない。この問題に関して「標準機能の方は RGB 出力に対応していないから」と説明している記事が見受けられるが、これは部分的にしか正しくない。実際、以前からあるプラグインも RGB 出力に対応していないが OpenCV の VideoCapture で扱うことができるし、大抵の仮想でない Web カメラも同様である。OpenCV のリポジトリに投稿された issue についたコメントによると、標準機能の方は出力形式を RGB に変更しようとした際にサポートしていないにもかかわらずエラーを返さないせいで処理がおかしくなっているのが原因であるという。なお、OpenCV の DirectShow サポートは deprecated になっているらしく、OpenCV 側での workaround は期待できない。


追記: 結局 OpenCV 側で workaround が実装されたようで、OpenCV 4.8.0 以降の VideoCapture で扱えるようになっている。OBS 側の挙動が不適切な点は変わっていないため、仮想カメラを使おうとするアプリケーションによっては問題が起きる。

Trackback

no comment untill now

Add your comment now