はじめに
Zoomといえばバーチャル背景ですね!
グリーンスクリーンなんて無いんじゃ!!
スペックが足りないんじゃ!!
そもそもWebカメラが無いんじゃ!!!
という方、いらっしゃいますよね。
まぁWebカメラ需要は最近すごいらしくて、なかなか手に入らない問題もあるみたいなので、
結構切実だと思います。
TL; DR
やりたかったこと
- 自前の動画ソース(キャプチャなど?)を用意する
- 自前の小さいリソースでも実現可能な背景除去処理を挟む
- Zoomで背景除去済み動画をストリーミングする
やったこと
- グリーンバックの動画を用意する
- Zoomでグリーンバック動画でバーチャル背景する
#zoom の背景削除使いたいけど、
— いす (@yoh1496) April 13, 2020
「グリーンバックが無い!!!」
「スペックも足りん!!!」
「そもそもWebカメラが無い!!!」
なるほどね完全に理解した pic.twitter.com/Vj6UScGNxt
大したことやってないポエムです。
バーチャルWebカメラ
「Webカメラがない!」
そういうときのために「バーチャルWebカメラ」というものがあります。
Webカメラが用意できない場合や、Webカメラからの入力しか受け付けないアプリに
外部ストリーム(キャプチャとか)を流したい場合に有用な方法です。
有効にする方法(Windows)
あまり配信界隈に精通していないのもあって知らなかったんですが、世の中には
OBSという、配信界隈で使われるオープンソースの便利アプリが存在するようです。
Open Broadcaster Software | OBS
今回は、そのアプリのプラグインである、OBS-VirtualCamというアプリを使っていきます。
https://github.com/CatxFish/obs-virtual-cam
OBS Studioの導入
簡単なのは上記ホームページから「Windows」ボタンを押して、
「OBS-Studio-25.0.4-Full-Installer-x64.exe」というインストーラをダウンロード/実行する方法です。
ただ、v25は新しいバージョンで、他のプラグインが対応していないこともある(OBS-websocketなど)ので、
下記ページからv24.0.3をダウンロードするのがオススメです。
OBS-VirtualCamの導入
GitHubのリリースページからダウンロードします。
Zipでバイナリをダウンロードすることもできるのですが、
仮想カメラの登録/解除を忘れると危ないので、
インストーラー版である「OBS-VirtualCam2.0.4-Installer.exe」をダウンロード/実行するのがよいと思います。
バーチャルWebカメラの有効化
プラグインのメニューからバーチャルWebカメラを有効化します。
使用するアプリケーションによっては左右を反転させて表示するようになっているものもあるので、
「Horizontal Flip」にチェックを入れるなど、適宜変更すると良いと思います。
これで「Start」ボタンを押すと「OBS-Camera」というWebカメラがZoomで使用可能になり、
OBSに表示されている内容がWebカメラとしてZoom側からも表示できるようになったと思います。
使用例
例として、以下の動画を使用します。
「Just Do Itおじさん」としてTwitterで話題の俳優、シャイア・ラブーフさん。
(私はこの動画で存在を知りました・・・)
バーチャルWebカメラの有効化
右がOBS、左がブラウザ版Zoomです。結構低負荷で実行できるのに驚きました。
バーチャル背景の適用
こんな感じになります。かなりシュール。
just do it おじさんが応援してくれる zoom。#zoom背景 思ったよりシュールで笑っちゃった pic.twitter.com/7QtlyBRQOe
— いす (@yoh1496) April 13, 2020
終わりに
本当はキャノンのミラーレスをWebカメラにしたくて、
リモート撮影機能のライブビュー画面をソフトウェア的にキャプチャして流し込む作戦だったんですが、
気づいたらグリーンバックの動画を流しているという謎な事態に。
だけどこれで必要な機能は揃いました。
これを応用すればアバターで会議に参加するバーチャルZoomerも可能です。
(今度は脱線してそっちにいきそう)
技術的には、おそらくOBSの表示をレンダリングする
DirectShowのソースフィルタを定義しているだけなので、
直接レンダリングする気合と技術力があれば自前で低遅延のアバターも表示できそうですね。
おまけ
音声認識してリアルタイムに字幕も付けられるようにしてみました
みなさんも楽しいZoomライフを!