sleepingbird.net Home since May.11 2003
Copyright sleepingbird, 1993- All rights reserved.
Linux Server

TOP > Linux Server > WebCamera (LiveCam)

Camera

 もともと Linux カーネルには、Video for Linux という video デバイスを制御する機能が組み込まれている。
 VineLinux の場合には、特にカーネルを再構築しなくてもそのまま運用が可能。

 今回使用するのは、システムを簡単に構築するためにUSB カメラ。(今後の希望としては、余り使わなくなった8ミリビデオカメラ+キャプチャボードで高画質、自動焦点・露出を運用したいところ。)

 USBカメラは、使用されているICチップによって Linux 用のデバイスドライバが提供されていないものも有るので注意する。
 今回使用したのは、ELECOM 製の UCAM-C1C30SV という廃盤寸前の枯れたカメラ。(Linux の場合、デバイスは出来るだけ枯れて安定したものが安全)
ucam-c1c30sv_02.jpg
仕様は次のとおり
■インターフェイス : USB1.1(バスパワー)
■画素数 : 約30万画素
■受像素子 : 1/4インチCMOSセンサ
■解像度 : 最大640*480ドット
■フレームレート : 15fps(640*480)、30fps(320*240以下)
■色数 : 約1677万色(24bit)
■クリップ挟み厚 : 6mm〜42mm
■外形寸法 : W40.4*D57*H79mm
■本体重量 : 118g
■ケーブル長 : 1.5m

 使用されているチップは ov511、最新の Linux ドライバはここにある。
 なお、ほかのカメラを使う場合には、使用されているチップが取扱説明書には記載されていないので注意する。事前にネットで検索して、実績のあるカメラを購入すること。新製品はドライブできない確率が高い。

Driver install

Vine Linux 4.0
Jan. 29 2007
 VineLinux 4.0 の場合、ドライバのインストール手続きは不要。そのままで ov511 チップを使用しているカメラを認識する。というか、ドライバを不用意にインストールするとカメラを認識しなくなる。最悪、OS の再インストールするまで認識しないことになりかねないので、そのままカメラを接続して使用する。
 ちなみに、1.x 系ドライバは kernel Version 2.5 までにしか対応していないので Version 2.6 の VineLinux 4.0 では使用できない。また、2.x のドライバでコンパイルできたのは最終の Stable? Probaby版 の 2.32 だけだが、インストールすると見事にカメラが認識できなくなった。

 以下は VineLinux3.2 についての実践記事、おそらく必要の無かった作業だと思われるが参考のため掲載。

 もともと、VineLinux には組み込まれているが、最新版をインストールする
 コンパイルの方法はアーカイブの中にある README にも書かれている。
 (後述してあるが、2.XX 実験バージョンなので stable 版の 1.xx が確実。2.xx で2ヶ月間運用後、突然カメラがシステムから認識されなくなった。)

$ wget http://alpha.dyndns.org/ov511/download/2.xx/distros/ov511-2.32.tar.bz2
$ tar xpf ov511-2.32.tar.bz2
$ cd ov511-2.32
$ make clean
$ make
$ su
# make install
 コンパイルが完了したら、modprobe でドライバを組み込んで、lsmod で確認する。
# /sbin/modprobe ov511
# /sbin/lsmod
Module                  Size  Used by    Tainted: P  
i2c-core               16576   0  (unused)
ov511                  74336   1 
videodev                7232   1  [ov511]
soundcore               5508   0  (autoclean)
ethertap                3360   0  (autoclean) (unused)
                         .
                         .
                         .
 USB にカメラを接続すると認識する。(ハズ)

xawtv

Vine Linux 4.0
Jan. 29 2007

 キャプチャユーティリティ xawtv をインストールする。
 apt-get で VinePlus からインストールできる。

$ su
# apt-get install xawtv
# exit

 インストール後に、X Window を起動し、コンソールから $ xawtv 起動して画像が表示されるのを確認する。

 以下は VineLinux3.2 についての実践記事、参考のため掲載。

 キャプチャユーティリティ xawtv をインストールする。
 コンパイルには jpeg の開発用ライブラリが必要なので事前に apt-get でインストールしておく。
$ su
# apt-get install libjpeg-devel
# exit

$ wget http://dl.bytesex.org/releases/xawtv/xawtv-3.95.tar.gz
$ tar zxfv xawtv-3.95.tar.gz
$ cd xawtv-3.95
$ ./configure
$ make
$ su
# make install
  インストール後に、X Window を起動し、コンソールから $ xawtv 起動して画像が表示されるのを確認する。

webcam

 定期キャプチャユーティリティ webcam を起動する。
 設定ファイルを編集する。
 カメラの取り付けが逆さまなので、rotate を 2 にして画像を180度回転させている。キャプチャ間隔は15秒。画像サイズは最大640X480だが、レスポンスなどを考えて320X240とした。
 ftp 転送しないので、セクションごと削除してある。

# cat .webcamrc
[grab]
device = /dev/video0
text = "One's Doghouse webcam %H:%M:%S %m-%d-%Y"
fg_red = 255
fg_green = 255
fg_blue = 255
width = 320
height = 240
wait = 0
rotate = 2
top = 0
left = 0
bottom = -1
right = -1
quality = 95
trigger = 0
once = 0
archive = /home/httpd/html/webcam/webcam.jpg
delay = 15
 これで保存された画像を見るための html
<BODY onload="REFRESH()">
<IMG src="webcam.jpg" border="0" name="LCNMON" width="320" height="240">
<SCRIPT language="javascript">
function REFRESH(){
        var today       = new Date();
        var hour        = today.getHours();
        var min         = today.getMinutes();
        var sec         = today.getSeconds();

        if(document.images)document.LCNMON.src = 'webcam.jpg?' + hour + min + sec;
        window.setTimeout( "REFRESH()",15000);
}
</SCRIPT>
</BODY>
 画像オブジェクトを15秒ごとに更新する javascript 。
 画像キャプチャとオブジェクト更新がそれぞれ15秒間隔なので、web 上では実際よりも最大で30秒程度昔の画像が表示されることになる。

 キャプチャの開始と終了
# webcam &
# killall webcam
 このサイトのWebCam(LiveCam)はこちら

USB cable

 カメラ付属のケーブルは1.5mなので、撮影対象までの距離に制約がある。
 延長ケーブルも市販されているが、USBの規格上5mを超えることは出来ないが、5mおきにリピーターを挟むことにより最大20mまで延長することが可能となる。ただし、デバイスによっては信号遅延により正常動作しないこともあるので注意が必要。
 今回は、リピータ付きケーブル2本と3mの延長コードを足して14.5mのケーブル長とした。

asb-911-1.jpg
asb-911-2.gif
 使用したリピータ付きケーブル(パソコン工房で\3,120で購入)

 ケーブル接続図

------                    -------                    -------            ---      -------
| PC |--------------------| rep |--------------------| rep |------------| |------| CAM |
------                    -------                    -------            ---      -------
     |-------- ASB911 5m -------|-------- ASB911 5m -------|-- 延長 3m --|-- CAM 1.5m -|

トラブル

Aug.22 2004

 8月15日13時14分に突然カメラがシステムから認識されなくなった。
 2ヶ月間の酷使でカメラが故障したかと考え、確認のため Windows に接続したら問題なく稼働している。
 しかし、カメラを接続し直しても OS を再起動しても認識しない。何か linux だけに関わる故障が発生したのか?
 昨日、アキバで同じカメラが半値で売っていたので購入して試してみたが結果は同じ。
 悩んだ末、カメラチップのドライバを stable 版に入れ替えたところ、何事もなかったように認識した。
 新しもの好きの敗北。orz