自宅サーバでLiveカメラ (2002/10/22)

せっかく常時稼働している自宅サーバですから,面白い使い方を考えてみました。
サーバマシンの様子を外部から監視できるように,ライブカメラを設置してやろうというわけです。(そんなことしてどうする)

現在稼働しているサーバ4号機(TinkPad380E)にはUSB端子がついてないので「休止中」です。
これはサーバ3号機(EPIA-5000)につないだカメラでキャプチャされた画像です。

ライブカメラがちゃんと動き出すまでの過程をいつものようにメモしておきます。
はじめにつないだカメラは,AXIAのix-1という30万画素のCMOSイメージセンサを持つおもちゃデジカメ。
PCのUSB端子につなぐと「ピピッ」という音がしてカメラのLEDが点灯しました。 #dmesg というコマンドを打つと,「STV0680 camera found」とか「STV0680 USB camera Driver version v0.24 registering」とかいうメッセージが表示され,無事認識されました。STV680というのはおもちゃデジカメによく使われてるチップなんだそうです。

このカメラを使って一定の時間間隔で画像をキャプチャし,サーバに保存してやるには,xawtvというソフトを使います。
ここにRPMファイル(xawtv-3.73-0vl1.i386.rpm)があったので,ダウンロードしてインストールしました。
インストール完了後,X Windowの環境で,$ xawtv と打ち込んでやると,こんな具合にウィンドウが開いて画像が表示されます。
取り込んだ静止画をローカルに保存したり他のサーバにFTPするためには,xawtvをインストールすると同時に作られる/usr/bin/webcamというコマンドを使います。
/home/murata/.webcamrc(murataはLinuxにログインする一般ユーザ名)というwebcamの設定ファイルを作っておくと,webcam起動時にこれを読み込んでくれます。
これ↓が僕の.webcamrcです。詳しくはここを参考にしてください。

[ftp]
#host=www ←FTPしないから # でコメントアウト
#user=hoge
#pass=xxxxxx
#passive=1
dir=/home/httpd/html ←画像を保存するディレクトリ(ローカル)
file=webcam.jpg ←こういうファイル名で保存される
auto=0
local=1 ←ローカルに保存するときは1,FTPするときは0
ssh=0
[grab]
device=/dev/video0
test="%Y-%m-%d %H:%M:%S" ←画像に年月日時分秒を入れる
infofile=filename
width=320  ←キャプチャする画像サイズ(横)
height=240 ←キャプチャする画像サイズ(縦)
delay=180 ←180秒おきにキャプチャして保存する
#input=composite1
rotate=0
top=0
left=0
bottom=-1
right=-1
quality=80 ←jpegの画像品質
trigger=0
once=0

$ webcam
コマンドラインから webcam と打ち込んでやると,画像キャプチャと保存が始まります。 あとは,この画像を表示するHTMLファイルを作ってやるだけです。

これがこのカメラでキャプチャされた画像です。
う〜ん,画質がいまいちだなー。
だいたい320×240(QVGA)でしかキャプチャできないんですよ。
これじゃ実質10万画素以下だもんな。

室内は暗いからかな,と思って屋外にカメラを向けてみてもこんな感じ。
曇り空なんだけど,それにしてもこれはひどい。
ホワイトバランスなんかもうめちゃくちゃです。(T_T)

(2003/01/11追記)
実はホワイトバランスの問題ではありませんでした。 詳しくは自宅サーバでLiveカメラ(2)をご覧ください。

これは同じカメラをWindowsのマシンにつないで,Listcamというライブカメラ用ソフトでキャプチャした画像。同じカメラとは思えないでしょ?
ソフトの問題じゃなくて,ドライバの問題でしょうなあ。
Windows用のドライバでは640×480(VGA)でキャプチャできて,Listcamはこれを320×240の画像に縮小してFTPしています。

奮発してCCDのUSBカメラを買いました。LogicoolQcam Pro3000(QV-3000)です。
このカメラも一発で認識できました。Linux,なかなかやるな〜。(^-^;)
$dmesgで確認したところ,usb-pwc というPhilipsのUSBカメラ用ドライバが読み込まれたようです。
ところが,キャプチャされた画像のサイズは160×120のちっちゃいやつなんです。おいおい,そりゃないぜ。

#tar xvzf usb-pwcx-8.2.2.tar.gz
どうやらココでダウンロードできるPWCX modulesをインストールしてやれば,でかいサイズでキャプチャできるようです。
さっそく,usb-pwcx-8.2.2.tar.gzをダウンロードして,tarしてやります。
tarすると現れるpwcx-i386.oを/lib/modules/2.4.18-EDEN/kernel/drivers/usb にコピーして,/etc/modules.confの最後に次の一行を書き加えます。

post-install pwc /sbin/insmod --force /lib/modules/2.4.18-EDEN/kernel/drivers/usb/pwcx-i386.o >/dev/null 2>&1  || :

PCを再起動してやると,こんどはちゃんとQVGAでキャプチャできました。(^-^)v
実は,何とVGAでもキャプチャできるんですが,ファイルサイズがデカすぎるのでQVGAでガマンしておきましょう。
いやいや,さすがにCCDですなあ。薄暗い部屋でもちゃ〜んと写ってるじゃないですか。

こっちは,CMOSのSTV680 USBカメラ(ix-1)。部屋の明るさは同じなのに随分差がありますな。

CCDのQV-3000
陽の当たる部屋だとこんな感じ。いいねえ♪

CMOSのix-1
もう,STV680のカメラには戻れませんな。
ドライバが改良されればもう少しマトモになるのかもしれませんが・・・。



【Liveカメラ 関連リンク】
ライブカムページを作りたい
Che-ez! babeでWebカメラ
Welcome to Webcam(USB) on linux!!
Linux Software Search
LINUX STV0680 USB SUPPORT
Linux support for Philips USB webcams




Linuxで自宅サーバ 
\1980のジャンクPCで自宅サーバ  
ノートPCにNFSインストール  
自宅サーバでHPを公開しよう
CGIを使ってみよう
WebDAVを使ってみよう(1)
WebDAVを使ってみよう(2)
kernelの再構築(VineLinux2.5)
自宅サーバでLiveカメラ
自宅サーバでLiveカメラ(2)
Wormの攻撃
ADSLの導入とIPアドレス自動更新
DiCE for Linux
メールサーバ(Postfix)の設定



【Top Page】