• カテゴリー別アーカイブ 設定
  • ZoneMinderの設定に関する解説

  • zoneminder » 設定
  • zoneminderへUSBウェブカメラを登録する方法

    余っているUSB接続のウェブカメラや、PC内臓のカメラをzoneminderに登録する際の手順です。

    もし、新規購入する検討をしている場合には、USB接続のカメラの場合は、サーバ自身からUSBケーブルが届く範囲にしか設置できない為、監視カメラ、見守りカメラ用途であれば、ネットワーク接続のONVIF対応ネットワークカメラを購入することをお勧めします。

    zoneminderを実行するユーザーをvideoグループに所属させる

    当サイトのセットアップ手順を見てインストールする場合には、そちらで実施済みかと思いますが、まだ、以下のグループ割り当てをしていない場合には実行してください。

    usermod -a -G video www-data

    USBカメラの解像度や、ビデオフォーマット情報を確認する

    zoneminderへローカルカメラを登録する際には、USBカメラの解像度やビデオフォーマットを登録する必要があります。カタログ等から確認することが出来ないものもありますので、linux上のコマンドから確認します。以下、実行したコマンドとその出力例を載せておきます。

    # v4l-utilsをインストールする
    apt install v4l-utils
    
    # サーバに接続されているUSBカメラをリスト表示する
    v4l2-ctl --list-devices
    
    > UCAM-C0220F: UCAM-C0220F (usb-0000:38:00.3-4):
    >        /dev/video0
    >        /dev/video1
    >        /dev/media0
    
    # 対象デバイスの情報を全部出力
    v4l2-ctl -d /dev/video0 --all
    > UCAM-C0220F: UCAM-C0220F (usb-0000:38:00.3-4):
    >         /dev/video0
    >         /dev/video1
    >         /dev/media0
    > 
    > 
    > Driver Info:
    >         Driver name      : uvcvideo
    >         Card type        : UCAM-C0220F: UCAM-C0220F
    >         Bus info         : usb-0000:38:00.3-4
    >         Driver version   : 5.4.55
    >         Capabilities     : 0x84a00001
    >                 Video Capture
    >                 Metadata Capture
    >                 Streaming
    >                 Extended Pix Format
    >                 Device Capabilities
    >         Device Caps      : 0x04200001
    >                 Video Capture
    >                 Streaming
    >                 Extended Pix Format
    > Media Driver Info:
    >         Driver name      : uvcvideo
    >         Model            : UCAM-C0220F: UCAM-C0220F
    >         Serial           :
    >         Bus info         : usb-0000:38:00.3-4
    >         Media version    : 5.4.55
    >         Hardware revision: 0x00000002 (2)
    >         Driver version   : 5.4.55
    > Interface Info:
    >         ID               : 0x03000002
    >         Type             : V4L Video
    > Entity Info:
    >         ID               : 0x00000001 (1)
    >         Name             : UCAM-C0220F: UCAM-C0220F
    >         Function         : V4L2 I/O
    >         Flags         : default
    >         Pad 0x01000007   : 0: Sink
    >           Link 0x02000010: from remote pad 0x100000a of entity 'Extension 4': Data, Enabled, Immutable
    > Priority: 2
    > Video input : 0 (Camera 1: ok)
    > Format Video Capture:
    >         Width/Height      : 640/480
    >         Pixel Format      : 'YUYV' (YUYV 4:2:2)
    >         Field             : None
    >         Bytes per Line    : 1280
    >         Size Image        : 614400
    >         Colorspace        : sRGB
    >         Transfer Function : Default (maps to sRGB)
    >         YCbCr/HSV Encoding: Default (maps to ITU-R 601)
    >         Quantization      : Default (maps to Limited Range)
    >         Flags             :
    > Crop Capability Video Capture:
    >         Bounds      : Left 0, Top 0, Width 640, Height 480
    >         Default     : Left 0, Top 0, Width 640, Height 480
    >         Pixel Aspect: 1/1
    > Selection Video Capture: crop_default, Left 0, Top 0, Width 640, Height 480, Flags:
    > Selection Video Capture: crop_bounds, Left 0, Top 0, Width 640, Height 480, Flags:
    > Streaming Parameters Video Capture:
    >         Capabilities     : timeperframe
    >         Frames per second: 30.000 (30/1)
    >         Read buffers     : 0
    >                      brightness 0x00980900 (int)    : min=-127 max=127 step=1 default=0 value=0
    >                        contrast 0x00980901 (int)    : min=0 max=127 step=1 default=64 value=64
    >                      saturation 0x00980902 (int)    : min=0 max=255 step=1 default=64 value=64
    >                             hue 0x00980903 (int)    : min=-16000 max=16000 step=1 default=0 value=0
    >  white_balance_temperature_auto 0x0098090c (bool)   : default=1 value=1
    >                           gamma 0x00980910 (int)    : min=16 max=500 step=1 default=100 value=100
    >            power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1
    >                                 0: Disabled
    >                                 1: 50 Hz
    >                                 2: 60 Hz
    >       white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=1 default=5200 value=5200 flags=inactive
    >                       sharpness 0x0098091b (int)    : min=0 max=31 step=1 default=4 value=4
    >                   exposure_auto 0x009a0901 (menu)   : min=0 max=3 default=3 value=3
    >                                 1: Manual Mode
    >                                 3: Aperture Priority Mode
    >               exposure_absolute 0x009a0902 (int)    : min=1 max=5000 step=1 default=625 value=625 flags=inactive
    
    
    
    

    上記コマンドの実行結果から、大事なのは「Pixel Format」と、「Width/Height」の値なのでメモって下さい。

    v4l2-ctl -d /dev/video0 –all | grep Pixel
    Pixel Format : ‘YUYV’ (YUYV 4:2:2)
    Pixel Aspect: 1/1
    v4l2-ctl -d /dev/video0 –all | grep Width\/Height
    Width/Height : 640/480

    zoneminderへの登録

    コンソールから、以下の通りUSBウェブカメラを追加します。

    コンソールから追加を選択

    名前は任意。ソースタイプは「ローカル」、機能は「Mcord」、有効化はチェックを入れる。
    ソースタブでは、Linux上で確認した以下項目を入力する
    デバイスパス以下コマンドの結果から、対象デバイスを記載。たいていの場合には、/dev/video0
    v4l2-ctl –list-devices
    キャプチャメソッドVideo For Linux version2
    デバイスチャネル0
    デバイスフォーマットPAL
    キャプチャパレット以下コマンドで確認
    v4l2-ctl -d /dev/video0 –all | grep Pixel
    Multi BufferingUse Config Value
    Captures Per Frame
    ターゲット色空間32ビットカラー
    キャプチャ解像度(pixels)以下コマンドの結果から確認
    v4l2-ctl -d /dev/video0 –all | grep Width\/Height

    Storage Areaに、任意の物を。JPEGの保存はDisabled、動画書き出しにどうがX264 Encodeを指定。

    画像バッファサイズに50を指定して、保存を押下

    以上で、USB接続カメラをzoneminderへ登録することが可能です。途中で動画書き出しにX264エンコードを指定していることからもわかるように、USBカメラ自身はX264エンコードをしてくれず、zoneminderサーバのCPUでエンコードすることになります。

    USBウェブカメラは延長できても5メートル程度なので、1つのサーバにUSBウェブカメラを沢山つけるような用途はないと思いますが、複数個つける場合には、CPUの性能見合いでつけるようにしてください。


  • zoneminderへONVIF対応ネットワークカメラを登録する方法

    zoneminderにONVIF対応のネットワークカメラを登録する方法です。「ONVIF対応のネットワークカメラ」と書きましたが結局のところは数千円で購入可能なスマートカメラです。

    USB接続のWebCamについては、別途登録方法を紹介します。

    追加を押下
    画面右上の電波のマーク(ONVIF設定)を押下
    「検出されたカメラ」をプルダウンから選択し、カメラ側に設定したユーザー名、パスワードを入力して次へ。
    対象のカメラがサポートする解像度やONVIFバージョン等が一覧表示されるので、好きな解像度を選んで「保存」を押下

    上記までで、zoneminderが自動検出したONVIFカメラの情報が、カメラ登録画面に反映されます。この時点ではまだ「zoneminderが機器情報から読み取った情報を登録画面に入れてくれた」だけの状態です。

    以下の一般設定~Miscまでの各画面で必要項目を入れて保存して登録完了となります。(左側のリンクを押してページ移動しても、入力値は保たれます)

    名前に適当な名前を入れてください。英語表記をお勧めします。また、ソースタイプには「Ffmpeg」、機能には「Mcord」を入力してください。また、その下の「有効化」チェックボックスはONにしてください。
    ONVIF検索結果から、「ソースパス」、「Method」が入力されているはずです。各々設定内容を確認してください。なお、MethodはUDPが好ましいですが、エラーが出る場合にはTCP等、他のプロトコルを選択して試してみてください。

    DecoderHWAccelNameと、DecoderHWAccelDeviceは、GPUエンコードの指定です。GPUエンコードをサポートしたハードウェアかつ、ffmpegがGPUエンコードをサポートした状態でコンパイルされているときは、指定可能です。

    「Storage Area」は、オプション画面から設定可能な「Storage Area」を選択します。デフォルトのままでも構いませんが、可能であれば、zoneminder用にのパーティションを選択してください(windowsで言うところの「データはDドライブに置く」みたいな感じです)。
    タイムスタンプは、お好みで編集してください。特に設定する必要はありません。
    「バッファ」の「画面バッファサイズ」は「60」あたりを入れておくといいです。あまり小さい値を設定すると、ログにワーニングが出て、「最低でもこのサイズにしてください」的なログが出ます。その場合には、指摘されたサイズ以上のバッファサイズを指定します。
    コントロールは、カメラをリモートからコントロール可能であれば設定します。(首振りとかを制御するようです。対応したカメラを持っていないので未検証ですが・・・・)
    最後に、「Misc」の値を確認して「保存」を押下して完了です。

    登録完了すると、以下画面のように、対象カメラからの録画が開始されます。ソース列にあるIPアドレスをクリックすることで、先ほどまで設定したカメラの設定画面を表示可能です。設定値を見直したい場合には、そちらから設定しなおしてください。

    他に、機能列で「Mcord」となっている箇所は、以下の何れかに変更することが可能です。

    用途に合わせて適宜選択してください。私の場合には「Mcord」での運用が多いです。

    Function意味
    Noneモニターは現在無効になっています。ストリームを表示したり、イベントを生成したりすることはできません。何も記録されません。
    Monitorモニターはライブストリーミングでのみ使用できます。画像分析は行われないため、アラームやイベントは生成されず、何も記録されません。
    ModectMOtion DEteCTtionの略。キャプチャされたすべての画像が分析され、モーションが検出された録画ビデオでイベントが生成されます。
    Recordモニターは継続的に記録されます。固定長のイベントは、従来のタイムラプスビデオレコーダーと同様に、モーションに関係なく生成されます。このモードでは、動きの検出は行われません。
    Mocordモニターは継続的に記録され、それらのイベント内でモーションが強調表示されます。
    NodecNo DEteCTtioの略。外部トリガーで使用するように設計された特別なモードです。 Nodectではモーション検出は行われませんが、外部トリガーで必要な場合はイベントが記録されます。

    以上でONVIF対応カメラの登録は完了です。