web カメラ

Linux サーバに USB 接続した web カメラを使って、画像をとりこみます。

takanori

カメラ

MCM-06SL PCカメラ

カメラは Web カメラを購入 のエントリーによると 2005-12-02 に購入した

ロアスMCM-06SL

というものです。

詳しいスペックはこんな感じです。

この Web カメラを Linux が入っているサーバーにつないで、画像をとりこめるようにします。

ドライバのインストール

で、当然メーカーからは Linux 用のドライバが出ているわけはなく、google で探してみると、

Spca5xx

というところで作られているドライバを使うとつなげられるようです。

というわけで、ダウンロードして書いてある手順どおりにインストールします。(私は kernel 2.4 系を使っていますが、kernel 2.6 系では手順が違うようです。)

まず最初にカーネルのヘッダをインストールして、コンパイルします。

% sudo apt-get install kernel-headers
% cd /usr/src/linux
% make dep

次にドライバ本体をダウンロードして普通に make install します。

% wget http://mxhaard.free.fr/spca50x/Download/spca5xx-20060101.tar.gz
% tar xfz spca5xx-20060101.tar.gz
% cd spca5xx-20060101
% make
% sudo make install

インストールに成功すると、lsmod コマンドで spca5xx というモジュールが読み込まれていることが確認できます。::

% lsmod
Module                  Size  Used by    Tainted: P
spca5xx               651868   0
videodev                8576   1 [spca5xx]
:

次に、Web カメラを Linux が入っているサーバーにつないで、自動的に認識するか試します。 が、その前に HotPlug 機能(?)をサポートするために murasaki を立ち上げておきます。

% sudo /etc/init.d/murasaki start

dmesg コマンドで確認すると、ちゃんと Web カメラを認識して適切なドライバが読み込まれたようです。

% dmesg
:
hub.c: new USB device 00:10.1-1, assigned address 3
usb.c: USB device 3 (vend/prod 0xac8/0x301b) is not claimed by any active driver.
Linux video capture interface: v1.00
usb.c: registered new driver spca5xx
drivers/usb/spca5xx.c: USB SPCA5XX camera found. Type Vimicro Zc301P 0x301b
drivers/usb/spca5xx.c: [spca5xx_probe:8435] Camera type JPEG
drivers/usb/zc3xx.h: [zc3xx_config:405] Find Sensor PB0330
drivers/usb/spca5xx.c: [spca5xx_getcapability:2217] maxw 640 maxh 480 minw 176 minh 144
drivers/usb/spca5xx.c: spca5xx driver 00.57.08 registered

キャプチャ

次に、カメラの認識ができたので、そのカメラを使って画像をとりこもうと思います。

といっても、サーバーなので普段画面はつないでいませんし、Login もしていません。

なので、xawtv とかを使うのはちょっと違う感じです。

そこでドライバと同じところで公開されている SpcaView を使うことにします。

インストールの手順は下記の通りで、make の前に必要とするライブラリ SDL-devel をインストールしておきます。

% apt-get install SDL-devel
% wget http://mxhaard.free.fr/spca50x/Download/spcaview-20051212.tar.gz
% tar xfz spcaview-20051212.tar.gz
% cd spcaview-20051212
% make
% sudo make install

インストールに成功すると、/usr/local/binspcaview, spcaserv, spcacat という3つのコマンドがインストールされます。

で、 spcacat コマンドを実行すると画像を取り込んで jpeg 形式に落としてくれそうなんですが、エラーが出てうまくいきません。

なんでだろうと調べてみると、video デバイスへの読み書きが root じゃないとできないからのようです。というわけで video デバイスを誰でも読み書きできるようにしちゃいます。

% sudo chmod a+rw /dev/video0

これで、一般ユーザからでも spcacat コマンドを使って画像がとりこめるようになりました。

下記のコマンドを実行すると、SpcaPict.jpg というファイルに10秒(10000ミリ秒)ごとに画像をとりこんでくれました。

% spcacat -p 10000

あとはこれを定期的にサーバから見えるようにすれば、家の監視ができるようになります。