RaspberryPi 4B でZoneMinderを使用する　Part3 … ZoneMinderの全般設定

# 全体の目次
[目標の設定と環境の準備](https://qiita.com/BUBUBB/items/b7f3eb0e16a1c1a938b2)
[ZoneMinderのインストール](https://qiita.com/BUBUBB/items/bdf6df6b1d0ee1e14bc0)
[ZoneMinderの全般設定](https://qiita.com/BUBUBB/items/9de905615f389fd9ed50)
[カメラの登録](https://qiita.com/BUBUBB/items/f9415bc8bc526d0d84a5)
[パフォーマンスの調整](https://qiita.com/BUBUBB/items/9f98c91479a2ab6d8c0c)
[アクセスのブロック](https://qiita.com/BUBUBB/items/dbc7d59065484cd32476)
[外部からのアクセス](https://qiita.com/BUBUBB/items/99174603530094e5f746)
[ZmNinjyaの使用（未)]()


# このページでやること


このページでは、ZoneMinderが起動できるようになったのでユーザー作成やフィルタの指定など各カメラに依存しない全般の設定を行う。

# 目次

[ZoneMinderの全般設定](#zoneminderの全般設定)
[SystemタブとUserタブの設定](#systemタブとuserタブの設定)
　[Usersタブ](#usersタブ)
　[Systemタブ](#systemタブ)
　[Configタブ](#configタブ)
　[Serversタブ](#serversタブ)
　[Storageタブ](#storageタブ)
　[Webタブ](#webタブ)
　[Imagesタブ](#imagesタブ)
　[loggingタブ](#loggingタブ)
　[Networkタブ](#networkタブ)
　[Emailタブ](#emailタブ)
　[Uploadタブ](#uploadタブ)
　[X10タブ](#x10タブ)
　[High, Medium と Low B/W](#high-medium-%E3%81%A8-low-bw)
[フィルタ設定](#フィルタ設定)

# ZoneMinderの全般設定　
ここまでで、ZoneMinderのインストールが完了し、http://<ZoneMinderのIPアドレス/zm を表示させると、プライバシーポリシーページが表示されるようになっている。

まずは、ここで同意しないと話にならないので、ページ末尾のドロップダウンに Accept を選び、 Applyを選択する。これで、ZoneMinderのコンソール画面が表示される。この画面は、一番上にある[Console]をクリックするといつでも表示できる。

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/b537ac73-f071-e8e0-7610-e511663c38ad.png)

Optionsをクリックすると、ZoneMinderの全般設定が表示される。ここを順番に設定していく。
（効果を確認するため、先にカメラを１～2台登録しても良い）

ここから、ZoneMinderを次のように設定する。この設定は、前述の目標のように非常に少ないリソースで動作させるような設定なので、適宜変更する。記述ない物はデフォルト。


# SystemタブとUserタブの設定

ここでは、認証機能を有効にしてログインできるユーザを作成しておく。最初に、adminユーザーのパスワードを作成しておき、それから認証を有効にする。そうしないと、adminユーザーのデフォルトのパスワードがわからないと使用できなくなる。（admin  / admin )

## Usersタブ

デフォルトでは、adminというユーザーだけが存在する。

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/af8d8a12-04d6-7f74-2ca0-41d7df075b2f.png)

ここでは、adminユーザーにパスワードを設定し、さらにモニタリングだけが可能なユーザーを作成する。

admin のところをクリック、編集画面を表示する。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/ba8dc0ef-e353-ae77-7788-7fc38ddcde09.png" width=80%>


ここでは、New passwordとConfirm　passwordにパスワードを入力し、[Save]で保存する。

[Add New User]ボタンを押して、同じ要領でuserという名前のユーザー、パスワードを指定、適切な権限を設定する。参照のみのユーザーの場合、次のような設定にしておく。

|項目名|設定|説明|
|:---|:---|:--|
|Enabled|Yes|このユーザーが有効|
|Stream|View|現在の（リアルタイムの）カメラ画像を再生できる|
|Events|View|過去のイベント画像（モーションがあったときなどの録画画像）が再生できる。Editだと削除したりもできる|
|Control|None|PTZ(パン、チルト、ズーム）などのカメラ制御にアクセスできない|
|Monitors|None|現在のモニター設定を設定/参照できない|
|Groups|None|モニターグループ（複数のモニタをグループ化する画面）にアクセスできない|
|System|None|ユーザーがオプションやユーザーなどのシステム設定にアクセスできない|



## Systemタブ

Systemタブでは、使用に認証が必要、と言う設定を行い、ページ末尾の[Save]ボタンを押して保存する。設定を行う項目は次の通り。

|項目名|設定|説明|
|:---|:---|:--|
|BANDWIDTH_DEFAULT|LOW|低速回線用のプロファイルをデフォルトにする|
|LANG_DEFAULT|en_us|日本語(ja_JP)もあるが、文字化けがあったり文字コードを指定しても部分的にしか翻訳されておらず不自然|
|OPT_USE_AUTH|オン|ユーザーインタフェース表示にログインが必要。|
|AUTH_TYPE| builtin|builtinはZoneMinderが認証を行う。remoteはBASIC認証のようにほかの認証システムと連携させる|
|AUTH_RELAY|none|何かバグがあるような話がWebで散見するのでオフにしておく|
|WATCH_MAX_DELAY|45|速度が遅い環境に合わせて長くしておく|

設定を保存すると、ログアウトされるので、admin/設定したパスワードでログイン出来ることを確認しておく。

## Configタブ

デフォルトのまま

## Serversタブ

設定不要

## Storageタブ

ここでは、イベントレコーディングの保存先ディレクトリの新規追加と、ログ出力を無効化する設定を行う。

ログ出力については、Raspberry PIのメモリカードの容量圧迫を避けるため無効化する。　トラブル時の対応のため、ここでは何もせず運用開始後に変更する。また、無効化するのではなく、SSD側に保存させるように指定しても良い。

[Add New Strage]をクリック、SSDという名前で、作成済みの保存先フォルダを指定する。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/9052392b-a95f-be5a-82e2-5249fd74d2a9.png" width=60%>

Defaultの部分をクリック、表示されるダイアログで Pathに /dev/nullを指定する。あるいは、SSD上のフォルダ（すでに作成済みの物）を指定する。
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/7d9529e8-c403-5bf3-4d10-581adfa5fce9.png)

## Webタブ

デフォルトのまま。項目によっては正しく動作しない。

## Imagesタブ

デフォルトのまま。FFMPEGのオプションなどが細かく指定できるがデフォルトでも使用できた。

|項目名|設定|説明|
|:---|:---|:--|
|COLOUR_JPEG_FILES|オフ|jpeg画像を保存するときカメラによっては白黒のJpegに保存する。この形式に対応していないツールffmpegなどのためカラーjpegにして保存する。|
|ADD_JPEG_COMMENTS|オフ|jpegのヘッダに、画像のコメントと同じテキストを含めて保存する。|
|JPEG_FILE_QUALITY|70|ZoneMinderがイベントをjpegに保存する。この時の画質を指定。数値が大きいほど画質が良い。但し、キャプチャされたイメージがアラームを発生させ、アラームファイルに画質オプションが指定されている場合にはそちらが使用される|
|JPEG_ALARM_FILE_QUALITY|0|アラーム発生時に保存された画像の品質を指定。JPEG_FILE_QUALITYよりも低い値は無視される。0にするとJPEG_FILE_QUALITYと同じとみなされる|
|JPEG_STREAM_QUALITY|70|ライブストリームで使用される画質。高いほど高画質低速。これは動画にのみ適用される。|
|MPEG_TIMED_FRAMES|オン|MPEGベースのビデオをライブモニターやイベントで使用するとき、このオプションがオンの場合各フレームにキャプチャした時のタイムスタンプが含まれる。アラーム発生でフレームレートなどが変わった時でも、ストリームのタイミングが維持される。|
|MPEG_LIVE_FORMAT|swf|MPEGモードを使用するときにZoneMinderはライブビデオを出力する。ここで指定した拡張子に従って出力される。この部分は、ドキュメントではデフォルトがasfとなっているが実際にはswfになっている、など現実に即してない気がする。|
|MPEG_REPLAY_FORMAT|swf|イベント最盛時のフォーマット。同上。|
|RAND_STREAM|オン|ZoneMinderの出力がブラウザのキャッシュに影響されないように、URLに乱数を追加してユニークな値にする|
|OPT_CAMBOZOLA|オフ|古いIEを使用する場合以外はオフでよい。アプレットを使用してビデオを再生する。|
|PATH_CAMBOZOLA|cambozola.jar|変更不要|
|RELOAD_CAMBOZOLA|0|変更不要|
|OPT_FFMPEG|オフ|ffmpegがインストールされているかを指定する。ffmpegでの処理をRaspbery Piでやる場合には必要。最近のWebカメラはカメラ自身がmpegとして送信するので、それをそのまま保存する分にはオフでよい。ローカルカメラ（Raspberry pi自身にカメラを直接接続する）場合などは必要なのかもしれない|
|PATH_FFMPEG||ffmpegの場所|
|FFMPEG_INPUT_OPTIONS||ffmpegのオプションのうち、-i の前に指定するもの|
|FFMPEG_OUTPUT_OPTIONS|-r 25|ffmpegのオプションのうち、-i の後ろに指定するもの|
|FFMPEG_FORMATS|mpg mpeg wmv asf avi* mov swf 3gp**|変更不要|
|FFMPEG_OPEN_TIMEOUT|10|ffmpegがストリームを閉じてから、次にオープンするまでの最大の待ち時間。|

# loggingタブ

ロギングタブ。もし、ログの出力先を /dev/nullにするなど、ログの容量が問題にならない場合、デフォルトでも構わない。

ログの容量を気にする場合、LOG_LEVEL_SYSLOG、LOG_LEVEL_FILE、LOG_LEVEL_WEBLOG、LOG_LEVEL_DATABASEログレベルをErrorにしておく。

#Networkタブ

変更不要

# Emailタブ

イベント発生時にメールを送信するときに指定する。

# Uploadタブ

イベントで発生した情報をFTP・SFTPでアップロードするときに指定する。

# X10タブ
[X10ホームオートメーション](https://www.x10.com/)システムを使用するときに設定するらしい。

# High, Medium と Low B/W
帯域幅によって使用するプロファイルを指定する。　Raspberry PI＋Wifiのケチケチシステムでは、所詮低バンド幅しか使わない（高画質の情報を送ってもRaspberryPIが処理しきれない）ので、Low B/Wだけ指定する。使用する帯域幅は、ここをクリックすることでいつでも変更できる。この画像は、高帯域幅が指定されいる。

![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/ea975834-9737-f4cd-5ef8-ecfbe921adf4.png)

ここでは、Low B/Wをさらに細くするように設定する。面倒なので、全部の値を倍にするイメージで変更した。

|項目名|設定|説明|
|:---|:---|:--|
|WEB_L_REFRESH_MAIN|600| メインコンソールウィンドウの更新頻度（秒単位）を設定。コンソールメインウインドウとは、[Console]をクリックしたときに表示される画面。|
|ZM_WEB_L_REFRESH_NAVBAR|70|ナビゲーションバー（ページのトップメニュー下の、ディスク残量などの表示域）の更新頻度|
|WEB_L_REFRESH_CYCLE|60|サイクルウオッチ（カメラを切り替えて表示していくモード）の切り替え時間|
|WEB_L_REFRESH_IMAGE|30|静止画モードで表示されているライブビューカメラの画面更新頻度|
|WEB_L_REFRESH_STATUS|30|ウォッチウィンドウに表示されるステータスの更新頻度|
|WEB_L_REFRESH_EVENTS|360||
|WEB_L_CAN_STREAM|auto||
|WEB_L_STREAM_METHOD|jpeg||
|WEB_L_DEFAULT_SCALE|100||
|WEB_L_DEFAULT_RATE|100||
|WEB_L_VIDEO_BITRATE|25000||
|WEB_L_VIDEO_MAXFPS|5||
|WEB_L_SCALE_THUMBS|オン||
|WEB_H_EVENTS_VIEW|events||
|WEB_L_SHOW_PROGRESS|オフ||
|WEB_L_AJAX_TIMEOUT|10000||


# フィルタ設定

フィルタは、様々な条件を指定してイベントを抽出したり、抽出したイベントに操作をすることが出来る。ここでは、SSDが一杯になる前に、録画済みの画像を消すというイベントを作成しておく。ナビゲーションバーの[Filters]をクリック。

Use Filterに、Purge When Fullを選択、画面のように設定する。この設定は、ディスクの使用量が50%を超えたら、最初の100件のイベントを抽出し、その結果を削除する、というもの。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/57356fed-28a4-e129-43ff-c3bb7460201c.png" width=80%>

設定が終わったら、[Save]をクリック、[Execute]をクリック。