rsyslogdの設定とか [ZoneMinder]
ZoneMinderを使い始めるとすぐに気づきますが、30秒単位でsyslogに
Mar 10 15:59:15 ws zmc_dvideo0[20673]: INF [Monitor-1: 121246000 - Capturing at 30.30 fps]
などと書き込まれて、ちょっと鬱陶しいわけです。
ということで、/var/log/zmの下に、zm_video.logを作りそこに吐かせることにします。
# vi /etc/rsyslog.d/30-zm.conf
で、30-zm.confに
:programname, contains, "zmc_dvideo0" /var/log/zm/zm_video.log
:programname, contains, "zmc_dvideo0" ~
を追記。
また、ログローテーションを /etc/logrotate.d にファイルをつくって設定します。
# vi /etc/logrotate.d/zm
--
/var/log/zm/zm_video.log {
rotate 1
daily
missingok
notifempty
compress
delaycompress
}
--
あとは、
# service rsyslog restart
でOK
タグ:ログローテションの設定
ZoneMinderを設定する [ZoneMinder]
とりあえず動かすだけなら、簡単です。
[Add New Monitor]からMonitorを追加します。
Sourceタブをこんな感じで設定。
これだけでとりあえずMonitorできるようになります。
もちろんカメラによって設定値は変わります。
ちなみに、zm*なdaemonがいくつか動いているので、その役目をメモ。
zmc: ZoneMinder Capture daemonの略。このコンポーネントはビデオデバイスからフレームを一定速度でできる限り早く取り出すことが主な役割。
zma: ZoneMinder Analysis daemonの略。キャプチャしたフレームから変化の有無を検出し、必要に応じて警告や録画を行う。
zmf: ZoneMinder Frame daemonの略。Analysis daemonと共に動くコンポーネントで、実際にキャプチャしたフレームをディスクに書き込むことが主な役割。
zms: ZoneMinder Streaming serverの略。Webのインターフェースから、リアルタイムまはた過去のストリーミングを再生するために動いている。ライブモニターストリーミングか録画再生が実際に行われている際にのみ動作し、再生が終わったり、そのWebブラウザが閉じられたら終了する。もし、再生終了後などにもまだzmsが動いているようなら、apacheにパッチが必要かも知れません。
zmu: ZoneMinder Utilityの略。いくつかの便利な機能のコマンドラインインターフェースです。
zmfix: メインのキャプチャデーモンによって読み取られるビデオデバイスファイルが存在するようにするためだけの小さな実行ファイル。起動時にデバイスファイルがrootのみ読み取り可能に設定されていることがありますが、それを適切なパーミッションに設定し直します。システム起動時に実行されて、終了します。
Ubuntu 11.10 server に ZoneMinderをインストール [ZoneMinder]
ZoneMinderとはLinuxで動作するセキュリティと監視用途のビデオカメラソリューションです。
Video4LinuxをサポートするLinuxディストリビューションで動作します。
USB接続・ネットワーク接続ともにサポートされています。
RDBはMySQLを使用し、Webのインターフェースでシステムやカメラの設定ができるだけでなく、ライブビューやイベントリプレイを表示できます。
フィルターで検出されたイベントはメールやSMSでお知らせし、ビデオや写真で確認できます。
多くの機能と設定項目がありますが、大きく分けると5つの機能があります。
Monitor: Webカメラで撮影された動画をZoneMonitorから確認できますが、画像分析は停止していますので、警告や動画の保存は行われません。
Modect: MOtion DEteCTionの略で、取得された画像は分析され、動きがあると動画が保存されます。いわゆる動体検知です。
Record: 動きにかかわらず一定期間ごとの動画を決めた回数分まで保存しておくモードです。コンビニなどに設置されている監視カメラなどと動作は似ています。動体検知は行われません。録画のみ。
Mocord: ModectとRecordのハイブリッド版です。
Nodect: 外部トリガーと共に使用する特別なモードです。外部トリガーの要求に応じて動画が保存されます。
では、まず、インストールから。
Debian, Ubuntu, Redhat にはパッケージが用意されているのでインストールも簡単です。必要な他のパッケージも自動的にインストールされます。
nullmailのところは空欄で。
# apt-get install zoneminder
# ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
# apache2ctl restart
# chmod 4755 /usr/bin/zmfix
# zmfix -a
# chown www-data.www-data /var/cache/zoneminder/temp
# echo kernel.shmall = 268435456 >> /etc/sysctl.conf
# echo kernel.shmmax = 268435456 >> /etc/sysctl.conf
# sysctl -p
これでインストールは完了です。
http://(インストールしたサーバのIPアドレス)/zm/
でZoneMinderにアクセスできます。
Ubuntu 11.10 server で WEBカメラをつかう [ZoneMinder]
最近のWebカメラは大抵UVC(USB Video Class)に対応しており、LinuxではUVCドライバが提供されていますので、Plug & Play になっているはずです。
そこで、BUFFALOのWEBカメラを入手し、使ってみました。
iBUFFALO 【最高画質】 500万画素 FullHD対応 WEBカメラ ヘッドセット付 ブラック BSW50KM01HBK
- 出版社/メーカー: バッファローコクヨサプライ
- メディア: Personal Computers
仕様はこんな感じです。
■本体(カメラ部) | |
---|---|
インターフェース | USB2.0 |
映像素子 | 1/3.2インチカラープログレッシブCMOS |
フォーマット | 動画:MP4、WMV 静止画:JPG、BMP |
有効画素数 | 500万画素 |
最大解像度 | 1920×1080ピクセル |
最大フレームレート | 30fps |
フォーカス | オートフォーカス(焦点距離:6cm~∞) |
ケーブル長 | 1.5m(本体直付け) |
電源 | USBバスパワー |
本体寸法 | H48×W45×D72mm |
重量 | 約82.5g |
■その他仕様 | |
パッケージ寸法 | W147×D62×H212mm |
パッケージ重量 | 約265g |
動作環境 | 温度5℃~40℃、湿度20%~80%(結露なきこと) |
製品構成 | 本体(ケーブル長1.5m)、片耳フックタイプヘッドセット(ケーブル長1.8m)、ユーティリティCD、マニュアル、多言語簡易マニュアル、アナグリフ用3Dメガネ |
では、さっそく。
# dmesg |grep uvcvideo
[ 10.265019] uvcvideo: Found UVC 1.00 device USB2.0 UVC PC Camera (1460:3290)
[ 10.265088] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[ 10.265094] uvcvideo: Failed to query (129) UVC probe control : -19 (exp. 26).
[ 10.265109] uvcvideo: Failed to initialize the device (-5).
[ 10.265190] usbcore: registered new interface driver uvcvideo
[ 11.240047] uvcvideo: Found UVC 1.00 device USB2.0 UVC PC Camera (1460:3290)
というわけで、なにやらFailしているところもありますが、Ubuntu 11.10では認識されています。
さらに、
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 002: ID 0cf3:3005 Atheros Communications, Inc.
Bus 004 Device 002: ID 0472:0065 Chicony Electronics Co., Ltd PFU-65 Keyboard
Bus 004 Device 003: ID 0472:0065 Chicony Electronics Co., Ltd PFU-65 Keyboard
Bus 001 Device 004: ID 1460:3290 Tatung Co.
から、Tatung Co.が元のカメラデバイスのメーカーかもしれません。
Device ID 1460:3290 をキーワードに対応状況はこちらのサイトで確認できます。
残念ながら、1460:3290 はこちらのリストにはありませんでしたが、結果としては
現行のドライバで一部制限はありつつも使えます。
使える解像度やフレームレートなどは、
# luvcview -L
luvcview 0.2.6
init kbd.
SDL information:
Video driver: fbcon
Hardware surfaces are available (8100k video memory)
Device information:
Device path: /dev/video0
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 384, height = 216 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/15,
{ pixelformat = 'RGB3', description = 'RGB3' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 384, height = 216 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/15,
{ pixelformat = 'BGR3', description = 'BGR3' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 384, height = 216 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/15,
{ pixelformat = 'YU12', description = 'YU12' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 384, height = 216 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/15,
{ pixelformat = 'YV12', description = 'YV12' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 384, height = 216 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/15,
から判ります。
さらに詳細な情報を得たければ、こちらが便利かも知れません。
サイバラのページ
の旧ホームページ
に便利なツールがあります。
ページ2/9の位置あたりの、ソースのダウンロードからツールを
ダウンロードして、使います。
# gcc -o listup listup.c
そして、
# ./listup 0
Using camera #0
Camera : /dev/video0
Driver name : uvcvideo
Driver Version : 1.1.0
Device name : USB2.0 UVC PC Camera
Bus information : usb-0000:00:12.2-1
Capabilities : 04000001h
V4L2_CAP_VIDEO_CAPTURE (Video Capture) : OK
V4L2_CAP_VIDEO_OUTPUT (Video Output) : Not supported.
V4L2_CAP_VIDEO_OVERLAY (Video Overlay) : Not supported.
V4L2_CAP_VBI_CAPTURE (Raw VBI Capture) : Not supported.
V4L2_CAP_VBI_OUTPUT (Raw VBI Output) : Not supported.
V4L2_CAP_SLICED_VBI_CAPTURE (Sliced VBI Capture) : Not supported.
V4L2_CAP_SLICED_VBI_OUTPUT (Sliced VBI Output) : Not supported.
V4L2_CAP_RDS_CAPTURE (Undefined.[to be defined]) : Not supported.
V4L2_CAP_VIDEO_OUTPUT_OVERLAY (Video Output Overlay (OSD)) : Not supported.
V4L2_CAP_TUNER (Tuner) : Not supported.
V4L2_CAP_AUDIO (Audio inputs or outputs) : Not supported.
V4L2_CAP_RADIO (Radio receiver) : Not supported.
V4L2_CAP_READWRITE (Read/write() I/O method) : Not supported.
V4L2_CAP_ASYNCIO (Asynchronous I/O method) : Not supported.
V4L2_CAP_STREAMING (Streaming I/O method) : OK
Ctrl id(CID) : 00980900h (V4L2_CID_BRIGHTNESS)
Ctrl name : Brightness
Ctrl type : 1 (V4L2_CTRL_TYPE_INTEGER)
Min,Max,Step,Default : 80,215,1,128
Flags : 00000000h
Ctrl id(CID) : 00980901h (V4L2_CID_CONTRAST)
Ctrl name : Contrast
Ctrl type : 1 (V4L2_CTRL_TYPE_INTEGER)
Min,Max,Step,Default : 30,100,1,64
Flags : 00000000h
Ctrl id(CID) : 00980902h (V4L2_CID_SATURATION)
Ctrl name : Saturation
Ctrl type : 1 (V4L2_CTRL_TYPE_INTEGER)
Min,Max,Step,Default : 0,160,1,64
Flags : 00000000h
Ctrl id(CID) : 00980903h (V4L2_CID_HUE)
Ctrl name : Hue
Ctrl type : 1 (V4L2_CTRL_TYPE_INTEGER)
Min,Max,Step,Default : 0,255,1,0
Flags : 00000000h
Ctrl id(CID) : 0098090ch (V4L2_CID_AUTO_WHITE_BALANCE)
Ctrl name : White Balance Temperature, Auto
Ctrl type : 2 (V4L2_CTRL_TYPE_BOOLEAN)
Min,Max,Step,Default : 0,1,1,1
Flags : 00000000h
Ctrl id(CID) : 00980910h (V4L2_CID_GAMMA)
Ctrl name : Gamma
Ctrl type : 1 (V4L2_CTRL_TYPE_INTEGER)
Min,Max,Step,Default : 1,16,1,1
Flags : 00000000h
Ctrl id(CID) : 00980918h (V4L2_CID_POWER_LINE_FREQUENCY)
Ctrl name : Power Line Frequency
Ctrl type : 3 (V4L2_CTRL_TYPE_MENU)
Menu items:
0 : Disabled
1 : 50 Hz
2 : 60 Hz
Min,Max,Step,Default : 0,2,1,2
Flags : 00000000h
Ctrl id(CID) : 0098091ah (V4L2_CID_WHITE_BALANCE_TEMPERATURE)
Ctrl name : White Balance Temperature
Ctrl type : 1 (V4L2_CTRL_TYPE_INTEGER)
Min,Max,Step,Default : 2800,7500,1,5000
Flags : 00000000h
Ctrl id(CID) : 0098091bh (V4L2_CID_SHARPNESS)
Ctrl name : Sharpness
Ctrl type : 1 (V4L2_CTRL_TYPE_INTEGER)
Min,Max,Step,Default : 1,5,1,3
Flags : 00000000h
Ctrl id(CID) : 0098091ch (V4L2_CID_BACKLIGHT_COMPENSATION)
Ctrl name : Backlight Compensation
Ctrl type : 1 (V4L2_CTRL_TYPE_INTEGER)
Min,Max,Step,Default : 0,10,1,0
Flags : 00000000h
Ctrl id(CID) : 009a0901h (V4L2_CID_EXPOSURE_AUTO)
Ctrl name : Exposure, Auto
Ctrl type : 3 (V4L2_CTRL_TYPE_MENU)
Menu items:
VIDIOC_QUERYMENU: Invalid argument
残念ながら、Image formatは表示されませんでしたが、様々な情報が得られます♪
タグ:WEB CAMERA