Mac + OBS Studio で録画済の動画をウェブカメラ映像として配信する
Mac 用のカメラユーティリティである「CamTwist」のことを以前紹介した。
このアプリは、ウェブカメラ映像として次のようなモノを配信できる。
- リアルタイムに加工したウェブカム映像 (ぼかし、ノイズ、モノクロ処理など)
- 任意の静止画ファイル
- スクリーン上の一部分、任意のウィンドウなど
自分は今回、予め録画しておいた動画をウェブカメラ映像として配信したいと考え、やり方を調べたところ、「OBS Studio」というアプリで実現できたので紹介する。
OBS Studio というアプリは Mac 用だけでなく、Windows 用・Linux 用もある。今回は Mac 用の、バージョン 26.1.2 を使用した。以下からアプリをダウンロードしてインストールする。
なお、以前はウェブカメラ映像を扱う際に OBS プラグインが別途必要だったのだが、現在は OBS Studio 本体に同梱されているのでプラグイン類は不要だ。
- ライブ配信アプリOBS Studioに仮想カメラを作り出し、ZoomやGoogle Meetなどに映像を直接配信できるOBSプラグイン「OBS (macOS) Virtual Camera」がリリース。 | AAPL Ch.
- johnboiles/obs-mac-virtualcam: ARCHIVED! This plugin is officially a part of OBS as of version 26.1. See note below for info on upgrading. 🎉🎉🎉Creates a virtual webcam device from the output of OBS. Especially useful for streaming smooth, composited video into Zoom, Hangouts, Jitsi etc. Like CatxFish/obs-virtualcam but for macOS.
- ↑ 当該プラグインのリポジトリ。Archived になっている
OBS を起動したら、上半分がカメラプレビュー枠、下半分がコントロールパネル類の画面が開くと思う。
まずは下部の「ソース」ペインより、「+ (追加)」ボタンを押下し、「映像キャプチャデバイス」を選択する。名前は適当に進め、デバイス選択で「FaceTime HD Camera」(MacBook 内蔵カメラ) などを選択する。するとカメラプレビューにウェブカメラの映像が映るはずだ。
そしたら下部・右側の「コントロール」ペインより「録画開始」ボタンを押下する。ウェブカメラの映像が録画されるので適当に録画し、「録画終了」ボタンを押下する。撮影した動画はユーザホームの ~/Movies/
ディレクトリ直下に .mkv
形式で保存されている。
続いて、再度「ソース」ペインより「+」ボタンを押下し、今度は「メディアソース」を選択する。「ローカルファイル」より、先程保存した .mkv
ファイルを参照し選択する。「繰り返し」にチェックしておくと、動画がループ再生される。コレで「OK」を押すと、カメラプレビューに録画した映像が表示されているはずだ。もしプレビューのサイズが枠いっぱいになっていなかったら、ドラッグして拡大してやろう。
「映像キャプチャ」の方はもう要らないので、「ソース」ペインで「映像キャプチャ」を選択して「- (削除)」ボタンを押下する。MacBook 内蔵カメラを使っていた場合は、この時点でカメラ横にある緑色のランプが消灯するはずだ。
「音声ミキサー」ペインで、マイクからリアルタイムに拾っている音声と、「メディアソース」の音声の音量が調整できる。「動画をウェブカメラ映像として利用しつつ、音声はリアルタイムに自分の声を流す」のであれば、「メディアソース」の方の音量をミュートしておけば良い。
準備ができたら、「コントロール」ペインの「仮想カメラ開始」ボタンを押下する。この部分、古いバージョンの解説だと「ツールメニューから Start Virtual Camera を選択する」となっているが、現在は「ツール」メニューにそのような項目がなかった。
仮想カメラを起動したら、任意のビデオチャットツールで「OBS Virtual Camera (m-de:vice)
」というカメラを選択してやれば、ループ再生中の動画がウェブカメラ映像として配信できる。
自分が試したところ、Chrome ブラウザで Google Meet に参加しようとしたところ、この「OBS Virtual Camera (m-de:vice)
」が一覧になかったのだが、Chrome ブラウザを Cmd + q
で一度完全に終了させ、再起動したらちゃんと一覧に登場し、ブラウザ上の Google Meet で OBS の仮想カメラが利用できた。
以上。このような方法で、予め録画しておいたウェブカメラ映像を配信することで、身だしなみを整えるタスクをスキップできるだろう。
自分の経験上、「皆の顔を見たいな〜」とか抜かしてくる人ほど、実際にどんな映像が流れているかは全く気にしていなかったりする。背景透過フィルタのせいで顔まで透過されていても気にしていないし、ラグったりガクガクしていたりしても、全然気にならないようである。「顔を見せてくれている」という安心感だけで生きていて、実際には顔なんか見ちゃいないのである。
ループ再生の動画だと、どうしてもループの繋ぎ目部分が気になるかもしれないが、案外バレないかもしれない。かがむとかして一瞬カメラから姿を隠したポイントでループ再生すれば繋ぎ目は誤魔化せるかもしれない。また、別の動画編集ソフトでブラーやフェード処理を入れて誤魔化しても良いだろう。ブロックノイズを入れて解像度を小さくし、時々コマ落ちするような動画を用意できると、それっぽい。w