■
まえからしたかった,Processingでのキャプチャに成功したから,
今度は,それをビデオ形式で保存してしまおうという,お話.
import processing.video.*; Capture cam; MovieMaker mm; void setup() { size(320,240); cam = new Capture(this, width, height); mm = new MovieMaker(this,320,240,"test.mov",30,MovieMaker.H263,MovieMaker.HIGH); } void draw() { int sum = width * height; if (cam.available() == true) { cam.read(); cam.loadPixels(); mm.addFrame(); image(cam, 0, 0); } } void keyPressed() { if(key == ESC){ mm.finish(); } }
先日のコードに付け加えたのは,MovieMakerクラス
本家のリファレンスを意訳すると.
このクラスでは,ProcessingプログラムからQuickTimeムービを作ることができます.
パラメータの設定次第で,サイズやフォーマットの違うムービを作ることができます.
addFrame()でフレームを追加してゆき,最後にfinish()でムービファイルを閉じます.
このfinish()を飛ばすことは許されません,
今回はProcessingに終了シグナルを送るESCキーが押された場合はmovieも閉じるというようにしました.
結構微妙かな?(Processingが先に終わるか?finish()が先に呼ばれるか...)と思いましたが
案外うまく動いているようです.