Video4Linuxは,Linuxでビデオキャプチャデバイスを扱うためのAPIです. 詳しくは「Video4Linux」をキーワードに Googleってみてください. きっと,いろんな情報が見つかるでしょう.
私はもともと,FreeBSD派でしたので,Meteorドライバを使っていました. 2003年から急にLinux派に転向したのを機会に, Video4Linux(V4L)を使ったシンプルなキャプチャプログラムを作成しました. たいしたもんではありませんが公開します. Web上で公開されているサンプルソースを参考に書きましたので, もはや私は著作権を主張する立場にはありません.
% tar xvfz capture-V4L-v1.2.tgzで,capture-V4Lというディレクトリにファイルが展開されます.
% cd capture-V4L % makeで,capture-V4Lという名前の実行バイナリが作成されるはずです.
Video4Linux APIを利用したビデオキャプチャツール capture-V4L % capture-V4L [option] -d#: デバイス名をセットします.デフォルトは /dev/videoです. -s#: 入力端子を指定します(0:コンポジット, 1:コンポジット, 2:S端子) デフォルトは2(S端子)です. -t : TEOフォーマットで出力します.デフォルトはPPMフォーマットです. -m#: マルチフレーム(動画)をキャプチャします.# でフレーム数を指定します. デフォルトは1(静止画)です. -f#: 静止画のファイル名,連番のファイルフォーマットを指定します. -v : 冗長モード.いろんな情報が stderrに表示されます. -w#: gettimeofday()で計測したシステム秒が指定された時刻になるまで待機 -a#: 連続して#枚を撮影し平均画像を出力します.ノイズ除去に効果-あり. -u : USBカメラモード(NTSCチェックを省略する) ◎特徴 ・静止画/動画のどちらでもキャプチャ可能 ・出力は,PPM/TEOの2種類のフォーマットをサポート ・コンパイル時に特殊なライブラリは不要(libteoも不要) ◎出力フォーマットについて 本ツールは,様々な出力フォーマットに対応しています. ・フォーマットはPPMか/TEOか ・シングルフレーム(静止画)か/マルチフレーム(動画)か ・標準出力に書き出すか/指定された名前のファイルに書き出すか (PPM|TEO)*(静止画|動画)*(連番|マルチフレーム)の8通りがありますが,PPM フォーマットの動画を標準出力に出力できませんので,実際には7通りです. (1) PPMの静止画を標準出力に書き出す. % capture-V4L > image.ppm (2) TEOの静止画を標準出力に書き出す. % capture-V4L -t > image.teo (3) PPMの静止画を指定されたファイルに書き出す. % capture-V4L -f image.ppm (4) TEOの静止画を指定されたファイルに書き出す. % capture-V4L -f image.ppm -t (5) TEOの動画を標準出力に書き出す. % capture-V4L -m 10 -t > image.teo (6) PPMの動画を連番のファイルに書き出す. % capture-V4L -m 10 -f image.%d.ppm (7) TEOの動画を連番のファイルに書き出す. % capture-V4L -m 10 -f image.%d.teo -t ※ 連番ファイルのフォーマットは,printfの書式に従います. 「-m 10 -f image.%d.ppm」の場合は,image.0.ppm〜image.9.ppm となります.個人的には,image.%03d.ppm などとしして桁を揃えると image.000.ppm〜image.009.ppmなどとなって,美しいかと. ◎履歴 2003/10/16 Ver1.0 とりあえずのプロトタイプ 2003/10/22 Ver1.1 同期撮影用に -wオプション追加 2004/05/25 Ver1.2 USBカメラモードを追加