クラウド型またはオンプレ型の監視カメラシステムを構築する、すなわち、RTSP (Real Time Streaming Protocol) に対応した複数のネットワークカメラの映像をウェブブラウザで確認したり録画を行うためのサーバを構築するオープンソースソフトウェアを試しました。名前は「Shinobi」です (どうしても「忍」を連想します🥷)。Shinobiの公式サイトは次の通り。
以下、何らかのネットワークカメラ (IPカメラ) が1台ある前提で、Shinobi CE (Community Edition) を利用するまでの流れとネットワークカメラの接続方法を簡単にご紹介です。
sudo apt update; sudo apt upgrade; sudo apt full-upgrade; sudo apt autoremove
sudo apt install qemu-guest-agent ssh
sudo reboot
sudo su
bash <(curl -s https://gitlab.com/Shinobi-Systems/Shinobi-Installer/raw/master/shinobi-install.sh)
Shinobiでのアカウントの考え方は、1) スーパーユーザ (SuperUser) がグループやグループに所属するアカウントを管理し、2) 各グループにはネットワークカメラや管理者やサブアカウントが属している、という2層の階層構造で成り立っているように思います。ここはまず、SuperUserに関する初期設定を行います。
インストール終了時にURLが表示されていたShinobiのSuperUser用管理画面 http://192.168.1.175:8080/super
(IPアドレス部分はご自身の環境に合わせてください) へアクセスし、次の初期アカウント情報を用いてログインします
項目 | 内容 |
---|---|
admin@shinobi.video | |
PASSWORD | admin |
(function) | SUPERUSER |
(alternateLogin) | DEFAULT |
メニューの [Preferences] を押し、SuperUserのEmailとPasswordを好みの内容に変更して [Save] を押します
項目 | 内容 |
---|---|
superadmin (任意のメールアドレスか文字列でも良いようです) | |
PASSWORD | (任意の文字列) |
SuperUserの認証情報はShinobiサーバ上では次のファイルに保存されます
# cat /home/Shinobi/super.json
[
{
"mail": "superadmin",
"pass": "(パスワードのハッシュ文字列)"
}
]
項目 | 内容 |
---|---|
anonymous@example.com (実際には自分のメールアドレス) | |
Group Key | (空欄) |
Password | (任意の文字列) |
Password Again | (Passwordの文字列) |
http://192.168.1.175:8080/
に、先程追加した管理者のEmail (例: anonymous@example.com
) とPasswordを使ってログインしますrtsp://192.168.1.196:8554/unicast
) を入力し、[Probe] を押しますネットワークカメラ ATOM Cam 2 ( アトムカムツー ):1080p フルHD 高感度CMOSセンサー搭載 / IP67防水防塵/赤外線ナイトビジョン 動作検知アラート機能 防犯カメラ/ペットカメラ/見守りカメラ/ベビーモニター/屋内屋外 ATOM tech製
アトムテック(ATOM tech)
Shinobiへ上記手順 (Mode: Record) で接続したネットワークカメラの映像は、デフォルトでは15分ごとに分割された動画としてShinobiサーバに録画保存されます。保存された動画の確認は、たとえばモニター画面にマウスカーソルを載せると下部に表示される9x9の模様のアイコン「Video Grid」を押すか、フィルムのアイコン「Videos List」を押すことで、次のように確認できます。
また、上記のネットワークカメラの動画は、Shinobiサーバのファイルシステム上の /home/Shinobi/videos/[GROUP KEY]/[MONITOR ID]/
に保存されます。
mah@shinobi-test:/home/Shinobi/videos/zHyMd7P3dw$ ls -alh ./zyDPJkFavv/ | head
total 3.3G
drwxr-xr-x 2 root root 4.0K May 23 15:30 .
drwxr-xr-x 3 root root 4.0K May 23 15:33 ..
-rwxrwxrwx 1 root root 47M May 23 07:30 2022-05-23T07-23-10.mp4
-rwxrwxrwx 1 root root 104M May 23 07:45 2022-05-23T07-30-00.mp4
-rwxrwxrwx 1 root root 104M May 23 08:00 2022-05-23T07-45-00.mp4
-rwxrwxrwx 1 root root 104M May 23 08:15 2022-05-23T08-00-00.mp4
-rwxrwxrwx 1 root root 104M May 23 08:30 2022-05-23T08-15-00.mp4
-rwxrwxrwx 1 root root 104M May 23 08:45 2022-05-23T08-30-00.mp4
-rwxrwxrwx 1 root root 104M May 23 09:00 2022-05-23T08-45-00.mp4
Shinobiの更新は、公式ドキュメントに掲載されている手順を次のようにroot権限で実行すると可能でした。
sudo su
cd /home/Shinobi
sh UPDATE.sh
pm2 flush
pm2 restart camera
pm2 restart cron
Shinobiの導入はとても簡単で驚くほど。しかも複数グループ対応・複数ネットワークカメラ対応で、どうやらAPIが使えたり動体検知もできるようで超多機能です。監視カメラシステムを構築するソフトウェアとして即活用できる一級品だと実感しました。Shinobiの詳細を知って評価するためには、実際にサーバを構築し、ONVIF対応業務用ネットワークカメラもできれば用意して、公式ドキュメントのConfigureやObject Detectionなどを参照しながら色々試していくのがよいと思います。なお、本番環境での利用は状況によって下記のShinobi Proのサブスクリプションが必要になります。
また、Shinobiを実際に“クラウド型監視カメラシステム”とするためには、クラウドに設置したShinobiと各拠点の監視カメラを通信させる必要が出てきます。これは一般的なVPNやたとえばTailscaleを活用すれば可能です。クラウドサービスへの課金の面では、Shinobiが使用するストレージ領域や映像転送に必要なネットワーク帯域をあらかじめ見積もっておいたほうが安心です。
最後にShinobiの機能紹介用画像の余りを貼っておきます。管理者としてログインしているときのメニューの一部と、そこから呼び出せる機能の1つ「ONVIF Scanner」の画面キャプチャです。