1
1

More than 1 year has passed since last update.

Moonfire-NVRのすすめ

Last updated at Posted at 2022-02-10

高解像度カメラの処理が重い…

いまや高画質のWifi監視カメラが、低価格で売られている時代です。
自宅のセキュリティのために、監視カメラシステムを自作している人も少なくないと思います。

いままでMotionやZoneminderを使ってきましたが、なんというか負荷が重い。
低解像度なカメラであれば十分な動きをするのですが、5MPとかの高解像度のカメラを使うとCPU負荷が半端ない。Raspiだとさらに…。
そして、録画された動画に遅延や音飛びやフレーム落ちも起きるので、困っていました。

組み合わせによる低負荷化

ほとんどの高解像度カメラには、高解像度の動画を送付する「メインストリーム」と、低解像度の動画を送付する「サブストリーム」が備わっています。

前述したMotionやZoneminderは、サブストリームの解析であればRaspiでも余裕があります。

そこで、動体検出はサブストリームで行うこととして、メインストリームを軽負荷で記録できるソフトはないかを探っていました。
そこでたどり着いたのがMoonfire-NVRです。

従来のシステムはなぜ重いか

大体のカメラは、H264で圧縮した動画をひたすら送り付けてきます。

MotionやZoneminderは、動体検出時に録画をするために動画をバッファリングしたりデコードしたり解析したり、というところにCPU/GPU/メモリを食います。重いわけです。
こう見るとConsだけですが、当然Prosはあります。
これらのProsは、なんの動きもない、いわゆる余分な録画を撮らないということです。
イベントを見返すのも楽ですし、記録容量が少なくてすみます。

Moonfire-NVRはなぜ軽いか

一方、Moonfire-NVRは、HDDやSSDなどのストレージにカメラからのデータを垂れ流します。
常時録画をするのでストレージの容量は山ほど食いますが、CPU/GPU/メモリ余分な処理がない分非常に軽量です。
ストレージの容量にものを言わせるアプローチは非常に魅力的です。
例えば、8Mbpsの動画を記録するとして、一日丸っと録画しても100GB行きません。

8Mbps * 3600 sec * 24 hour = 約87GB

今や4TBのHDDは1万円しないので、非力なマシンでも常時高画質録画ができるって話ですね。素晴らしい。

Consは、常時録画ということ。
ただ、前述のとおりサブストリームで動体検出、メインストリームをMoonfire-NVRで録画しておけば大したことはありません。

あと、若いOSSですから機能はまだ限定的です。多分バグもあるでしょう。
それでも、ブラウザから録画一覧を見たり、時間指定してのプレビューができたり、
TUIで設定できたり、導入が簡単だったりと十分な機能を持っています。

導入方法

導入方法は以下を読め、です。

わかんね(^_-)-☆って人は、コメントもらえればある程度支援しますが、
ダウンロードの待ち時間など含めても15分もかかりません。
https://github.com/scottlamb/moonfire-nvr

私はRaspi4にZoneminder+Moonfire-NVRの構成で、3台の5MP監視カメラを管理してます。ロードアベレージも平均2程度なので、すげー軽い。

終わりに

日本語で、Moonfire-NVRの記事が全く見つからなかったので書き起こしました。
興味あれば、一緒にいろいろ試してくれると嬉しいです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1