Apple iSight のサンプルをお借りしたのでチャレンジ。
iSight は
The IEEE1394 Digital Camera List にもある通りIIDC 1.30 規格なので基本的には他の IEEE1394 カメラと同じやり方でいくはず。しかしこの表を見てもこの仕様でこの価格は優秀ですなーiSight。
必要なものは libraw1394、libdc1394、coriander あたり。
libraw1394 は入ってなければ apt-get とかでガツンといれよう。
libdc1394 は
オフィシャルページ からダウンロードしてきてインストール。ついでに coriander 1.0.0-pre3 も
オフィシャルから落としてきてインストール。
libdc1394-0.9 以降は kernel 2.4.19 以降が必要なので注意。
どちらも ./configure、make、make install みたいな感じでいくと思う。詳しく書くのは面倒なので各自パッケージに付属の INSTALL とかを確認するべし。少なくとも configure でオプションつけたりはしませんでした。で、/dev/raw1394 とか /dev/video1394 がなければ
# mknod -m 666 /dev/raw1394 c 171 0
# mknod -m 666 /dev/video1394 c 171 16
とかして作っておこう。
一通りインストールが終わったら、各モジュールを読み込む
# modprobe ieee1394
# modprobe raw1394
# modprobe ohci1394
# modprobe video1394
多分 video1394 は最後にしといたほうが無難だろう。
で、coriander を起動してみる。なんか GUI で色々設定できそうである。
とりあえずデバイスを raw1394 ではなく video1394 にしてみる。
devfs をサポートしていれば /dev/video1394/0 とかでいいんだがそうでない場合は
/dev/video1394 にしとく。
で、Receive 押して Save 押せば指定のフォルダに jpg がガンガンできる。
何も考えずに 30 fps で 1 fps 毎に保存とかにすると 1 秒で 30 枚の jpeg が生成
されて楽しいかもしれないがおすすめはできない。
さて、これで一応画像は取り込むことができるのだが、Coriander を使えば /dev/video1394 を Video4Linux デバイスとして使ったりできるらしい。まずは、
vloopbackを落としてきてコンパイル、insmod で組み込んでから Coriander 付属のコマンド dc1394_vloopback を使えば /dev/video0 に loopback できる・・・っぽいのだが、どうも vloopback 自体がコンパイルできん。なぜだ。とりあえず動くことだけ確認したので満足して今日のとこはここまでとする!
あ、書き忘れてた。
肝心の画像ですが、Coriander を使えばオートフォーカスやオートホワイトバランス等も効き、なかなか良好な画質の画像が得られます。30万画素クラスの CMOS カメラ等いくつかテストしましたが、それらと比べるとどれよりも良好な画質と言えます。V4L にループバックできればお手軽にチャットとかに使えそうなんですが・・・。カーネル 2.6 系とかならスムーズにいくんですかね?