第５回　Raspberry Pi で監視カメラを作ろう！　～アプリケーション編～

Raspberry Piと専用のカメラモジュールを使用し、ONVIF対応の監視カメラを作成する[シリーズ記事](https://qiita.com/lis-hanzomon/items/cc1f7f316fbeb9579b28)です。
本記事は[リンク情報システム株式会社](https://www.lis.co.jp/)の有志が作成しています。

前回の記事でカメラを動作させるまでセットアップできたので、今回はアプリケーションをインストールして、PCから動画を取得します。

#アプリケーションのセットアップ
###Raspberry Piに監視カメラ映像配信アプリをセットアップ

まずは、監視カメラ映像配信アプリの動作に必要なライブラリをインストールします。
RaspberryPiで標準でインストールされていないライブラリなので、以下のコマンドを実行してインストールします。

```
$ sudo apt-get install libjson-c3
$ sudo apt-get install insserv
```

次に、sambaを使い監視カメラ映像配信アプリのインストーラをRaspberry Piにコピーして、インストールを実行します。

```
$ sudo dpkg -i RedBrick-1.0.1-Linux.deb
```

※この部分は、本当は、apt-getでインストールできるように、外部向けのサーバーを立て公開したい。そうすれば、もしソフトをアップデートした場合に、apt-get upgradeで自動で修正版がインストールされるようになる。

インストールが完了すると、以下の設定ファイルが作られます。
そのまま変更しなくても起動できますが、必要に応じて変更してください。

・etc/device_info.json
本来、ROMに書き込まれる情報を想定した設定ファイル。

|項目|説明|
|:-------------:|:-------|
|Manufacturer   |製造者名|
|Model          |モデル名|
|FirmwareVersion|F/Wバージョン|
|SerialNumber|シリアル番号|
|HardwareId|ハードウェアID|
|PtzEnable|パン・チルド有効(1) / 無効(0)|

・etc/onvif_setting.json

ネットワークの設定や録画ファイルの格納先などの設定ファイル。
運用時に変更される可能性がある設定を保存。

|項目|説明|
|:-------------------:|:---------------------------------------------------|
|DiscoveryMode        |端末アプリからの監視カメラ自動検出機能を有効(1) / 無効(0)|
|Interface |ネットワークインターフェイス名|
|OnvifPortNo |ONVIF通信用のポート番号|
|RtspPortNo |映像配信用のポート番号|
|SnapShotPortNo |静止画配信用のポート番号|
|RecordingPath |動画保存先|
|RecordingInterval |ファイルを分割する時間(秒)|
|RecordingMode |プログラム起動時に自動録画開始を有効(1) / 無効(0)|
|RecordingFileNum |録画ファイル数の上限 上限を設定しない場合は-1|
|RecordingKeepSize |維持する空き容量のサイズ(MB)|
|SnapShotPath |静止画保存先|
|SnapShotWidth |静止画画像幅|

・etc/user_info.json

ユーザー名やパスワードを保存した設定ファイル。
今回は平文のまま保存しているが、本来はTPMを使用して暗号化すべきファイル。

|項目|説明|
|:-:|:--|
|Username|ユーザ名|
|Password|パスワード|
|Level|視聴のみ可能なユーザ(2) / 設定変更権限のあるユーザ(1) / 管理者ユーザ(0)|

インストールできたらRaspberry Piを再起動します。
再起動と共に監視カメラ映像配信アプリも自動で起動します。

```
$ sudo reboot
```

###Windows PCに監視カメラ映像再生アプリをセットアップ
WindowsPCでsetup.exeを実行し、監視カメラ映像再生アプリをインストールします。
（2019/10/16追記　setup.exeはクライアントアプリのインストーラです。近日バイナリを公開します）

インストールが完了したら、監視カメラ映像再生アプリを起動します。

###監視カメラ映像の再生
監視カメラ映像再生アプリを起動すると、一覧画面が表示されるので、右下の「...」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399637/8d9c5469-a89f-bb4d-9b52-a4632c4f1a01.png)

設定画面が表示され、左側の一覧部に 未登録のカメラ が自動検出されます。
この 未登録のカメラ を選択すると右側の URL が表示されるので、IPアドレスからRaspberry Piのカメラであるか確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399637/f1ce0719-f2a9-ff2f-5b79-02f2caae7cf1.png)

「設定変更」をクリックして変更画面を表示します。
Raspberry Pi上のetc/user_info.jsonに設定されている ユーザ名 と パスワード を入力して、「ログイン確認」をクリックします。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399637/57199951-0a82-981d-cc87-d27e855844c6.png)

確認に成功したら、 名称が 未登録のカメラ から raspicam に変わります。
表示位置 に "1" を選択し、「OK」で閉じます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399637/b238b4f9-7876-7194-5ed6-c6fc74d48d11.png)

設定画面に戻り、設定内容を「保存」して閉じます。
一覧画面に戻るとraspicamから取得した静止画が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399637/29c2114d-49ad-e4ba-8572-192a5425e115.png)

静止画をクリックして動画再生画面を表示します。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399637/68a1d49b-a265-24c2-5e06-cfdf0b693174.png)

Raspberry Piから動画を取得しWindows PC上で表示できました。
また、カメラに映っている台座を動かしたところ、動体検出処理が実行され、一覧画面上のraspicamの静止画が強調表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399637/c1d7728c-8158-7fd2-8974-355fe2c5abaa.png)


---
[インデックス記事へ](https://qiita.com/lis-hanzomon/items/cc1f7f316fbeb9579b28)
[第４回記事へ](https://qiita.com/lis-hanzomon/items/917c199695caba15e144)
[第６回記事へ](https://qiita.com/lis-hanzomon/items/ff502f79223da871b45e)

---
[リンク情報システム株式会社](https://www.lis.co.jp)では一緒に働く仲間を[随時募集](https://www.lis.co.jp/employ_top)しています！
また、お仕事のご依頼、ビジネスパートナー様も募集しております。[お気軽にご連絡](https://www.lis.co.jp/inquiry)ください。