ZoneMinder+独自UIでわがまま仕様に応えることが出来たけど難産だった。
お得意さまからのご相談で、監視カメラモニタリングシステムの設計と開発を行いました。なかなかの難産でした(´д`)正直、赤字でしたがw楽しかったです。
奇跡的に完璧な動作をしているのでほっと胸をなで下ろしていますw
要件は…
・できるだけ低予算で
・カメラの設置先は2拠点あり片方に10台、もう片方に3台の合計13台
・、拠点1にあるオフィスから、全ての映像を常時監視したい(相互にVPNでつながっている)
・外部から閲覧可能
と、わりとわがままボディな要求仕様でした。予算はさておき、要求を聞かされて「出来る?」と聞かれたので、「まぁ、どーにかなるでしょうwむしろちょっとやってみたいです。」とおなじみの安請け合いで開発開始。
ネットワークカメラと言えば、私も個人的にガレージの監視に使っています多機能でOSSなZoneminder入れておけば間違いないでしょう、ということで、ベースのシステムはZoneMinderを使用することにしました。
※motion というソフトもありますが、1台の場合は簡単で良いのですが、複数台カメラがあると不安定(というかほぼ管理出来ない)ので、スルーです。
実験開始!
カメラ1台の場合は、自宅ガレージで特に問題ないことを実証済みです。マルチカメラでも特に制限はないはずなので、IPカメラを手配しました。ハブを介して、全力でカメラをセットアップし、接続します。
10台のカメラは正常に接続・認識され、録画されています(・∀・)
うんうん、首尾は上々。ZoneMinder単体でモニタリングもできるし予算内でクリアできるよなーと思ってたのですが、ココで問題が…。
ZoneMinderのマルチ画面(Montage)で、台数が増えてくると映像が出ない&CSSが反映されない
3~4台の場合は、モンタージュ画面できちんとCSSが反映され、映像は横並び、になります。これで台数増えてもいい感じに増やせるよね!
ですが…
カメラが5~6台目になると、なにやら様子が変わります。
おや?画面が乱れています(´д`)経験上、画面表示の状況からピンときますが、CSSが効いていないようです、加えて、下の方のカメラ映像も表示されません。なぜだ!
カメラ台数によるZoneMinder(というかブラウザ&webサーバ)の制限
調べたところ、ZoneminderのMontageを介して配信する映像は、1カメラごとに常時ストリーミングするようなイメージになり、1カメラごとに、常時1コネクションが占有されてしまいます。
デフォルト設定は6 ですので、カメラが7映像以上になると上記の様相になってしまうはずですね。試しにこの設定を16とかにすると、16台まで表示されました。原因は判明しました(・∀・)
ではそれを解消するには…?
ブラウザの「一つのサーバーに対して同時にいくつの接続を持つか」という設定項目を…?
network.http.max-persistent-connections-per-server
Firefoxで言うとabout:config の↑で設定を変更することができます。じゃあ設定上げちゃえばいいじゃない!
…サーバに負担が半端ない、ブラウザの標準設定を変更するのはやはり無理がある
それで行けるかなと思ったのですが…、しばらく見てるとhttpサーバが落ちましたwRTSP10本を処理し、HDDに書き込みつつ、HTTPリクエストを処理しつつストリーム10本垂れ流しをする…のは追いつかないようでした。
ChromeとかEdgeとかはそもそもこの設定を簡単に変更することが出来ないっぽいし、この方法はダメです。他のサーバに負担を掛けてしまうことも考えられます。どうする俺!…。