見出し画像

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);

統合デザインのコンピューター室をご利用の方はこちらに該当する可能性があります。参考にしてください!

もしこれらでも解決できないことがあれば、前回の記事も参照の上、お気軽にご相談ください。

この記事が気に入ったらサポートをしてみませんか?