このエントリーをはてなブックマークに追加

OBS(Apple Silicon arm64)をビルドする


 せっかくApple Silicon M1チップのMac買ったのでOBSもRosetta 2経由じゃなくてそのまま動かしたいよね。ってことでチャレンジしてみた。
 作り方は後ほど書く。動かした結果を並べて見たら、どうやらRosetta 2で動かすとCPUの使用率は若干高い。メモリ使用率は4倍も高い。やっぱりネイティブで動かした方がいいね。



 2022/8/3 追記 : OBS 28.0 Beta 1 がリリースされました。 
 2022/8/11 追記 : OBS 28.0 Beta 2 がリリースされました。 このページの役目は終了したかもしれませんが、一応残しておきます。

 2022/2/1 追記 : OBS公式Twitterで27.2以降でApple Siliconサポートとアナウンスがあったので、もう少ししたらこの記事も用済みになるかもね。
6月上旬から中旬にOBSStudio28のベータサイクルに入る予定、8月末頃に完全リリース予定。のようです。


実は自分でビルドしなくてもいい

 Github公式obs-studioリポジトリのActionから成果物(artifacts)をダウンロードできます(要Githubアカウント)。例えばこれとか。対象のプルリクエストがまだCloseじゃなく、テスト結果を募集しているようだったら報告することで開発に貢献できるかもね。
 それでも自分でビルドしたい人は以下、どうぞ

作り方、の前に注意点

 注意:自分でビルドしたもの、GitHub Actionのartifactsは次の機能が利用できない。
  • YouTube, Twitch, Restreamのサービス統合機能が使えない(この機能はOBS開発チームが持つシークレットキーがないと機能有効にならないので仕方がない)
  • x86_64のVSTが認識しない(アーキテクチャが違うのでこれも仕方がない)

Rosetta 2を使わずターミナルを起動

 ターミナルを起動。Rosetta 2使うように設定している場合は設定を解除すること。
 どちらで動いているか分からない場合は

 とコマンドを実行して「arm64」が返ってくればいい。

brewインストール

次のコマンドでbrewをインストール

brewインストール後、念のためにarm64版がインストールされたのか次のコマンドで確認する。

PREFIXが/opt/homebrew
Rosseta 2がfalseになっていればいい。

必要なものをbrewを使ってインストール

Python(64-bit universal2)のインストール

/Library/FrameworksにPython.frameworkがあること。
さらにその中のPythonがarm64対応でないとobspython.soを作る所でエラーが出る。
PythonのダウンロードページからmacOS 64-bit universal2版をダウンロード&インストールすること。

ビルド (2022.4.29更新)


 buildフォルダにOBSのディスクイメージが出来上がるので、それを使ってインストールする。




仮想カメラ

 通常配布されているOBS(x86_64版)をインストールした事がある場合、x86_64版の仮想カメラプラグインがインストールされているため仮想カメラが使えない。
 /Library/CoreMediaIO/Plug-Ins/DAL/
 にある「obs-mac-virtualcam.plugin」を削除して
 build/plugins/mac-virtualcam/src/dal-plugin/
 の中にある「obs-mac-virtualcam.plugin」に置き換えれば使えるようになる。


ーー2022/8/14追記ーー
OBS28以降はプラグイン仕様が変わっているので、ここから下にあるプラグインビルド方法はもう参考にならないと思います。
(個人的に別用途で参考にすることがあるので消していませんが)

プラグイン対応

arm64に対応したプラグインであれば、今回のOBSでも使うことができる。
ほとんどはソースが公開されているものなので、自分でビルドすれば使えるものが多い。
以下、いくつかビルド方法例

StreamFX

 2022/04/04更新

spectralizer

 spectralizerが動くか試してみた。
 まずはFFTWをインストール。
 次のコマンドでspectralizerをビルド&インストール。

obs-multi-rtmp

 ビルド済みのものはここにアップロードした。
 ビルド方法は以下のとおり。
2021/10/27更新

obs-ndi

 2021.10.27更新
 libndi.4.dylibというライブラリが必要だが、NDI5が登場後、手に入らない。
 NDI Toolsに入っているlibndi_advanced.dylibが互換性があるのでこれを利用する。
 obs-ndiのビルド方法は次のとおり


obs-websocket

 2021.10.27更新


obs-text-pango

obs-text-pangoが動くか試してみた。次のコマンドでビルドとインストールができた。
arm64版はここにアップロードした。
事前にpangoをインストールしておく必要がある
 obs-text-pangoのビルド方法は次のとおり 2021.10.27更新




source-record


move-transition

ビルド方法は以下のとおり。




Face Tracker


Advanced Scene Switcher






---
自分用の覚書
あえて別のバージョンのXcodeに切り替えてビルドする場合は、次のようなコマンドで利用するXcodeを切り替える。

sudo xcode-select --switch /Applications/Xcode-beta.app/Contents/Developer

既に入っているOBSを別のものに置き換える(更新する)場合は、次のようにして一度プライバシーとセキュリティーに登録された情報をクリアした方がいい。

tccutil reset Camera com.obsproject.obs-studio
tccutil reset Microphone com.obsproject.obs-studio
tccutil reset ScreenCapture com.obsproject.obs-studio

デフォルトのdmgbuildはx86_64のもの?
which dmgbuildで/usr/local/bin/dmgbuildが返ってきたらそうかも。
そのままではx86_64のpythonを要求される。一度消して
pip3 install dmgbuild で入れ直した方がいい。
だいたいどれもpkgが作れるようpkgprojを用意してくれているので
packagesbuild ./installer.pkgproj
とかやるとpkgファイルを作ることができる。
---