最近ビデオファイルのカタログを作りたいと思って、サムネイル作りがしたいのですが、WindowsなWMV、MacなQuickTime、WebなFLV、加えてmp4などといくつもフォーマットがあって、だいたいのソフトがMWV+MPEGに対応、あるいはMOVに対応、あるいはFLVに対応、といった具合に3つに分かれており、なかなか一括で作業できません。
あと、9割以上のソフトが最初のフレームしかサムネイルに出来ないため、半分くらいのビデオがクロで始まっているので、当然サムネイルが黒になってしまいます。
なのでProcessingでやってみようと思ったら、ViodeのライブラリにMOVが扱えるものが含まれていました。
ところが、やはりMOVしか扱えず、WMVはエラーになりました。
難しい・・・。全部とは言わないまでも大方対応できるソフトは無いのか・・・めんどいよ。
とりあえずテストとしてやってみたコードです。
//video thumbnail
import processing.video.*;
Movie myMovie;
void setup() {
size(300, 300);
//ファイル名は実在するものにします↓
myMovie = new Movie(this, "videoFilePth\videofile.mov
myMovie.loop();
}
void draw() {
tint(255, 20);
image(myMovie, mouseX, mouseY);
}
void movieEvent(Movie m) {
m.read();
//ちょうど半分の時間のところへジャンプ!
myMovie.jump((myMovie.duration())/2);
//ただしこのままではクロップされてしまいます。
saveFrame("movThumbnail.png");
}
これで、出てきたウィンドウを閉じると、ソースのあるディレクトリにサムネイルがPNGで保存されます。
勝手にPNGで保存してくれるのが手軽でいいですね。
あと、なんと言っても指定したフレームにジャンプできるのがすごくいいよ。
QuickTimeはこういうフレームの考え方がしっかりしていそうなイメージがあるなぁ。