GrADSの画像を自動的に動画化

方針:手作業をとにかく減らす
1、複数ファイルも同一の*.gsで扱えるよう、*.ctlファイルでの読み込みファイル名は%y4などを使った形にする。
2、日単位に描画を繰り返すとカラーの上限が変動するので、displayの直前にカラーレベルの定義を書いた自作の*.geを都度execすることにする。
3、date +%s 画面ダンプをしたファイル名は、スクリプト開始時のエポック時間を基準としたインクリメント数とする。
4、xwininfo 画面ダンプのためのウィンドウIDの取得
5、画像の変換順 xwd → png → mpeg2またはwmv(静止画から動画への変換はffmpegを使う。)
最初は単純にmng動画にしたのだが、これは動かせるブラウザが少ないのでボツにする。

ffmpegを画像→動画の生成に使う

09年3月に0.5がリリースされたようだ。本家からDLしてmakeする。
http://www.ep.sci.hokudai.ac.jp/~tutaka/ffmpeg.htm <---オプション説明は古いが概要は分かる
http://codezine.jp/article/detail/2444
http://ffmpeg.mplayerhq.hu/ ←----(本家)

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ./ffmpeg
./configure
make
make install

早速、動画を作ってみる

> ffmpeg -h
usage: ffmpeg [[infile options] -i infile]... {[outfile options] outfile}...
ここで示されるように、オプションの順が大事。
> ffmpeg -formats 対応フォーマットが確認できる。
接頭の単語の意味: D(Decordable)=入力可能、E(Encordable)=出力可能、A(Audio Codecs)、V(Video Codecs)
> ffmpeg -i *.png -vcodec wmv2 prcp1999.wmv

しかしながら、約1.5kBの画像ファイルが366個だとセグメンテーション違反で落ちる。ためしに15個程度だとOK。開発途上なので使用にあたっていろいろと制限はあるようだ。
これ以外に、大問題あり。画像を上記のように*.pngと複数指定したら、最初のイメージですべてが上書きされてしまいました!バグ…なんだろうなあ。使用はとりあえず様子見しよう。
備忘録として、このときのバージョン。

> ffmpeg -version
FFmpeg version SVN-r18305, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration:
libavutil 50. 2. 0 / 50. 2. 0
libavcodec 52.22. 3 / 52.22. 3
libavformat 52.32. 0 / 52.32. 0
libavdevice 52. 1. 0 / 52. 1. 0
libswscale 0. 7. 1 / 0. 7. 1
built on Apr 2 2009 10:59:25, gcc: 4.3.2 [gcc-4_3-branch revision 141291]
FFmpeg SVN-r18305
libavutil 50. 2. 0 / 50. 2. 0
libavcodec 52.22. 3 / 52.22. 3
libavformat 52.32. 0 / 52.32. 0
libavdevice 52. 1. 0 / 52. 1. 0
libswscale 0. 7. 1 / 0. 7. 1