ubuntuを使い始めて数日の初心者が、ubuntuでgame capture HDからnintendo switchの動画をキャプチャするための手順を、ひっかかった部分も混じえてまとめてみました。
注
環境
- ubuntu 16.04 RTS
- game capture HD
- nintendo switch
大まかな流れ
- 依存するソフトウェアのインストール
- 公式ドライバからファームウェア抽出
- linux用ドライバの作成と起動
- キャプチャ用ソフトウェアのインストールと設定
基本的に、Streaming on Linux using Elgato Game Capture HD and OBS Studio をグーグル翻訳したものに従って進めていきます。
依存するソフトウェアのインストール
まずは、ctrl+alt+Tで端末を起動します。
そしたら下記のコマンドを入力すると必要なものがインストールされます。
sudo apt install git dmg2img hfsprogs libusb-dev clang make build-essential cmake
installの後ろが全て必要なソフトウェア。参考にしているサイトではcmakeが入っていませんが、ドライバを作成する工程で必要になるので含めています。
さらにドライバ作成時には、libusbの1.0.20以上のバージョン(libusb-devに含まれているらしい)が必要になりますが、自分の場合はなぜか1.0.0でした。
1.0.20以上のバージョンでないと、ドライバを作成する工程でひっかかるので、以下のコマンドでバージョンを確認してください。
apt show libusb
Versionの項目が1.0.20以上であれば、公式ドライバからファームウェアの抽出の項目に飛んでください。
libusb1.0.20以上のバージョンのインストール
aptではバージョンを更新出来なかったので、ソースコードを取得してパッケージを作成し、そのパッケージをインストールするという手順で更新しました。
参考にしたページ
クロの思考ノート 意外に簡単!Debパッケージを自作する方法
クロの思考ノート Linuxにソフトウェアをインストールするには?
github.com/libusb/libusb/releasesからlibusb-1.0.21.tar.bz2を、~/Downloadsフォルダにダウンロードします。
とりあえず最新の安定版を落としました。
パッケージを作成するのに必要なソフトウェアをインストールします。
sudo apt install checkinstall
ダウンロードしたソースコードを展開、ビルドします。
cd Downloads
tar -jxf libusb-1.0.21.tar.bz2
cd libusb-1.0.21
./configure
make
ビルドしたものからDebパッケージを作成します。
sudo checkinstall --install=no
この後、端末上でいくつか設定の入力を求められますが、基本的に全部そのままEnterでOKです。
作成したDebパッケージをインストールするためのソフトウェアをインストールします。
sudo apt install gdebi
作成したlibusbのDebパッケージをインストールします。
sudo gdebi libusb_1.0.21-1_amd64.deb
ファイル名のamd64の部分が環境によって違うかもしれないので、libusb_まで入力したらtabキーで補完するのがいいです。
これでlibusbが1.0.20以上のバージョンになったと思うので、もう一度バージョン確認コマンドで確認してみてください。
公式ドライバからファームウェアの抽出
参考サイトでは、macドライバがうんたらとか書いていますが、作業は全てubuntu上で行います。
まずは、ドライバ作成をするためのフォルダを作成します。
mkdir -v ~/elgato-gchd
次にドライバ作成に必要なものをgithubからダウンロードしておきます。
git clone https://github.com/tolga9009/elgato-gchd.git
これで、さっき作成したフォルダに必要なものがダウンロードされます。
フォルダは、このgit cloneをすると勝手に作られるかもしれませんが、自分はよくわからなかったので先にフォルダ作っておきました。
elgato公式から、ファームウェアを抽出するためのmac版ドライバをダウンロードします。
wget http://files.elgato.com/gamecapture/gchdm_203_970.dmg
~/Downloadsフォルダにダウンロードされたと思うので、そこに移動して解凍します。
cd ~/Downloads
dmg2img gchdm_203_970.dmg -o gchdm_203_970.dmg.img
解凍したイメージファイルにマウントします。
mkdir -v /tmp/dmg
sudo mount -o loop -t hfsplus gchdm_203_970.dmg.img /tmp/dmg
マウントはまだよくわかってませんが、こうすることでイメージファイル内にアクセスして必要なファイルを取ってこれるようです。
ファームウェア用のフォルダを作成します。
sudo mkdir -v /usr/local/lib/firmware/gchd
/tmp/dmg/Game Capture HD.app/Contents/Resources/Firmware/Beddo/から/usr/local/lib/firmware/gchd/に以下の4つのファイルをコピーします。
- mb86h57_h58_enc_h.bin
- mb86h57_h58_idle.bin
- mb86m01_assp_nsec_enc_h.bin
- mb86m01_assp_nsec_idle.bin
下2つのファイルは参考サイトにはありませんが、ドライバ起動時に見つからないとエラーが出たのでコピーしておきます。
sudo cp /tmp/dmg/Game Capture HD.app/Contents/Resources/Firmware/Beddo/mb86h57_h58_idle.bin /usr/local/lib/firmware/gchd/
sudo cp /tmp/dmg/Game Capture HD.app/Contents/Resources/Firmware/Beddo/mb86h57_h58_enc_h.bin /usr/local/lib/firmware/gchd/
sudo cp /tmp/dmg/Game Capture HD.app/Contents/Resources/Firmware/Beddo/mb86m01_assp_nsec_enc_h.bin /usr/local/lib/firmware/gchd/
sudo cp /tmp/dmg/Game Capture HD.app/Contents/Resources/Firmware/Beddo/mb86m01_assp_nsec_idle.bin /usr/local/lib/firmware/gchd/
さらに
- mb86h57_h58_enc_h.bin
- mb86h57_h58_idle.bin
の2つは~/elgato-gchd/firmware/にもコピーします。
こちらはファイルマネージャーからGUIでコピペしてもいいし、以下のコマンドでコピーしてもいいです。
sudo cp /tmp/dmg/Game Capture HD.app/Contents/Resources/Firmware/Beddo/mb86h57_h58_idle.bin $HOME/elgato-gchd/firmware/
sudo cp /tmp/dmg/Game Capture HD.app/Contents/Resources/Firmware/Beddo/mb86h57_h58_enc_h.bin $HOME/elgato-gchd/firmware/
$HOMEの部分はtabキーで補完すると、その環境の/home/(username)に変換されます。
tmpフォルダにファイルマネージャーからアクセスする場合は、コンピューターから辿るか、移動の場所を入力からアドレス入力でいけます。
(自分はホームとルートについてわかっておらず、ずっとホームを探してました。)
linux用ドライバの作成と起動
ドライバ作成用に作っておいたフォルダに移動します。
cd ~/elgato-gchd
ドイラバをビルドするためのフォルダを作り、そこに移動します。
mkdir -v build
cd build
ドライバをビルドします。
cmake ..
make
これにてドライバの作成は完了です。
ドライバを起動させるには、事前にgame capture HDをPCに接続しておきます。
次に、ドライバの実行ファイルがあるフォルダに移動してドライバを起動します。
cd ~/elgato-gchd/build/src/
sudo ./gchd -c rgb
switchを対象にした場合、デフォルト設定で起動すると画面が紫っぽくなったため、-cオプションでrgbを指定しました。
ドライバ起動中は、端末を開いたままにする必要があります。今開いている端末は専有してしまうので、ドライバ起動中にコマンドを打ちたい場合は別ウィンドウで新たに端末を起動する必要があります。
ドライバを停止したい場合は、ドライバが動作している端末でctrl+Cを押して停止させます。
キャプチャ用ソフトウェアのインストールと設定
OBS Studioというソフトウェアで、動画を録画できるようです。
下記のコマンドでインストールします。
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update && sudo apt install obs-studio
インストール後、OBSを開いたらソースリストの下にある+ボタンをクリックし、メディアソースを選択します。
開いたウィンドウに任意の名前を入力して[OK]をクリックします。
次に開いたウィンドウのローカルファイルチェックボックスにチェックを入れます。(他のチェックボックスはそのままでOK)
ローカルファイルの右にあるブラウズボタンを押し、/tmp/elgato-gchd.tsファイルを選択(コンピューターから辿っていけます)して[開く]をクリックし、次に[OK]をクリックします。
OBSのメイン画面に戻ってちょっとするとプレビューウィンドウに動画が表示されます。
自分の環境では、PCが貧弱すぎたせいで動画がカクカクで結局使い物になりませんでした。
ああああああああああああああああああああああああああああああああああああああああああああああああああ