Raspberry pi3をネットワークカメラ化

UVCのMicrosoft LifeCamをUSB延長ケーブルでOpenRD Ultimateに繋いでZoneminderで録画していた。

ケーブルはウインドクーラーの枠から通していたが、このクーラー、冷えなくなって来たし、エアコン新しくなったし、撤去するかなと思ったが、カメラケーブルが問題となった。

無線化するのにどうするか悩んだ結果、Raspberry Pi3に接続して、WiFiで飛ばす事にした。

最初、motionでやってみたが、640×360のモーションJPEGをZoneminderに映像を渡すと1FPSにしかならず、結局アンインストール。

次にMJPG-Streamer使うと8FPS位で、思ったよりWiFi回線のボトルネックがデカいかな? と思ったが、V4L2使うようにしたら、16FPS指定で16FPS出るようになった。

FoscamとかのCheap Network Cameraを使う手もあるのだが、WiFiが技適通ってないし、カメラと赤外線投光機は優れてても搭載ソフトが腐ってて、MJPEGインタフェースで不正なフォーマットを送りつけてくるから使う気がしない。

OSはRaspbianだが、Debian ARMにRaspberry Pi3の浮動小数点プロセッサーコードを有効にした改造を加えたもので、同じDebian ARMを使ったOpenRD Ultimateより高速に動作する。

性能的に、Raspberry Pi3にストレージを付けて、そこでZoneminderを動かす方が良いのだが、それだとカメラシステム丸ごと盗まれると記録映像が失われてしまうからよろしくない。

今テスト中だが、有線の時と何ら代わりなくカメラ映像を記録できているので、取り敢えずは良かった。

【OpenRD】zoneminderクリーンインストール

監視カメラソフトのzoneminderを1.25からデータを引き継ぎ、upgradeして1.29にしたが、Alarm状態が連続で続く現象が解決できず、結局、一旦全部データ削除してクリーンインストールした。

初期設定からやってみると、カメラデバイスでOutdoorって選択項目を選ぶと、ちょっと感度が鈍くなっていい感じに記録できるようになった。

Screenshot from 2016-03-26 11:52:56昨今の天候だと、日が照ったり曇ったりした時に警報状態になるけど、それが連続する事は無くなった。

以前の1.25に比べて軽く高速に動作するようになったし、zoneminderは本当に良いソフトだ。

徒労

コメントでゲンナリ 🙂

最初が、PCWebConponents.exe を実行したら、「アーカイブの読み込み中にエラーが発生しました」と出て起動できませんときたもんだ。

それにこのプログラム、検索しても引っ掛からないし、FoscamのWebを調べたが、カメラ添付のCDに入ってるWindows用ZIPファイルの中にも無い。

一体、何を動かそうとしてるの? (^^:::

ちなみに、Microsoft系のプログラム(*.exe) をLinuxのファイル一覧からダブルクリックして開くとArchiverが起動する。

これは、自己解凍形式の圧縮ファイル内容を閲覧できるので、Archiverが起動するのだが、圧縮ファイルでないMicrosoft系のプログラムを開こうとすると、「アーカイブの読み込み中にエラーが発生しました」となる。

で、基本中の基本だが、Windowsのプログラムはそのままでは Linux で動かす事ができない。エミュレータを使えば動くかもしれないが、Foscamのツールごときにそんな手間掛ける位なら、手動でやった方がマシだ。

最低限分かっている人は、こういう事を絶対にしないし、もうこの時点で関わり合いになりたくない感じ。

質問ばかりで、問題解決の為のこちらの質問は全てガン無視で、会話が成立しない。

結局の所、

・カメラのIPアドレスは把握できたのか?
・Windows用のツールをLinuxで動かそうとする無駄な努力はやめたのか?

は分からないままだ。

Linux で運用するという茨の道を選択してるのに、楽な方へ楽な方へ行こうとして、覚悟が足りませんねえ 🙂

FI9802Wお陀仏

監視カメラのFI9802Wがとうとうお陀仏っぽい。

ハングアップ→電源再投入→ハングアップ…

みたいな事になっていたが、とうとう電源再投入でもWebアクセスできなくなった。

FI8905Wは未だに健在なので付け替えるかな。

しかし、FI9802Wは不具合多数なのに、次のモデルが出てサポート打ち切られてるみたいだし、すぐ壊れるし、全くフォーラムに書かれている通り、SCAMMEDって感じ。

二度とFoscamの製品は買わん。

【OpenRD】Zoneminderカメラ交換

監視カメラシステムとして、ARM CPUのOpenRD UltimateにDebian squeezeをインストールして、Zoneminderを動かしている。

留守中に誰かが来て、玄関に何か置いてあった時とか、確認するのに結構便利。

Screenshot_from_2014-02-15 10:24:22 敷地内の警戒感度を上げる為に、こげな感じに設定。
ちなみにエリア設定は、IE、Firefox、Google Chrome共、Javascriptがうまく動かないので、Opera 12.16を使用。

Screenshot_from_2014-02-15 10:28:16前のカメラは320✕240ピクセルだったが、細かいところがボケて見え難いというのがあるので、今回は640✕360(16:9)で設定。

ちなみに、前のカメラみたいに横幅320ピクセルだと

Screenshot_from_2014-02-15 10:29:43ちょっと細かい部分が分かり辛い。

4FPS 24時間録画で1ヶ月で消去の設定だが、OpenRDだと15FPS/1台程度なら何とか使える感じ。

ただ、監視カメラ1台の処理でCPUフルパワーだと、時刻サーバーの精度が落ちるし、ファイルサーバーの転送機能にも影響が出るので、ちょっとフレームレートを落として余裕の運用をしている。

でも、640✕360ピクセルの録画だと、結構CPUパワー食いそうだなあ…。

監視カメラ交換

これを買った。

前はDC-NCR13Uという赤外線カメラだったが、経年劣化で土台緩くなって、カメラが土台から抜け落ちた。とりあえずハメてみると、土台がゆるゆるで、カメラのアングルが固定できなくなっている

赤外線カメラは赤外線到達距離が短く、夜は結局のところ、センサーライトが光ってる範囲しか映らないので、別に赤外線カメラじゃなくてもいいという感じ。

linuxでの認識具合はこんな感じ。

noizumi@greyhound:~$ v4l-info

### v4l2 device info [/dev/video0] ###
general info
VIDIOC_QUERYCAP
driver : “uvcvideo”
card : “Microsoft® LifeCam Studio(TM)”
bus_info : “usb-0000:00:14.0-11”
version : 3.12.10
capabilities : 0x84000001 [VIDEO_CAPTURE,STREAMING,(null)]

standards

inputs
VIDIOC_ENUMINPUT(0)
index : 0
name : “Camera 1”
type : CAMERA
audioset : 0
tuner : 0
std : 0x0 []
status : 0x0 []

video capture
VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
index : 0
type : VIDEO_CAPTURE
flags : 0
description : “YUV 4:2:2 (YUYV)”
pixelformat : 0x56595559 [YUYV]
VIDIOC_ENUM_FMT(1,VIDEO_CAPTURE)
index : 1
type : VIDEO_CAPTURE
flags : 1
description : “MJPEG”
pixelformat : 0x47504a4d [MJPG]
VIDIOC_ENUM_FMT(2,VIDEO_CAPTURE)
index : 2
type : VIDEO_CAPTURE
flags : 0
description : “YUV 4:2:0 (M420)”
pixelformat : 0x3032344d [M420]
VIDIOC_G_FMT(VIDEO_CAPTURE)
type : VIDEO_CAPTURE
fmt.pix.width : 640
fmt.pix.height : 480
fmt.pix.pixelformat : 0x56595559 [YUYV]
fmt.pix.field : NONE
fmt.pix.bytesperline : 1280
fmt.pix.sizeimage : 219952320
fmt.pix.colorspace : SRGB
fmt.pix.priv : 0

controls
VIDIOC_QUERYCTRL(BASE+12)
id : 9963788
type : BOOLEAN
name : “White Balance Temperature, Auto”
minimum : 0
maximum : 1
step : 1
default_value : 0
flags : 0
VIDIOC_QUERYCTRL(BASE+24)
id : 9963800
type : MENU
name : “Power Line Frequency”
minimum : 0
maximum : 2
step : 1
default_value : 2
flags : 0
VIDIOC_QUERYCTRL(BASE+26)
id : 9963802
type : INTEGER
name : “White Balance Temperature”
minimum : 2500
maximum : 10000
step : 1
default_value : 4500
flags : 16
VIDIOC_QUERYCTRL(BASE+27)
id : 9963803
type : INTEGER
name : “Sharpness”
minimum : 0
maximum : 50
step : 1
default_value : 25
flags : 0
VIDIOC_QUERYCTRL(BASE+28)
id : 9963804
type : INTEGER
name : “Backlight Compensation”
minimum : 0
maximum : 10
step : 1
default_value : 0
flags : 0
noizumi@greyhound:~$

しかし、G-Tune NextGearのUbuntu 12.04LTS 64bitでは、最初、vlcで映っていたが、暫くすると映像が停止し、何度か抜き差ししても/dev/video0が有効にならなくなった。

OpenRDのdebianだとちゃんとなるのか不明。
休日に脚立出してカメラの入れ替え予定。

FI9802W稼働

監視カメラFoscam FI9802Wを購入して、ZoneMinderに設定できーんと言ってたのが、皇紀2673年3月9日の拙ブログであるが、適当にぐぐれカスしてたら、ZoneMinderのwikiに設定方法をハケーン。

http://<cam ip>:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=<username>&pwd=<password>

という事なのだが、ZoneMinderってMotion JPEGやRTSPの動画ストリームじゃなくて、スナップショット画像で動画作ってくれるのか!?

wikiの通りに設定したら、画像出ましたがな。
ただ、1280×720ってのがデカ過ぎて頂けない。

fi9802_20130316CGI/SDK for FI9802W/FI9801W/FI9802WのFoscam IPCamera CGI User Guide-V1.0.2によると、スナップショットはmain streamの解像度設定に依存するという事なので、stream type 3に変更。

FI8905WではQVGA(320×240)で記録していたが、こいつは720P(1280×720)かVGA(640×480)しか選べねえ。 🙁

商品紹介のスペックだと、
Display Resolution 720p(1280*720),VGA(640*480),QVGA(320*240)
って、書いてあるのに、Forum にSCAMMEDとか書いてる理由が分かる気がする 🙂

運用目処がついたので、とりあえず、FI8905Wの場所にFI9802Wを付け替えてみた。
だが、IR LED Lights(赤外線投光器)をOFFにするとカラーなのだが、Autoでは白黒画像になる。

そこではたと気がついたが、FI8905Wは5V駆動で、FI9802Wは12V駆動なのだ。
FI8905W用に構築したPOE(Power On Ethernet)だと、切り替えスイッチで12VにすればOKなので切り替えた。しかし、動作が怪しいとは言え、よく5Vで動いたもんだ 🙂

FI8905Wだった時
011-capture

FI9802W
FI8902W_20130316_2

 明らかに視野角は広がっているのだが、16:9を4:3の比率に出力しちゃってるので、縦長になっとるのが璧に傷。あと、Motion JPEGで記録してた時は30秒以上の遅れがあったが、これは数秒程度で済んでいる。

赤外線投光器がONで無い時は、赤外線フィルターが効いているようで、FI8905Wで、植栽が白っぽくなっているのに対し、緑で綺麗に発色しているのはいいな。ただ、このフィルター、作動する度にリレー音がカチカチ鳴るので、明暗の激しいところだと、すぐ逝ってしまいそうだ。

ZoneMinder動かしているOpenRD Ultimateが非力なので、できればQVGAで記録したいのだが、Firmwareのupdateで対応してくれる事を祈るのみだな。

FOSCAM FI9802W 購入

http://foscam.us/products/foscam-fi9802w-wireless-ip-camera.html

家の監視カメラにFOSCAM FI8905Wを使っているが、視野角が狭く、通路の監視には向いていても、広い場所には不向きであるのが不満だった。

FOSCAM からのダイレクトメールで、FI9802Wという商品があるのを知り、こいつの視野角が54°なので少し広範囲になるのと、「MEGAPIXEL のクーポンコードで30USD引きだよ」ってのに惹かれて、円安傾向だし、今後値段が上がっていくなあ…と思ってつい購入。

しかしこれがドツボの道だった(笑)。

H.264のハードウエアエンコーディングだが、ネットワークストリームの一般的なプロトコルでアクセスできるのでは無く、Windows か Mac 用のブラウザプラグインによって、言わば、ブラウザを専用ソフトにしてカメラ映像が閲覧できる形式だった。

Screenshot_from_2013-03-09 12:19:03で、VirtualBox のWindows 7 のIE9にいれてみた。

このプラグインは Linux には対応しておらず、カメラ映像を取得するには、CGIインターフェースでやるしかないようだ。

CGI/SDK for FI9821W/FI9801W/FI9802W
でブラウザからカメラにアクセスして、設定変更やMotion JPEGで動画取得が可能という事で、やってみたが、

http://192.168.11.16:88/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=admin&pwd=

404 Not Found

って、なんやねーん 🙁

New Firmware For FI9801W FI9802W Released – Version 1.4.1.10
と、今年の2月25日に新ファームウエアが出ているようなので、早速アップグレード。


http://192.168.11.16:88/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=admin&pwd=

500 Internal Server Error.
(゚Д゚)ハァ?
ぐぐれカスしてみると、監視ソフト屋さんに設定方法のPDFがあった。

http://192.168.11.16:88/cgi-bin//CGIProxy.fcgi?usr=admin&pwd=&cmd=setSubStreamFormat&format=1

と、SubStreamのフォーマットを設定してやるといいらしい。

http://192.168.11.16:88/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=admin&pwd=

Screenshot_from_2013-03-09 12:22:54で無事、Motion JPEGのカメラ映像が観れるようになったが、firefox で開くと固まりかけになる。Google chrome だとすんなり開ける。

そして、Zoneminder に設定してみると、ダメ 🙁

 

 
原因がよく分からないので、DELL Studio 1558のUbuntu にZoneminder 入れてログを見ると、
Mar 9 11:24:37 purplecat zmdc[28588]: INF ['zmc -m 1' started at 13/03/09 11:24:37]
Mar 9 11:24:37 purplecat zmc_m1[28588]: INF [Starting Capture]
Mar 9 11:24:37 purplecat zmc_m1[28588]: WAR [Corrupt JPEG data: premature end of data segment]
Mar 9 11:24:37 purplecat zmc_m1[28588]: ERR [Invalid JPEG file structure: two SOI markers]
Mar 9 11:24:37 purplecat zmc_m1[28588]: ERR [Unable to decode jpeg]
Mar 9 11:24:37 purplecat zmc_m1[28588]: ERR [Failed to capture image from monitor 1 (0/1)]
Mar 9 11:24:37 purplecat zmdc[28253]: ERR ['zmc -m 1' exited abnormally, exit status 255]

どうやら、JPEGフォーマットがおかしいらしい。


vlc "http://192.168.11.16:88/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=admin&pwd="

だと、

Screenshot_from_2013-03-09 12:24:46
[mjpeg @ 0x7f653cc2aea0] No JPEG data found in image
というエラーを吐きながら、一応は動画として見る事はできる。

折角買ったけど、ZoneMinder で使えないんじゃ意味ねーな。

PRN137見っけ

家のサーバーの時計の為にGPS測位しているが、xgps というGUIで測位状況を見る事ができる。

そのGPS で MTSAT-1R(PRN129)は把握していたが、運輸多目的衛星MTSAT-2(PRN 137)を初めて補足。

prn137□137 のマークがそれで、MTSAT-1Rよりちょっと東寄り。

時計合わせの方は、

誤差が大き過ぎるのか、参照されていない(^^;
時間合わせは主に、nict 様の世話になっている。

監視カメラシステムの ZoneMinder がCPUパワー食うのと、USBのGPSではシリアル通信のタイムラグが大きいのかな?

まあ、ネットワーク途絶時に、1秒以内誤差ならそれでよし。

Zoneminderに赤外線カメラ追加

赤外線カメラを発注していたのは支那のサイトの Aliexpress

前から Alibaba って支那の業者の製品を日本の業者に仲介するサイトがあるのだが、そもそもアリババって盗賊だし、盗賊市かよ!? って感じで言葉のイメージがよろしくない。

Alibaba は業者向けで、発注ロットが100個とか1万個とかそういう単位なので、一般人は手を出し辛い。そこで出てきたのが1個から売ってくれる Aliexpress なのだろう。

サイト自体の作りと販売システムはしっかりしていて、すぐにチャットで相談できるようになっている。ブツが届かなければ、Open Dispuiteで支払い停止できるみたいだし、さすが信用のおけない支那人相手の商売を成り立たせる仕組みだと感心する事しきりである。

話はそれたが、Aliexpress で調達したのが、
・FOSCAM FI8905W
・PoE給電アダプタ(5V、7.5V、9V、12V切替スイッチ付き)

の2点。カメラは上海、PoE給電アダプタは抗州ルートでいずれも無事到着した。これでコンセントの位置に関係無く、ネットワークケーブルの届く範囲に自由にカメラを配置できる。

そこで、ネットワークケーブルだが、これはAmazonで
・10m カテ6 Ethernetケーブル

を調達。

PoE給電アダプタは、普通のPoEの規格だと、48Vを送電する事になっていて、汎用電気機器に給電するには、電圧変換をしないといけないのだが、支那から取り寄せたアダプタは、切替スイッチがついているので、その点の問題はクリアしている。

ただ、誤算だったのが、取り出すDC電源のコネクタがφ2.1で、FOSCAM FI8905Wはφ1.3なので、このままでは繋がらず、共立エレショップを見ると、DCプラグ変換コネクタというのがあったので、これを調達。

この変換コネクタをFOSCAM FI8905Wに差し込むとかなりプラグが余り、ピッタリとは嵌らない。しかし、給電には問題無いので良しとする 🙂

実際の画像は次の様な感じ。

FOSCAM FI8905WはDC-NCR13Uよりも2mは後方に配置しているのだが、映ってる範囲は遥かに狭い。しかし、赤外線に対する感度は高く、はっきりと映っている。

DC-NCR13Uは真っ暗な映像しか映っていなかったのが、FOSCAM FI8905Wの60個の赤外線LED投光器により、多少はマシになったが、やはり赤外線に対する感度が悪すぎる。

一時はDC-NCR13Uの夜間監視能力向上の為、赤外線投光器の設置も考えたが、この結果からすると、相当強力な赤外線投光器でなければ改善しないので、やはり屋内の近距離にしか使えなさそう。

FOSCAM FI8905Wは夜間の能力は申し分無いのだが、前述の通り、映る範囲が狭すぎるので、範囲をカバーするには距離が必要という事で、二階から見下ろす位置に設置するしか無さそうだ。

この監視カメラの動態検知をする OpenRD Ultimate だが、2台となると、かなり負荷が厳しい。1台のカメラに1台の Sheeva の処理能力が適正と思われる。