ProcessingのVideoライブラリがmacOS Catalinaで動かないのを直した
2020/5/21での動作確認です。
先日macOSをアップデートしました。春だし、ストレージ整理も兼ねて。
そしたらProcessingがGStreamerを書き換えても動かなかったんですよね。
zoomのように大人しく、「セキュリティ設定」にprocessingが追加できれば動きそうですが、普通にスケッチを走らせただけでは出てこず、Videoライブラリ(Capture)が動きません。対処にちょっと手間取ったので、ここで共有します。
はじめに
ここに載せる策は、Githubのissues等で私が見つけた解決策です。私自身が発明した解法ではありません。GStreamerを書き換える方法は後述するとおり、すでに日本語での案内がありますが、macOSにカメラの使用権を許可させる方法の日本語での案内は、おそらく5/21現在なかったので、この記事を書いています。
動作環境
macOS Catalina ver 10.15.4
processing 3.5.4
Video Library Release 6 (version 2.0-beta4) //githubからDLが必要です
はじめにとった策
Processing video library 使えない問題について(macOS Catalina)
Mac OS CatalinaでProcessingのVideoキャプチャが動かなくなった時の対処法
Github-Video capture not working in Mac OS Catalina #134
ここをもとに、
Video Library Release 6 (version 2.0-beta4)の導入と、
ターミナルでGStreamerの属性を書き換え。しかし動かず。
エラー文
問題は、カメラ情報の取得まではうまくいっているのに、カメラが使えないってことです。
やっぱりセキュリティ設定のあたりが怪しいな、しかしProcessingがカメラへのアクセスを要求してこない......と悩んでいたところで、見つけました。
加えて以下の処理をすることで、動くようになりました。
原本
Github-Video capture not working in Mac OS Catalina #134
手順
ProcessingからProcessingーjavaをインストール
↓
ターミナルからProcessingーjavaを経由してVideoライブラリを含むスケッチを起動
↓
macOSから「Processingがカメラへのアクセスを求めています」という旨のアラートが表示されるので同意
↓
その後はターミナルを経由しなくてもスケッチが動くようになる。
1.ProcessingからProcessingーjavaをインストール
ここを押せばProcessingーjavaをインストールできます。これでターミナルからProcessingを動かすことができます。
2.ターミナルからProcessingーjavaを経由してVideoライブラリを含むスケッチを起動
ターミナルを起動したら、以下のコマンドを打ちます
processing-java --sketch= 「Videoライブラリを使用したスケッチのパス名」 --run
「Videoライブラリを使用したスケッチのパス名」は環境に合わせて変更してください。私の場合は、Videolibraryのサンプルスケッチ「GettingStartedCapture」を使用したのでこんな感じに
processing-java --sketch=/Users/「私のユーザー名」/Documents/Processing/libraries/video/examples/Capture/GettingStartedCapture --run
processing-java --sketch=でスケッチを指定、--runで走らせます。
3.macOSから「Processingがカメラへのアクセスを求めています」という旨のアラートが表示されるので同意
スケッチが走れば、Processingがカメラへのアクセスを求めてきます。
セキュリティに不安がなければ許可しましょう。許可しないと使えませんが。
するとこんな感じで、Processingにカメラへのアクセスを許可することができました。
このあと、Processingを一度再起動すれば、今後ターミナルを経由しなくても、スケッチが動くようになります。