スクリーン上に点を打っていく様子を動画にする(windows)
スクリーンサイズが256x256の場合を説明する。
データは点のxy座標値を空白文字で区切って並べたアスキーファイルとして
用意する(ファイル名は"test.dat"、座標値範囲は0-1023)。
・ サンプルデータファイル: test.dat
・ このファイルを作ったCプログラムソース:makedat.c
・ その実行ファイル: makedat.exe
背景のスクリーンとして256x256・24bitカラーのBMPファイルをペイント等を
使って作る(ファイル名"test.bmp"):
・ サンプルスクリーンファイル: test.bmp
【動画を作るプログラム本体】
・ Cプログラムソースファイル: mtest5.c
今さらながらVideo for Windowsを使っている。
AVIファイルを作るにはAVIFileOpenでファイルを開き(新規作成)、
AVIFileCreateStreamでストリームを開き、ビットマップへのハンドルを
AVIStreamWriteに渡すことで画像(ビットマップ)を1枚1枚ストリームへ
付け加えていくことができる。今回の場合はビットマップに1点打つごとに
AVIStreamWriteすればよい。
全部書き終わったらAVIStreamRelease、AVIFileRelease、AVIFileExitを
順に呼べばよい。
ということのようだ。
コンパイル。vfw.libをリンクする必要がある:
cl vfw32.lib mtest5.c
(VCの場合)。BCCの場合は bcc32 mtest5.c だけでよい。
・ バイナリ: mtest5.exe
【動画を作る】
mtest5.exeと同じディレクトリにtest.bmpとtest.datを置いておいて
mtest5.exeを実行すれば動画"TEST01.AVI"が出来上がる。
・ 上のtest.bmpとtest.datから作った動画: TEST01.AVI
(サイズが大きいので注意:約40MB)
動画のファイルサイズが無駄に大きいので圧縮する。
Windows Media Encoding 8 Utility
(
Windows Media Audio 8 と Windows Media Video 8のページでダウンロードできる)
を使う場合は
wm8eutil -input test01.avi -output test01.wmv -v_mode 2 -v_quality 100
とかすると圧縮されたtest01.wmvができる。
・ 圧縮した動画:
test01.wmv
(ファイルサイズ約13kB)
・ バッチファイル: conv.bat
2004.07 (↑の文章を書いたのは2009.12)
原子によるダブルスリットの実験で縞が現れる様子
を放送大学(だったかな?)の
講義番組用に動画にする必要がありプログラムを作成。
2012/03/21 18:25:35
更新