Shinobi

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

Shinobi は Node.js で記述された最新のオープンソース NVR(Network Video Recorder) です。個人または教育のための使用であれば、Pro バージョンの使用にライセンスキーは必要ありません。商用目的の使用の場合は、この アップストリームドキュメント を参照してください。

ノート: h.265 をサポートするカメラは、Shinobi ダッシュボードのブラウザでは表示できません。録画(ビデオのコピー)は引き続き機能しますが、ブラウザを使用して表示することはできません。モバイルアプリを使って、これらのストリームを表示できます。

インストール

shinobi-gitAURインストール して下さい。

ノート: Shinobi は root としてではなく非特権ユーザーとして実行されます。これは、アップストリームが node の実行を期待する方法です。その結果、いくつかの制限が課せられます:
  1. WebUI からのプラグインのインストールは機能しません。必要な場合は、root としてサーバーを手動で起動して下さい。
  2. pm2 が使用されていないため、WebUI からの再起動機能は機能しません。
  3. root のみが実行できるため、1000 未満のポートへのバインドは機能しません。これは、FTP または SMTP を使用してモーション/オブジェクト検出を受信する場合にのみ関係します。いくつかの回避策オプションについては、#カメラ内からの動き/物体検出 を参照してください。

設定

MariaDB サーバーのインストールとセットアップ

初期設定については MariaDB#インストール を参照し、次のコマンドを使用して Shinobi 用のデータベースを作成します:

# mysql
> CREATE DATABASE ccio; flush privileges; \q

Shinobi のユーザー majesticflame を作成し、新しいデータベースに対するすべての権限を付与します:

# mysql < /usr/share/shinobi/sql/user.sql
ノート: shinobi-gitAURmariadb に依存するため、MariaDB は Shinobi と同じサーバーにインストールされます。ただし、Shinobi を手動でインストールした場合や、MariaDB を別のサーバーにインストールして mariadb 依存関係を使用せずにインストールした場合は、/usr/share/shinobi/sql/user.sql をコピーして変更する必要があります。例えば、LAN IP が 192.168.9.100 の場合
$ sed 's/127.0.0.1/192.168.9.100/g' < /usr/share/shinobi/sql/user.sql > /tmp/user.sql

次に、scp またはその他のメカニズムを使用してファイルを MariaDB サーバーにコピーし、変更した SQL ファイルを実行します:

# mysql < /tmp/user.sql

最後にデータベースにテーブルを追加します:

# mysql ccio < /usr/share/shinobi/sql/framework.sql

Shinobi のセットアップ

ノート: MariaDB が別のサーバー上にある場合は、/etc/shinobi/conf.json を編集し、db.host の下の 127.0.0.1 を置き換えます。

必要に応じて /etc/shinobi/conf.json をカスタマイズします。

必要に応じて、メールセクションを設定し、コメントに示されているように cron キーをランダムなものに置き換えます。

必要に応じて、/etc/shinobi/super.json を編集し、"pass" の値を md5sum ハッシュ化されたパスワードに置き換えることにより、スーパー管理者パスワードを変更します。次のようなものを生成します。

$ echo -n PASSWORD | md5sum

shinobi.target ユニットを使用して Shinobi を 起動/有効化 します。shinobi.targetshinobi-camera.serviceshinobi-cron.service を起動/停止します。http://localhost:8080/super にアクセスして、ユーザーの作成を含む初期セットアップを実行します。ウォークスルーについては、公式の設定ガイド を参照してください。完了したら、http://localhost:8080 にアクセスし、管理者以外のユーザーとしてログインします。

ノート: 別のコンピューター上の場合は localhost を LAN IP に置き換え、/etc/shinobi/conf.jsonip の下にある 127.0.0.1を置き換えます。

Android および iOS アプリ

Android と iOS の両方の Shinobi モバイルアプリは、この 公開テストを通じて利用できます。

ヒントとテクニック

カメラ映像と Shinobi の間の遅延

カメラと Shinobi ダッシュボードの間にある程度の遅れや遅れが生じるのは正常であり、ストリームの種類とビデオ設定によって異なります。遅延を最小限に抑えるためのヒントについては、アップストリームドキュメント を参照してください。

Shinobi でネイティブにモーション/オブジェクトを検出

Shinobi はビデオフィードを監視し、動きが検出された場合にのみ録画できます。フルフレームまたはトリガー領域はネイティブにサポートされています。アップストリームのドキュメントの setup-up-motion-detection の記事を参照してください。

カメラ内からの動き/物体検出

一部のカメラメーカーは、カメラ自体のファームウェア内でネイティブの動き/オブジェクト検出を提供しています。Shinobi は、カメラによって動きが検出されたときに記録をトリガーする外部イベントを受け入れることができ、これらのイベントは SMTP または、FTPのいずれかによって通信されます。

ノート: カメラが動きを検出したときと、Shinobi がビデオの開始をトリガーするときとの間にラグがある場合、セグメント長変数 をより高い値に調整する必要がある場合があります。これをテストするには、誰かがモーションをトリガーしている間のライブストリームを視聴するだけです。モーションがトリガーされた時間をカメラの時計で観察し、ビデオと比較します。より高い値を設定して、再度テストしてください。

私たちのパッケージは root として node を実行していないため、これらのサービスのネイティブポート (STMP の場合は 25、FTP の場合は 21) を使用できません。

Shinobi およびカメラ内のこれらのサービスには、単純に 1,000 を超えるポートを選択することをお勧めします。

ネイティブポートの使用が必須の場合は、shinobi-camera.serviceドロップインスニペット を使用します。

[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE

リソース

  • Shinobi docs - 公式ドキュメントとガイド。
  • iSpy camera database - さまざまなカメラの URL の大規模なデータベース。
  • Shinobi camera database - プロトコル、ストリームの URL、その他の技術仕様などを含む、サポートされているカメラの検索可能なデータベース。
  • Home assistant camera database - ストリームの URL を検索するための別のリソース。