elgato HD6S + obs virtualcam +Macのセットアップ
リモートワークの時の画質を改善するためにelgato HD6Sを入手したのでMacでセットアップした時のメモ めんどうだった。。。
MacでHD6Sをカメラとして認識してくれない
elgatoの純正ソフト Game Capture HDだとキャプチャされた映像がみえるんだけど、Hangoutの設定画面にはカメラとして出てこない状態でそもそもMacに映像リソースとして認識されていないみたいでした。 解決するために、
ビデオカメラ -> HD6S -> obs link -> obs -> obs virturalcam -> hangout
みたいな構成せざる得ない感じなりましたw HD6Sでキャプチャした映像をなんとかしてOBSに読み込ませて、その映像をOBSで仮想カメラにするとうまくいくという感じです。
OBSのセットアップ
OBSのインストール
obs 公式サイトからOBSをダウンロード、インストールします。
OBS linkのインストール
OBS Link for Mac HD6Sでキャプチャした動画をNDiを使ってOBSにブリッジしてくれるelgatoの公式ソフト。
OBSのビルドとインストール
OBS Virtualcamを使うにはgitからソースコードを落としてきて、それをビルドします。 そう。通常の手順でインストールしたOBSとソースビルドしたOBSが両方必要です。
# Clone and build OBS
git clone --recursive https://github.com/obsproject/obs-studio.git
cd obs-studio
# Follow normal OBS build steps
brew install FFmpeg x264 Qt5 cmake mbedtls swig
mkdir build
cd build
# Note: if you installed homebrew to a custom location, this will be $BREW_INSTALL_PATH/opt/qt
export QTDIR=/usr/local/opt/qt
cmake .. && make -j
# Clone this repo
cd ../..
git clone https://github.com/johnboiles/obs-mac-virtualcam.git
cd obs-mac-virtualcam
# Set an environment variable that points to the directory for your OBS clone
export OBS_DIR=$PWD/../obs-studio
# Build the plugin
mkdir build
cd build
cmake -DLIBOBS_INCLUDE_DIR:STRING=$OBS_DIR/libobs -DLIBOBS_LIB:STRING=$OBS_DIR/build/libobs/libobs.dylib -DOBS_FRONTEND_LIB:STRING=$OBS_DIR/build/UI/obs-frontend-api/libobs-frontend-api.dylib -DQTDIR:STRING=$QTDIR ..
make -j
# Copy the OBS plugin to your local OBS build
cp src/obs-plugin/obs-mac-virtualcam.so $OBS_DIR/build/rundir/RelWithDebInfo/obs-plugins/
# Remove any existing plugin and copy the DAL plugin to the right place
sudo rm -rf /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin && sudo cp -r src/dal-plugin/obs-mac-virtualcam.plugin /Library/CoreMediaIO/Plug-Ins/DAL
# Run your build of OBS
cd $OBS_DIR/build/rundir/RelWithDebInfo/bin
./obs
ターミナルを開いて上のコマンドを打っていきます。homebrewがない場合はインストールしておいてください。 最後の./obsのところでOBSが起動するようになってます。この状態でOBSのツール->start virtual cameraが項目に追加されています。
NDi pluginのセットアップ
ソースビルドしたOBSにNDiプラグインを入れます。 NDiプラグインもビルドします。
obs-ndi まず、開いているobsを閉じます。次にコマンドです。
git clone https://github.com/Palakis/obs-ndi.git
cd obs-ndi
mkdir build && cd build
cmake -DLIBOBS_INCLUDE_DIR=$OBS_DIR/libobs -DLIBOBS_LIB=$OBS_DIR/build/libobs/libobs.0.dylib -DOBS_FRONTEND_LIB=$OBS_DIR/build/UI/obs-frontend-api/libobs-frontend-api.dylib -DQt5Core_DIR=/usr/local/opt/qt5/lib/cmake/Qt5Core -DQt5Widgets_DIR=/usr/local/opt/qt5/lib/cmake/Qt5Widgets ../
make -j4
# Copy libobs-ndi.so to the obs-plugins folder
cp libobs-ndi.so $OBS_DIR/build/rundir/RelWithDebInfo/obs-plugins
virtualcamセットアップ時に使ったexport OBS_DIRをそのまま利用してます。 makeした後はできたlibobs-ndi.soをobs-pluginsフォルダにコピーします。
NDI SDKのインストール
NDI SDK NDIのページでDOWNLOADを押してメールアドレスを登録すると、SDKのダウンロードリンクがメールされます。 pkgが手に入るので、起動、インストールをします。完了すると、/Library以下にSDKファイルが置かれるので、必要なファイルをobs-pluginにコピーします。
# Copy libndi.dylib from the NDI SDK to the obs-plugins folder too
cp /Library/NDI\ SDK\ for\ Apple/lib/x64/libndi.4.dylib $OBS_DIR/build/rundir/RelWithDebInfo/obs-plugins
これで準備が整いました。
OBSの起動と設定
まず、ビデオカメラとHD60SとMacを接続します。 次にobs linkを立ち上げます。キャプチャデバイスにelgato HD6Sと出ていればOKです。 また、接続が開始したタイミングでHD6Sの本体LEDが白く光ります。
次にコマンドラインから起動したOBSの映像リソースを選択します。+マークからNDiを選択します。 うまくいけばビデオカメラの映像がOBS内で確認できます。
最後にOBS->ツール->start virtual camをクリックして終わりです。
Hangoutの起動と設定
ハングアウトにいき、設定画面を開きます。 ビデオの選択肢の中に、”OBS Camera”という選択肢が出てきていれば成功です。 OBS Cameraを選ぶとキャプチャした映像がHangoutの画面に出てくるはずです。
結構時間がかかったんですが、割とうまくいったのでよしとしよう。 あと、まぁ、同じことをwindowsでやった場合、何もしなくてもUSBにキャプチャを刺すだけで終わりだったから、 この辺はWinでやった方がいいかもと思った。