Processing 4.2でのVideoライブラリの問題と解決策:2023年度版
毎年授業をするたびに状況が変化するProcessingとVideoライブラリですが、最新バージョンの組み合わせでは、以前に書いてきたような問題はほぼ見られません。2023年度の授業に合わせて、また来年以降への知見として、最新情報をまとめておきます。
前回の記事 : https://note.com/soohei/n/na0e9fabeaf93
今回、検証に使ったコードはこちらです。
// カメラの映像を扱うためのライブラリをインポート
import processing.video.*;
// カメラ
Capture cam;
void setup() {
size(1280, 720);
// カメラのリストを出力
String[] cameras = Capture.list();
for (int i=0; i < cameras.length; i++) {
println("[" + i + "] " + cameras[i]);
}
// カメラを初期化
cam = new Capture(this, 1280, 720, cameras[0]);
cam.start();
}
void draw() {
// カメラが有効なら、映像を取り込む
if (cam.available()) {
cam.read();
}
background(0);
// 映像を描く(カメラの映像は画像 PImage と同じように扱える)
image(cam, 0, 0, 1280, 720);
}
以下、手元のマシンで具体的なエラー例を並べています。それらから得られた傾向をまとめたチャートもつくりました。ご覧ください。
https://miro.com/app/board/uXjVM7Hzd2E=/?share_link_id=531007022506
確認環境1 : iMac 27 (Intel 2017)
Mac OS Ventura 13.4
Processing 4.2 (Intel 64-bit)
Video Library 2.2.2
結果: OK
(2023/10/25追記: 確認環境4と同じエラー発生)
Mac OS Ventura 13.5.2
Processing 4.2 / 4.3 (Intel 64-bit) どちらも
Video Library 2.2.2
確認環境2 : MacBook Pro 16 (M1 2021)
Mac OS Ventura 13.4
Processing 4.2 (Apple Silicon)
Video Library 2.2.2
結果: OK
確認環境3 : MacBook Air (M1 2020)
Mac OS Ventura 13.4
Processing 4.2 (Apple Silicon)
Video Library 2.2.2
結果: OK
確認環境4 : iMac (Intel 年代不明)
Mac OS Monterey (12.6.3)
Processing 4.2 (Intel 64-bit)
Video Library 2.2.2
結果: エラー
BaseSrc: [avfvideosrc0] : Internal data stream error.
解決方法: Capture関数でフレームレートを数値指定してみる
https://qiita.com/kikpond15/items/7daf65a8b539813fb2de
こちらの記事では30にしていますが、25で動作しました。
cam = new Capture(this, 1280, 720, cameras[0], 25);
統合デザインのコンピューター室をご利用の方はこちらに該当する可能性があります。参考にしてください!
もしこれらでも解決できないことがあれば、前回の記事も参照の上、お気軽にご相談ください。
この記事が気に入ったらサポートをしてみませんか?