★こちらには新しい記事があります。
カメラ映像を使用した授業でmacOS Catalinaの場合にProcessingのvideoライブラリが使えない問題が多発しています。
解決策の手順としては以下のようになります。
動画も作成したので参考にしてください。
https://github.com/processing/processing-video/issues/134#issuecomment-550000519
の記事を参考にさせていただきました。
■1.videoライブラリをバージョン1から2へ差し替える
https://github.com/processing/processing-video/releases/tag/r6-v2.0-beta4
からvideo2.0beta をダウンロード
/Users/xxxx/Documents/Processing/librariesにあるvideoと差し替える。
ない場合もここに置く。
■2.ダウンロードしたファイルのダウンロード属性を書き換える
ターミナルを開く。
コマンド
cd ~/Documents/processing/libraries/video/library/macosx
を入力してリターンするとmacosxフォルダーに行く。
コマンド
xattr -p com.apple.quarantine libavcodec.58.35.100.dylib
を入力してリターン
以下のような文字列が返ってくる。
人によって異なるので注意。
0081;5dc1bfaa;Chrome;78F18F7D-3F71-4E55-8D58-BAB946AB4707
0081を00c1に変えて、新しい文字列を作る。
00c1;5dc1bfaa;Chrome;78F18F7D-3F71-4E55-8D58-BAB946AB4707
この文字列は次のコマンドで以下のように使用する。
コマンド
xattr -w com.apple.quarantine “00c1;5dc1bfaa;Chrome;78F18F7D-3F71-4E55-8D58-BAB946AB4707” *.dylib
を入力してリターン
同様の操作を繰り返す
コマンド
cd gstreamer-1.0
を入力してリターン
コマンド
xattr -w com.apple.quarantine “00c1;5dc1bfaa;Chrome;78F18F7D-3F71-4E55-8D58-BAB946AB4707” *.dylib
を入力してリターン
■3.Processingがカメラにアクセスするのを許可する
Finderでアプリケーションに行く。
Processing.appを右クリックして、パッケージの内容を表示する。
Contents/MacOSの中にあるProcessingをダブルクリックする。
開いたprocessingに以下のカメラのテストコードを書く。
これを実行すると、カメラへのアクセスを許可するか聞いてくるので許可する。
なおカメラのテストコードではカメラ名を
“FaceTime HDカメラ(内蔵)”
などのように直接指定しても良いが、機種により微妙にカメラ名が異なるため動かないことがある。
そのため、以下のようにカメラリストを作成して0番目のカメラを指定するのが良い。
import processing.video.*; Capture capImg; void setup() { size(640, 360); String[] cameras = Capture.list(); println("Available cameras:"); for (int i = 0; i < cameras.length; i++) { println(i, cameras[i]); } capImg = new Capture(this, width, height, cameras[0]); capImg.start(); } void captureEvent(Capture capImg) { capImg.read(); } void draw() { image(capImg, 0, 0); }
以下の動画で詳しく説明しています。