見出し画像

StreamFX をビルドして使う (Windows)

 StreamFX を使いたかったのですが、GPL に引っかかるという理由でビルド済みの形式が提供されていなかったので自分でビルドしました。
 誰かの参考になればと思い、備忘録も兼ねて、私がやった方法をメモしておきます。

 なお、こちらの方法によって不具合が起きたとしても、当方は責任を取れませんので、ご了承ください。

Standalone ビルド

 公式のガイドでは Bundled および Standalone の 2 種類のビルド方法が説明されています。
 簡単なのは Bundled の方なのですが、なぜかビルド途中でエラー😓
 仕方がないので面倒な Standalone の方を選びました。

必要なもの

 以下が必要なため、あらかじめインストールしておきます。

 Visual Studio のインストール時には C/C++ のプロジェクトをビルドできるように、セットアップしてください。(ここでセットアップを間違えても、インストールされる Visual Studio Installer アプリを実行すれば、あとからやり直せます。)

バージョンチェック

 互換性の問題が出ないように、OBS Studio と StreamFX のバージョンを合わせます。

 まず、現在使用している OBS Studio のバージョンを調べます。私の場合、29.02 (現在の最新版) でした。

 StreamFX のバージョンが OBS Studio のどのバージョンに対応しているかは GitHub のリリースページで確認することができます。
 OBS Studio 29.02 に対応しているバージョンはベータ版のみでした。OBS 本体の方をダウングレードするのは嫌なので、今回は最新の 0.12.0 Beta 202 にします。

GitHub からソースコードをダウンロードする

 OBS Studio、StreamFX 共に、公式のガイドでは最新のソースコードをダウンロードするように書いてあります。
 ですが、厳密にバージョンを合わせたいので、特定のコミット (バージョン) を使うようにしたいと思います。

 適当な場所にビルド作業用のフォルダを作ります。
 ここでは分かりやすいように C ドライブ直下に git という名前のフォルダを作成します。

C:\git

 Visual Studio Code を起動し、ターミナルを開きます。
 以下のコマンドで作業用フォルダに移動します。

cd C:\git

 次に git clone コマンドを使って、ソースコードをダウンロードします。
 特定のバージョンをダウンロードするために --branch オプションを指定するのがミソです。
 コマンドは以下のようになります。

  • OBS Studio 29.0.2

git clone --recursive https://github.com/obsproject/obs-studio.git --branch 29.0.2
  • StreamFX 0.12.0 Beta 202

git clone --recursive https://github.com/Xaymar/obs-StreamFX.git --branch 0.12.0b202

OBS Studio をビルドする

 まず先に OBS Studio をビルドします。
 OBS Studio それ自体は必要ありません。
 ビルド時に生成される副産物が後述の StreamFX のビルドの際に必要になります。

 ダウンロードした OBS Studio のフォルダに移動します。

cd C:\git\obs-studio

 スクリプトを実行して、OBS Studio のビルドを開始します。

.\CI\build-windows.ps1

 ビルド中は進捗が目まぐるしく表示されます。
 進捗表示が終わり、入力状態に戻ると、ビルド終了です。

StreamFX のビルドの設定をする

 CMake (cmake-gui) を起動します。

 [Browse Source…] ボタンを押して、ダウンロードした StreamFX のフォルダを選択します。
 選択後、[Where is the source code:] テキストボックスに以下のようなパスが表示されていれば OK です。

C:/git/obs-StreamFX

 [Browse Build…] ボタンを押すと、[Browse Source…] ボタンで指定したフォルダが開きます。
 まず、"build" という名前のフォルダを作成しましょう。(このフォルダの名前は何でもよいのですが、ここでは "build" という名前にしておきます。)
 そして、作成した build フォルダを選択します。
 選択後、[Where to build the binaries:] テキストボックスに以下のようなパスが表示されていれば OK です。

C:/git/obs-StreamFX/build

 [Configure] ボタンを押します。
 コンパイラなどを指定することができるダイアログボックスが表示されますが、何も変えずに [Finish] ボタンを押してください。
 その後、途中でエラーになりますが、これは正常な動作です。

 ここから、先ほど OBS Studio 本体をビルドしたときにできた副産物のフォルダを指定していきます。

 [Search:] テキストボックスに "DIR" と入力してください。
 下の画像のように、[Name] / [Value] 欄にエラーになった設定値が赤色でリストアップされます。

Name / Value がエラーになっている

 ここから一つずつエラーを潰していきます。

 とりあえず、libobs_DIR の Value に "C:/git/obs-studio/build64/libobs" と入力して、もう一度 [Configure] ボタンを押してください。

 libobs_DIR のエラーが消え、今度は、w32-pthreads_DIR がエラーになったと思います。

w32-pthreads_DIR がエラー

 w32-pthreads_DIR の Value に "C:/git/obs-studio/build64/deps/w32-pthreads" と入力して、もう一度 [Configure] ボタンを押してください。
 w32-pthreads_DIR のエラーが消え、また別の Name / Value がエラーになったと思います。

 このようにしてエラーを消していきます。

 最終的に下記リストの Name / Value の組み合わせになるよう、設定してください。
 なお、リストにはエラーにならない項目も含めています。
 エラーにならなくても設定しておいた方がよさそうな項目についても、ここに記載しておきます。

  • libobs_DIR → C:/git/obs-studio/build64/libobs

  • w32-pthreads_DIR → C:/git/obs-studio/build64/deps/w32-pthreads

  • Qt_DIR → C:/git/obs-studio/build64/.qt

  • obs-frontend-api_DIR → C:/git/obs-studio/build64/UI/obs-frontend-api

  • FFmpeg_DIR → C:/git/obs-studio/build64/plugins/obs-ffmpeg

 エラーが出なくなったら、[Generate] 、[Open Project] の順番でボタンを押します。
 成功すると、Visual Studio が起動します。

StreamFX をビルドする

 起動した Visual Studio の上側にあるリストボックスで Debug が選択されています。

Debug が選択されている

 このリストの値を RelWithDebInfo に変更します。

 次に、右側のリストに表示されている StreamFX プロジェクトを右クリックします。

StreamFX プロジェクトが表示されている

 表示されたメニューから「ビルド」を選択して、ビルドを開始します。

 ビルド中は進捗が目まぐるしく表示されます。
 進捗表示が終わると、ビルド終了です。

dll を OBS Studio のフォルダにコピーする

 先ほどのビルドで StreamFX のプラグインファイル (dll) が以下の場所に生成されています。

C:\git\obs-StreamFX\build\RelWithDebInfo\StreamFX.dll

 この dll を OBS Studio のプラグインフォルダにコピーします。
 通常は OBS Studio のプラグインフォルダは以下のパスになっています。(ただし、OBS Studio のインストール時にカスタマイズしている場合は、この限りではありません。)

C:\Program Files\obs-studio\obs-plugins\64bit

 OBS Studio を起動すると、フィルタに StreamFX の項目が追加されています🎉

 以上、参考になれば幸いです。

いいなと思ったら応援しよう!