processing:catalinaでvideoライブラリ

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン両方とも次のリビジョン
processing:catalinaでvideoライブラリ [2020/04/25 11:59] – 作成 babaprocessing:catalinaでvideoライブラリ [2020/04/25 12:24] – [解決方法] baba
行 15: 行 15:
  
 ===== 解決方法 ===== ===== 解決方法 =====
-  書類/Processing/Libraries/video のフォルダを [[https://github.com/processing/processing-video/releases/tag/r6-v2.0-beta4]]のベータ最新版と入れ替える+  まずは、書類/Processing/Libraries/video のフォルダを [[https://github.com/processing/processing-video/releases/tag/r6-v2.0-beta4]]のベータ最新版と入れ替える
  
 +ちなみにmacOSでは日本語環境だと、書類というフォルダ名ですが、実体はDocumentsというフォルダ名であることを注意してください。terminalで利用するときは Documentsとなります。
 +
 +次にターミナルで~/Documents/processing/libraries/video/library/macosx に行き、次のコマンドを実行します。  
 +  $ xattr -p com.apple.quarantine libavcodec.58.35.100.dylib
 +  
 +すると
 +00c1;5dc1bfaa;Chrome;78F18F7D-3F71-4E55-8D58-BAB946AB4707
 +という文字列が帰ってきます。これは実行環境によって微妙に変わるようですが、最初の4文字が00c1でない場合は、そこだけ00c1に変更してください。その後下記をターミナルで実行しますが、その際 STRING 部分は上記の文字列で読み替えてください。
 +
 +  $ xattr -w com.apple.quarantine "STRING" *.dylib
 +  $ cd gstreamer-1.0
 +  $ xattr -w com.apple.quarantine "STRING" *.dylib
 +  
 +ここまででライブラリの準備は終わりです。では次にmacOS側のセキュリティ設定を修正します。ひょっとすると現状までの準備で動作する人がいるかも知れません。その人はすでに過去Processingを利用していて、カメラのセキュリティ設定が適切になされている場合になります。私の環境もそうでしたが、ここまでの修正だけでは実行時にエラーがでてしまいました。それはmacOS側でProcessingがカメラを利用することを許可していないのが原因です。そこであとは「設定」→「セキュリティとプライバシー」→「プライバシー」→「カメラ」をクリックすると出てくるカメラ利用許可一覧にProcessingが入ればよいです。ただし3.5.4を利用してカメラ動作のサンプルを実行しても、「カメラの使用を許可しますか?」ダイアログがでることなく、そのままプログラムが終了してしまいます。通常はこのダイアログボックスにユーザが許可をだすことで、macOSのプライバシー設定に自動で反映されるのですが、そこがProcessingとmacOS側で連携が取れていません。
 +
 +ただしこれはProcessingをGUI操作で実行した場合に起こるようで、terminalから直接Processingを起動すると、ちゃんとダイアログボックスが表示されます。つまり手順としては、
 +  - Processingを一旦終了
 +  - terminal で Processing/Contents/MacOS に移動して、次のようにProcessingを実行する。
 +    - $ ./Processing
 +  - 新規スケッチファイルの中に下記のプログラムをコピーして実行する
 +<code>
 +import processing.video.*;
 +
 +Capture cam;
 +
 +void setup() {
 + size(640, 480);
 +
 + String[] cameras = Capture.list();
 + 
 + if (cameras.length == 0) {
 +   println("There are no cameras available for capture.");
 +   exit();
 + } else {
 +   println("Available cameras:");
 +   for (int i = 0; i < cameras.length; i++) {
 +     println(cameras[i]);
 +   }
 +   
 +   // The camera can be initialized directly using an 
 +   // element from the array returned by list():
 +   cam = new Capture(this, 320,240, cameras[0] );
 +   cam.start();     
 +      
 +}
 +
 +void draw() {
 + if (cam.available() == true) {
 +   cam.read();
 + }
 + image(cam, 0, 0);
 + // The following does the same, and is faster when just drawing the image
 + // without any additional resizing, transformations, or tint.
 + //set(0, 0, cam);
 +}
 +
 +</code>
 +
 +以上で、カメラの許可ダイアログが表示されると思います。これを許可してあげると自動でセキュリティ設定にもProcessingが追加されるのを確認してください。以降は通常のGUI操作でProcessingを起動しても問題はありません。
 +
 +以上。
  
  
  
  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/pages/processing/catalinaでvideoライブラリ.txt
  • 最終更新: 2020/06/05 11:06
  • by baba