スクリーンショット_2018-07-17_10

Elgato Game Capture HDを非公式ドライバでmacOS版OBSに対応させた(けどダメダメだった)話

概要

Elgato社のGame Capture HDはいわゆるUVC・UACに対応していないので,macOSでは専用の付属アプリケーション以外でキャプチャした映像をPC側に出力することができない。

本記事はmacOS版Open Broadcaster Software(以下OBS)になんとか映像を出力する方法を模索し,非公式ドライバを使ってOBSへの出力・キャプチャに成功したものの色々難があり実用に堪えなかったので苦労を供養するために手順を記載したものである。

この記事を読んだ方がいい人

・Game Capture HD付属アプリケーションを一切使わず,macOS版OBS でゲームプレイ動画を録画・配信したい人

この記事を読まない方がいい人

・Game Capture HD付属アプリケーションを一切使わず,macOS版OBS で実況ゲームプレイ動画を録画・配信したい人
・Game Capture HDではなくGame Capture HD60,HD60 S,HD60 Proなどを所持している人 (ドライバが非対応なため)

使用ハードとOS

MacPro (Late 2013), macOS Sierra (10.12.6)

手順

GitHub - Added special instructions for Mac users

本来Linux向けに開発された非公式ドライバを上記リンクの手順に沿ってゴニョゴニョしていくだけです。基本はコレを読めば間違いないです。

ここからは独自に手順を記載しますが,上記リンクと比較して一部コードなど内容に改変があるので注意。情報の正確さは保証しません。

01. (入れていない場合は)下記を参考にCommand Line Tools for Xcode を導入する。

Xcodeをインストールせずに、Command Line Toolsをインストールする方法

02. (入れていない場合は)ターミナルに下記を打ち込み,homebrewを導入する。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

03. ターミナルに下記を打ち込んでpkg-config, libusb, cmakeをインストール。

brew install pkg-config libusb cmake

04. ターミナルに下記を打ち込んで非公式ドライバをダウンロードします。通常は /Users/[ユーザー名] 直下に elgato-gchd フォルダが作成されます。

git clone https://github.com/tolga9009/elgato-gchd.git

05. ターミナルに下記を打ち込み,libusb-1.0 フォルダを src フォルダ内にコピーします。

cp -r /usr/local/include/libusb-1.0 /Users/[ユーザー名]/elgato-gchd/src

06. ターミナルに下記を打ち込み,elgato-gchdフォルダ内にビルド用のフォルダを作成します。

cd elgato-gchd
mkdir build
cd build

07. ターミナルに下記を打ち込み,ドライバをコンパイル・インストールします。

cmake /Users/[ユーザー名]/elgato-gchd/
make LIBRARY_PATH=/usr/local/lib
make install

08. ターミナルに下記を打ち込み,streamフォルダおよびそれに内包されたgchd.tsファイルを作成します。

sudo mkdir /Users/[ユーザー名]/Movies/stream
echo "ok" | sudo tee /Users/[ユーザー名]/Movies/stream/gchd.ts

09. OBSを起動し,ソースにメディアソースを追加。ローカルファイルの"参照"から前項で作成したgchd.tsファイルを指定します。
(本来この時点では下記画像のように実際のキャプチャ画面は表示されません,気にせず手順を進めて下さい)

10. ターミナルに下記を打ち込み,ドライバを起動して下さい。上手く行けばOBS上にキャプチャした映像が表示されます。

sudo gchd -o /Users/[ユーザー名]/Movies/stream/gchd.ts -c rgb

※自分はこの段階で libusb_control_transfer did not write all bytes. などと表示され上手くいきませんでしたが,USBを挿し直すだけで解決しました。

問題点・実用に堪えない理由

遅延が酷い : 10秒~30秒近い遅延があり,ドライバの起動ごとに遅延時間が変動するためマイク音声を映像にあわせる事が非常に困難。
負荷が凄い : 具体的に計測していないので詳細は不明だが,とにかく動作がややカクつく程度にPCに負荷が掛かる。重い。
映像がチラつく : デフォルトの解像度設定(1080p)で起動した場合は問題ないが,720pなど解像度を変更して起動した際にフレームが飛ぶような不具合が発生したため,解像度変更によるPC負荷の低減を図るのは実質不可能。

という訳で,実況を含めた録画・配信を行いたい場合はほとんど使い物になりません。逆にマイクを使わずゲーム音のみで録画・配信したい場合はPC負荷や遅延に目を瞑れば全然問題なく運用できると思います。以上。