RaspberryPi 4B でZoneMinderを使用する Part4…カメラの登録

# 全体の目次
[目標の設定と環境の準備](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の使用（未)]()


# このページでやること

カメラにアクセスするときにIPアドレスを使用するが、このIPアドレスが変化してしまうと、ZoneManagerの設定を毎回（IPアドレスが変わるたびに）変えないといけない。DHCPで一度取得されたアドレスはあまり変化しないが、ルーターの電源が切れたり、長期間（1～2週間)カメラを使用しないと変わってしまう。これを避けるため、IPアドレスを固定しておいた方が良い。
※ルーター、と言う言葉の意味が分からない人は、「インターネットを契約した時に接続業者（nuroやフレッツ(NTT)）などが置いて行った箱」と思って構わない。ルーター、ホームゲートウェイなど呼び方は様々。自分で買う人もいるがその人はルーターの意味が分かるはず。

カメラのIPアドレスを登録して、ZoneMinderからアクセスできるようにしたら、ZoneMinderにカメラを登録し、ストリーミング（今の状態）を見ることができるように設定する。


# 目次
[カメラのMACアドレスを求める](#カメラのmacアドレスを求める)
　[Tapo C-100、C-200のカメラ側設定](#tapo-c-100c-200のカメラ側設定)
　[imouのカメラ側設定](#imou-のカメラ側設定)
　[ctronicsなどWeb設定が可能なカメラの場合](#ctronics%E3%81%AA%E3%81%A9web%E8%A8%AD%E5%AE%9A%E3%81%8C%E5%8F%AF%E8%83%BD%E3%81%AA%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%AE%E5%A0%B4%E5%90%88)
[IPアドレスをルーターに登録する](#ipアドレスをルーターに登録する)
　[FT660Aの場合](#ft660aの場合)
　[それ以外のルーターの場合](#それ以外のルーターの場合)
[カメラの登録](カメラの登録-1)
　[カメラのソースパスを決定する](#カメラのソースパスを決定する)
　　[カメラの登録-プリセットから探す](#カメラの登録-プリセットから探す)
　　[カメラの登録-ONVIFから探す](#カメラの登録-onvifから探す)
　　[カメラの登録-マニュアルで登録する](#カメラの登録-マニュアルで登録する)
　[Generalタブ-基本情報を設定する](#general%E3%82%BF%E3%83%96-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B)
[動作の確認](#動作の確認)
 [Consoleタブでの確認](#consoleタブでの確認)
 [Montageタブの確認](#montageタブの確認)
[カメラのURLを確認する](##カメラのURLを確認する)


# カメラのMACアドレスを求める

カメラに固定のIPアドレスを設定するため、MACアドレスを求める。カメラの底部やパッケージなどにMACアドレス（ネットワークアドレス）などで12桁の16進数が書かれていれば、それを使用する。わからない場合、裏を見るのがめんどくさい場合には次の手順でMACアドレスを求める。

カメラの登録においては、ネットワークカメラ毎に設定内容が異なる。ここでは、Tapoシリーズ、imou Lifeシリーズ、Ctronicsでの例を説明する。

## Tapo C-100、C-200のカメラ側設定

### アカウントの設定

Tapoでは、デフォルトではカメラのアカウント自体が無効になっており、RTSPでのアクセスが出来なくなっている。[TP-LinkTapoアプリケーション](https://play.google.com/store/apps/details?id=com.tplink.iot&hl=ja&gl=JP)から、アカウントの設定を行う。

設定したいカメラから右上の歯車アイコンをタップ、カメラの設定を起動。高度な設定＞カメラのアカウントをタップ。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/8d17b2ae-302a-045e-f67a-d60c75a32bc4.png" width=80%>

アカウント名とパスワードを入力して保存。

### MACアドレスを取得

カメラの設定を行う時、固定のIPアドレスが必要になる。TapoではDHCPのみ対応で、固定IPアドレスを振ることが出来ない。そのため、ルータのDHCPで固定IPアドレスを付与するために、MACアドレスを取得しておく。


設定したいカメラから右上の歯車アイコンをタップ、型番（C-100など）の部分をタップ、次のページにあるMACアドレスをメモしておく。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/4179c7d6-2ded-b91d-d5d6-29c1be0317da.png" width=80%>



## imou のカメラ側設定

### デバイスパスワードの設定

imou　 ‎‎IPC-C26EP　では 、デフォルトのアカウントは admin 、パスワードは製品添付のセーフティコードになっている。imouアプリケーションからは、機器情報>デバイスの右にあるアイコン＞機器設定ページのデバイスラベル　から確認できる。機器設定ページからデバイスパスワードをタップすると、新しいパスワードに変更することもできる。

imouの場合、設定できるのはパスワードのみで、アカウントは常にadmin。

### MACアドレスを取得
カメラの設定を行う時、固定のIPアドレスが必要になる。imouではDHCPのみ対応で、固定IPアドレスを振ることが出来ない。そのため、ルータのDHCPで固定IPアドレスを付与するために、MACアドレスを取得しておく。imouでは、MACアドレスが表示できないのでルーターなどの接続情報や、arpコマンドでMACアドレスを調べておく。

* ルーターの接続先デバイスを使ってIPアドレスを求める。ルーターにはDHCPで接続中のデバイスのIPアドレスを一覧する機能がある。imouのデバイスの電源をオフにした状態と、オンにした状態でIPアドレスの違いを求め、IPアドレスを調べる。下の画面は、nuro光のルータ、FT600Aのもの。管理者でログインし、ネットワーク＞無線LAN RF 2.4G＞接続中の機器を選択すると確認できる。
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/02a8ed57-71f4-51b9-065a-941f1fddcff3.png)
imouの接続前と節ぞ語で増えるエントリを探し、MACアドレスを控えておく。

* ネットワーク上のコンピュータなどで、以前imouのカメラと通信したことがある場合、arp -a　コマンドを実行するとIPアドレスとMACアドレスの一覧が表示される。この中からベンダコードをもとに調べていくこともできる。
* [Advanced IP Scanner](https://www.advanced-ip-scanner.com/jp/)などのツールを使用することもできる。

## ctronicsなどWeb設定が可能なカメラの場合

しばらく前の中国製カメラは、Webインタフェース＋Flashによる画像表示などが標準だった。この場合、IPの固定はカメラの設定から可能。ただ、管理を簡単にするため、DHCPを使用して接続したうえで、Tapoやimouと同じようにIPアドレスを固定することもできる。

### IPアドレスを固定する
ネットワークカメラのWebインタフェースにログインし、[Settings]などに移動、[Network]などから設定する。IP Configuration Typeを[Fixed]などに指定したうえでIPアドレスを設定する。

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/34d03a94-1766-d62c-3855-02cb797ea639.png)

### DHCPを使用し、IPアドレスを自動設定する。

IP Configuration Typeなどを DHCP、Auto、Dnyamicなどにすると、DHCPを使用してTapoなどと同じ接続方法になる。

![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/5c649735-6f2c-8da5-39d4-5aa2b820d3bf.png)

この方法で設定した場合、tapoなどと同じ方法で、MACアドレスを求める必要がある。パッケージやカメラ底部にMACアドレスが書いてあることもあるが、arp -a や [Advanced IP Scanner](https://www.advanced-ip-scanner.com/jp/)で求める。


# IPアドレスをルーターに登録する

ネットワークカメラのMACアドレスがわかったら、DHCPサーバー（多くはルーターなど）にMACアドレスを登録し、DHCPで固定のアドレスが払い出されるように指定する。具体的には各ルーターのマニュアルなどを参照。

## FT660Aの場合
下の画面は、nuro光のルータ、FT600Aのもの。管理者でログインし、ネットワーク＞LAN>DHCP固定アドレス割り当ての画面で、希望するIPアドレス（この画面では192.168.0.100）、ネットワークカメラのIPアドレス（この画面では11.22.33.44.55.66)を入力、[追加]を押す。

![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/6a2cf50b-b277-152f-c5f5-c21fffb56738.png)

全てのネットワークカメラの登録が終わったら、ルータを再起動し、接続中の機器などの画面から希望するIPアドレスが使用されているかを確認する。

![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/3403c950-ad50-a049-9f7b-5757dfbe3ee3.png)

## それ以外のルーターの場合

インターネットやマニュアルなどで「DHCP固定割り当て」などのキーワードで検索する。現在のほとんどのルーターでこの機能は存在する。例えば[Atermの場合はこれ](https://www.aterm.jp/function/wf1200hp-d/guide/dhcpfixedset.html)、


# カメラの登録

ZoneMinderにアクセス（http://RaspberryPIのアドレス/zm ）してログインする。Console画面が表示されるので、[Add]ボタンを押す。カメラの登録画面が表示される。

## カメラのソースパスを決定する

### カメラの登録-プリセットから探す

ダイアログボックスの右上にある、Presetにはよくある？カメラが登録されている。この中から、カメラを選択する。Axis/Panasonicなどが登録されているが、安物のカメラは登録されていない。もし、この中にあれば、「ラッキー」ということだと思われる。

### カメラの登録-ONVIFから探す

ダイアログボックスの右上にある、ONVIFをクリックすると、ネットワークをスキャンしてONVIFに対応するカメラを検出することができる。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/2c0bb649-9cac-7ffe-2db5-e7e2ffe04f0c.png" width=75%>

ドロップダウンには次のように、ONVIFに対応したカメラの一覧が表示できるようになる。

<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/9d145a33-acf5-9888-51fa-94398d36e069.png" width=60%>

ここで、登録したいカメラを機種名やIPアドレスから調べ、選択する。同じIPアドレスで、Version 1.1と1.2が存在するが試行錯誤して設定する。また、この一覧にカメラが出てこない場合、F5を押してリロードすると出てくる場合がある。

UsernameとPasswordには、[カメラのMACアドレスを求める](#カメラのmacアドレスを求める)の手順で設定したユーザー名とパスワードを指定して[Next]をクリックする。

次の画面では、指定したカメラで使用できるプロファイルが選択できる。ドロップダウンに何も表示されない場合ユーザー名やパスワードを間違えている可能性がある。（特にエラーは発生せずにプロファイルが空になる）また、前のページに戻りユーザー名とパスワードを再入力して[Next]を押すと表示されることがある。（運に左右されるので繰り返す）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/da6f7c0e-1c77-689a-9916-6db2cc549b75.png" width=75%>

多くの場合、高画質のメインストリームと、低画質のサブストリームが存在するので、低画質のストリームを選択し、SAVEをクリックする。

### カメラの登録-マニュアルで登録する
これらの2つの方法が使用できない場合、設定をマニュアルで行う。まず、Source Pathを調べる。

Source Path は、rtsp://ユーザー名:パスワード＠IPアドレス:ポート/パス

という形式になっている。（rtsp://administrator:passwd@192.168.0.100:554/Stream1 など）

パスの部分は、ストリームの種別として高解像度、低解像度を区別するために使用されるので便利。[カメラのソースパスを決定する](#カメラのソースパスを決定する)　などを参照する。

RTSPのURLは、カメラの製造元で見つけるか、インターネットで検索する。
[TapoによるRTSPの情報](https://www.tp-link.com/jp/support/faq/2680/)
[iSpyのRTSPデータベース](https://www.ispyconnect.com/cameras)

例えば次のようになる。[]内は状況により省略
|機種名|url|
|:--|:--|
|Tapo C-100 メインストリーム|rtsp://[ユーザー名:パスワード@]アドレス/Stream1|
|Tapo C-100 サブストリーム|rtsp://[ユーザー名:パスワード@]アドレス/Stream2|
|Tapo C-200 メインストリーム|rtsp://[ユーザー名:パスワード@]アドレス/Stream1|
|Tapo C-200 サブストリーム|rtsp://[ユーザー名:パスワード@]アドレス/Stream2|
|Ctronics ‎CTPT-90C1080P　メイン|rtsp://[ユーザー名:パスワード@]アドレス/11|
|Ctronics ‎CTPT-90C1080P　サブ|rtsp://[ユーザー名:パスワード@]アドレス/12|

この中で、ZoneMinderに設定するのは低解像度、サブストリームのURLをSource Pathとして指定する。


## Generalタブ-基本情報を設定する
Generalタブには、カメラの登録画面が出るので基本的な情報を入力する。（残りの情報は後で調整する）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/c1e1ae68-3887-e204-2b8f-862ffedba65e.png" width=75%>

|項目名|設定|説明|
|:---|:---|:--|
|Name|任意の英数字記号|カメラの名前。マルチバイト文字（日本語）は使用できない。|
|Storage Area|SSD|記録したビデオの保存場所。前のステップでマウントしたSSDのディレクトリを指定|
|Function|Modect|イベント（カメラ内で動くものがあったなど）が発生した際のビデオを保存する|
|Enabled|オン|カメラを有効にする|

設定が終わったら、[SAVE]を押して完了。

# 動作の確認

カメラを必要な台数だけ登録したら、実際に画像が取得できるかを確認する。


## Consoleタブでの確認

[Console]をクリックすると、登録されているカメラの概要情報が表示できる。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/2213eaf4-7dfc-fc6b-0bee-4af224104e6f.png" width=75%>

青い●が表示されているカメラは、接続できているもの。赤い●はエラーが発生しているもの。但し、カメラ側がビジーなどの場合にも赤い●になるので、赤い●だからダメ、と言うわけではない。


Nameのところのカメラ名（MyCamera-1）などをクリックすると、そのカメラのライブストリームが表示される。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/e9c524ad-e0ff-0cd0-2288-e3566f252566.png" width=50%>

確認のポイントは次の通り。間違えているときは、IPアドレスの部分をクリックすると、そのカメラの情報を修正できる。

|確認ポイント|チェックすべき点|
|:---|:--|
|設定したカメラが表示されていない|入力後、[Save]ボタンを押したか、エラーは出なかったか|
|●が赤|RTSPのURLは間違えていないか、Enabledはオンになっているか|
|Modectになっていない|FunctionのドロップダウンでModectに設定したか|
|StorageがSSDになっていない|Storage Areaの設定がSSDか|
|画像が全く表示されない(Generalタブ)|Source TypeがFfmp![47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/07b44aa9-5f0f-3dfb-772c-5f8a03cd8959.png)
egになっていない、ServerがNoneになっていない|
|画像が全く表示されない(Sourceタブ）|MethodがUDPなっていたらTCPに変更してみる、Width/Heightが適切な値になっていない、URLが間違えている|
|画像が乱れる|MethodがUDPなっていたらTCPに変更してみる、Width/Heightが適切な値になっていない、Color spaceを変更してみる|



## Montageタブの確認

Montageタブでは、登録済みの複数のカメラを同時表示できる。この画面は非常に処理が重く、この画面が正しく動くかがパフォーマンスの目安になる。

![27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/2caf3d32-17ec-916d-e08a-6ffa8fe5a6df.png)

このMontage画面に入ったあと、上のメニューで Consoleを選んでもほとんどConsoleに戻ることはできない。（処理が重いので）
その場合、ブラウザの X を押してから、Consoleをクリックする。


# カメラのURLを確認する

ZoneMiderで画面が確認できるようになったら、カメラのURLを確認して控えておく。もし、[カメラの登録-マニュアルで登録する](#カメラの登録-マニュアルで登録する)を実行していれば、すでにURLはわかってるが、プリセットから選んだり自動検出した場合にはURLがわからない。

後の作業でURLを使用するので、事前に調べておおく。

## Sourceタブを表示

ZoneMinderのConsoleで、IPアドレスが表示されている部分をクリック。

![46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/91cad0ca-a4cf-7f50-597f-fdc2b7c49aab.png)

設定画面が表示されるので、Sourceタブを選択

![47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2096509/79cdb4ba-f7cf-17d3-f2db-eb0aefd7852e.png)

この中の、Source Pathがこのカメラに対するURLになる。

Source Pathの中で最後のパス部分(/Stream2などの部分）は、高解像度のストリームと低解像度のストリームを区別するために使用される。
高解像度用のストリームも事前に調べておく。

[TapoによるRTSPの情報](https://www.tp-link.com/jp/support/faq/2680/)
[iSpyのRTSPデータベース](https://www.ispyconnect.com/cameras)


例えば次のようになる。[]内は状況により省略

|機種名|url|
|:--|:--|
|Tapo C-100 メインストリーム|rtsp://[ユーザー名:パスワード@]アドレス/Stream1|
|Tapo C-100 サブストリーム|rtsp://[ユーザー名:パスワード@]アドレス/Stream2|
|Tapo C-200 メインストリーム|rtsp://[ユーザー名:パスワード@]アドレス/Stream1|
|Tapo C-200 サブストリーム|rtsp://[ユーザー名:パスワード@]アドレス/Stream2|
|Ctronics ‎CTPT-90C1080P　メイン|http://[ユーザー名:パスワード@]アドレス/11|
|Ctronics ‎CTPT-90C1080P　サブ|http://[ユーザー名:パスワード@]アドレス/12|