using elgato HD6s with Mac

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が両方必要です。

johnboiles/obs-mac-virtualcam

# 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の画面に出てくるはずです。

スクリーンショット 2020-05-07 18.10.25
こんな感じになればOK

結構時間がかかったんですが、割とうまくいったのでよしとしよう。 あと、まぁ、同じことをwindowsでやった場合、何もしなくてもUSBにキャプチャを刺すだけで終わりだったから、 この辺はWinでやった方がいいかもと思った。

connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

Jp, Tokyo https://connvoi.com