2023-07-05
画面キャプチャー、動画編集にものすごく便利なオープンソースソフト「OBS Studio」。
動画に様々な効果を入れられるが、「ぼかし」機能についてはプラグイン「StreamFX」を導入しないと使えない。
そのStreamFXはバイナリ完成品の無償提供が終了していることから、今回折角なので、
どちらもオープンソースなわけであるから、ソースコードからコンパイルして導入したのでメモ。
1、必要ソフトウェアのインストール
以下のものが必要になってくる。
・Windows PowerShell 7
OBS-Studio最新ソースのバッチファイルは古いPowerShellだと動かない(エラー)ことがある。以下記事等を参照して最新7を導入しておく。
【Windows】PowerShellの最新バージョン7を導入する
以降PowerShellは上記最新7(スタートメニュー→PowerShell(単独)を起動するものとする。
・Visual Studio 2022 Community Edition
https://visualstudio.microsoft.com/ja/downloads/
から「Community」「無料ダウンロード」でダウンロード、インストーラ起動。
「C++ によるデスクトップ開発」にのみチェックを入れてインストール実行。
・7-zip for Windows
から「ダウンロード」64ビット x64をダウンロード、インストーラ起動&実行。
インストールするだけではダメで「7z」コマンドにパスを通す必要がある。
設定→システム→バージョン情報→システムの詳細設定→環境変数→システム環境変数→Path→編集→新規→C:\Program Files\7-Zip
としてPATHを追加し、スタートメニュー→PowerShellを右クリック→管理者として実行し、
7z
と打って、エラーにならなければOK。もしパスが通っていない場合、これから進めるソースコードのコンパイル時に
Invoke-Expression : 用語 '7z' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識 されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行 してください。 発生場所 C:\Users\serve\downloads\obs-studio-29.1.2\obs-studio-29.1.2\CI\windows\01_install_dependencies.ps1:83 文字:9 + Invoke-Expression "7z x vlc_${Version}.zip -ovlc" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (7z:String) [Invoke-Expression], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Commands.InvokeExpressionCommand
などと言われ、中断エラーになってしまう。
・Git for Windows
OBS Studio本体、StreamFXどちらもGitからソースコードをクローンして持ってくる。ソースのTARアーカイブなどを持ってきても、途中で以下のようなコンパイルエラーが起こってしまう。
-- Configuring incomplete, errors occurred! cmake -S . -B build64 -G Visual Studio 17 2022 -DCMAKE_GENERATOR_PLATFORM="x64" -DCMAKE_SYSTEM_VERSION="10.0.18363.657" -DCMAKE_PREFIX_PATH:PATH="C:\Users\serve\downloads\obs-studio-29.1.2\obs-build-dependencies\windows-deps-2023-04-12-x6 4" -DCEF_ROOT_DIR:PATH="C:\Users\serve\downloads\obs-studio-29.1.2\obs-build-dependencies\cef_binary_5060_windows_x64" -DENABLE_BROWSER=ON -DVLC_PATH:PATH="C:\Users\serve\downloads\obs-studio-29.1.2\obs-studio-29.1.2/../obs-build-dependen cies/vlc-3.0.0-git" -DENABLE_VLC=ON -DCMAKE_INSTALL_PREFIX="build64/install" -DVIRTUALCAM_GUID="" -DTWITCH_CLIENTID="" -DTWITCH_HASH="" -DRESTREAM_CLIENTID="" -DRESTREAM_HASH="" -DYOUTUBE_CLIENTID="" -DYOUTUBE_CLIENTID_HASH="" -DYOUTUBE_S ECRET="" -DYOUTUBE_SECRET_HASH="" -DGPU_PRIORITY_VAL="" -DCOPIED_DEPENDENCIES=OFF -DCOPY_DEPENDENCIES=ON -DBUILD_FOR_DI STRIBUTION="OFF" -Wno-deprecated -Wno-dev --log-level=ERROR exited with non-zero code 1. 発生場所 C:\Users\serve\downloads\obs-studio-29.1.2\obs-studio-29.1.2\CI\include\build_support_windows.ps1:137 文字:9 + throw "${Command} ${CommandArgs} exited with non-zero code ${ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (cmake -S . -B b...on-zero code 1.:String) [], RuntimeException + FullyQualifiedErrorId : cmake -S . -B build64 -G Visual Studio 17 2022 -DCMAKE_GENERATOR_PLATFORM="x64" -DCMAKE_ SYSTEM_VERSION="10.0.18363.657" -DCMAKE_PREFIX_PATH:PATH="C:\Users\serve\downloads\obs-studio-29.1.2\obs-build-dep endencies\windows-deps-2023-04-12-x64" -DCEF_ROOT_DIR:PATH="C:\Users\serve\downloads\obs-studio-29.1.2\obs-build-d ependencies\cef_binary_5060_windows_x64" -DENABLE_BROWSER=ON -DVLC_PATH:PATH="C:\Users\serve\downloads\obs-studio- 29.1.2\obs-studio-29.1.2/../obs-build-dependencies/vlc-3.0.0-git" -DENABLE_VLC=ON -DCMAKE_INSTALL_PREFIX="build64/ i nstall" -DVIRTUALCAM_GUID="" -DTWITCH_CLIENTID="" -DTWITCH_HASH="" -DRESTREAM_CLIENTID="" -DRESTREAM_HASH="" -DYO UT UBE_CLIENTID="" -DYOUTUBE_CLIENTID_HASH="" -DYOUTUBE_SECRET="" -DYOUTUBE_SECRET_HASH="" -DGPU_PRIORITY_VAL="" -D COP IED_DEPENDENCIES=OFF -DCOPY_DEPENDENCIES=ON -DBUILD_FOR_DISTRIBUTION="OFF" -Wno-deprecated -Wno-dev --log-leve l=ER ROR exited with non-zero code 1.
から、Download→インストーラ起動。すべてデフォルトのチェックでインストール。
スタートメニュー→PowerShellを右クリック→管理者として実行し、
git
と打って、エラーにならなければOK。
・CMake for Windows
から、
Windows x64 Installer: cmake-3.26.4-windows-x86_64.msi
を選択・ダウンロード、インストーラ実行。
Add CMake to the system PATH for all users
にチェックを入れて、インストール。
スタートメニュー→PowerShellを右クリック→管理者として実行し、
cmake
と打って、エラーにならなければOK。
2、ソースコードの取得(クローン)と実行ポリシーの変更
ここではホームフォルダのDocumentsを作業フォルダとする。
スタートメニュー→PowerShellを右クリック→管理者として実行し、両ソースを必要なものを再帰的に同時取得するrecursiveオプションをつけてクローンを実行、ソース取得。
cd $HOME/Documents git clone --recursive https://github.com/obsproject/obs-studio.git git clone --recursive https://github.com/Xaymar/obs-StreamFX.git
コンパイルの際実行権限が必要になるので、以下のようにポリシーを変更する。
Get-ExecutionPolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y Get-ExecutionPolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Bypass CurrentUser Undefined LocalMachine RemoteSigned
この変更は、PowerShellを終了する(ウインドウを閉じる)と自動で元に戻るため、手動で戻す必要はない。
3、OBS Studio本体のビルド
最新リポジトリの場合、ビルドバッチファイルはobs-studio/.github/scripts/Build-Windows.ps1となっている。
これを実行してビルドを開始する。
cd $HOME/Documents obs-studio/.github/scripts/Build-Windows.ps1
コンパイルが無事成功したら、以下のものが生成されているか確認。
C:\Users\serve\Documents\obs-studio\build_x64\rundir\RelWithDebInfo\bin\64bit\obs64.exe C:\Users\serve\Documents\obs-studio\build_x64\rundir\RelWithDebInfo\obs-plugins C:\Users\serve\Documents\obs-studio\build_x64\libobs C:\Users\serve\Documents\obs-studio\build_x64\deps\w32-pthreads C:\Users\serve\Documents\obs-studio\build_x64\UI\obs-frontend-api
4、StreamFXのビルド
obs-StreamFXフォルダに移動し、ビルドディレクトリbuildsを作る。
cd $HOME/Documents/obs-StreamFX mkdir builds
続けて、以下cmakeコマンドでビルドファイルを生成する。
cmake -S . -B builds -Dlibobs_DIR="C:\Users\serve\Documents\obs-studio\build_x64\libobs" -Dw32-pthreads_DIR="C:\Users\serve\Documents\obs-studio\build_x64\deps\w32-pthreads" -Dobs-frontend-api_DIR="C:\Users\serve\Documents\obs-studio\build_x64\UI\obs-frontend-api"
終わったらGUIのエクスプローラで上記buildディレクトリを開き、StreamFX.slnファイルをダブルクリックして実行。
Visual Studioに関連付けられていなければ、アプリを選択して開く→Visual Studio 2022として開く。
Visual StudioでStreamFXプロジェクトが読み込まれるので、上セレクトボックスの「Debug」を「RelWithDebInfo」に変更して、
メニューバー「ビルド」→「ソリューションのビルド」を実行する。
5、StreamFXファイルのOBS Studioへの入れ込み
ビルド完了後、
C:\Users\serve\Documents\obs-StreamFX\builds\RelWithDebInfo
にStreamFX.dllはじめ複数ファイルが生成されるので、それらすべてを、
C:\Users\serve\Documents\obs-studio\build_x64\rundir\RelWithDebInfo\obs-plugins\64bit
にコピーする。
さらに、
C:\Users\serve\Documents\obs-studio\build_x64\rundir\RelWithDebInfo\data\obs-plugins
フォルダに、新規フォルダー「StreamFX」を作成する。StreamFXというフォルダ名でないと正常に使えないので注意。
そして、
C:\Users\serve\Documents\obs-StreamFX\data
の中身すべて(effectsなど)を、
C:\Users\serve\Documents\obs-studio\build_x64\rundir\RelWithDebInfo\data\obs-plugins\StreamFX
にコピーして完了。
6、OBS Studioの起動とぼかしフィルタのテスト
C:\Users\serve\Documents\obs-studio\build_x64\rundir\RelWithDebInfo\bin\64bit\obs64.exe
を起動する。ソースからコンパイルした本体が動くのだから、感無量。
ソースで「+」して、適当に「画面キャプチャ」を追加する。そしてすぐ上の「フィルタ」ボタンでフィルタウインドウを開く。
「エフェクトフィルタ」の「+」をクリックすると、「ぼかし」をはじめ、いくつかのStreamFX固有のフィルタが追加されているはずだ。
ぼかしを選択すれば、ぼかしの強さを「サイズ」で、「マスクを適用」でぼかし適用範囲、および範囲境界線にもぼかしを入れられる。
以上です。お疲れ様でした!
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Intel Macbook2020にBootCampで入れたWindows11 Pro 23H2のBluetoothを復活させる
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows版Google Driveが使用中と言われアンインストールできない場合
【Apache】サーバーに同時接続可能なクライアント数を調整する
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Windows11でMacのキーボードを使うには
cannot guess build type; you must specify oneと言われた場合
Pythonで処理にかかった時間を計測するには
【ひかり電話+VoIPアダプタ】LANしか通ってない環境でアナログ電話とFAXを使う