各種ネットワークカメラからJPEG画像を拾う

Webカメラはコンピューターに繋げばfswebcamなどでJPEG画像として撮影結果が出力できます。

しかし、ネットワークカメラ(IPカメラ)は各社ごとに様々な方法で撮影結果の表示を行なっています。

・Webブラウザで閲覧する方法

・専用のソフトウェアで閲覧する方法

などがあり、Webブラウザで閲覧する方法では、表示の仕方も様々です。(ActiveXやFlashなど)

手持ちのネットワークカメラ、ビデオサーバーからJPEG画像を取得するまでのメモ書きです。

 

■WebcamXP編

http://www.webcamxp.com/home.aspx

WebcamXPはコンピューターに接続されたWebカメラをネットワーク経由で配信するWindows用ソフトです。

リビングのコンピューターはWindowsを導入していて、Webカメラが接続されているので、このソフトを使用しています。

一般的な使用方法は http://そのコンピューターのIPアドレス:8080  にアクセスして撮影結果を見ることができます。

ブラウザでソースを表示して追っかけていくと、 http://IPアドレス:8080/cam_1.jpg にアクセスすると画像単体で見れることがわかりました。

そこでPHPのGDに突っ込んで、文字を合成しようと思ったのですが、HTTPのURL経由で読み込もうとすると数分もかかります。

(いくら調べても結局よくわかりませんでした)

そこでwgetで読み込むことにしました。(wgetでの読み込みは素早くできる状態)

 

$img = imagecreatefromstring(shell_exec(“wget -q -O – http://IPアドレス:8080/cam_1.jpg”));

このようなPHPのコードを書いて運用しています。

 

■PanasonicネットワークカメラKX-HCM1編

これもブラウザで見るタイプです。

IEで見るとActiveXのインストールが要求されます。

ソースコードから追っかけていった結果、以下のようになっています。

 

$img = imagecreatefromstring(shell_exec(“wget -q -O – http://IPアドレス/SnapshotJPEG?Resolution=640×480&Quality=Standard&Interval=10”));

 

 

■Sercomm NV412A 1ch ビデオサーバー (RS-485制御付き)

手持ちのRS-485制御を受け付ける、パン・チルト・ズームカメラを接続するために、ebayで購入したものです。

ブラウザでソースを見ていく限り、Ciscoのネットワークカメラのコマンドがそのまま実装されている?みたいで、

http://www.domoticaworld.com/domotica/wp-content/uploads//2009/03/Cisco_WVC210_HTTP_API.pdf

このCiscoネットワークカメラのHTTP APIリファレンスを見ながら実装することができました。

 

画像の取得:

$src = imagecreatefromstring(shell_exec(“wget -q -O – http://IPアドレス/img/snapshot.cgi?size=3&quality=3”));

 

パン・チルトコマンド:

exec(“curl http://IPアドレス/pt/ptctrl.cgi?cmd=U”); //UP

exec(“curl http://IPアドレス/pt/ptctrl.cgi?cmd=D”); //DOWN

exec(“curl http://IPアドレス/pt/ptctrl.cgi?cmd=L”); //LEFT

exec(“curl http://IPアドレス/pt/ptctrl.cgi?cmd=R”); //RIGHT

exec(“curl http://IPアドレス/pt/ptctrl.cgi?cmd=set_home”); //SetHomePosition

exec(“curl http://IPアドレス/pt/ptctrl.cgi?cmd=goto_home”); //GotoHomePosition

残念ながらズームは操作できないようです。

それと各移動コマンドの移動量が大きく、少しだけ動かすというのが出来ないのが難点ですね。

他のビデオサーバーではどうなのかな・・・?

 

 

■ AVIOSYS  IP Video 9100シリーズ (4ch ビデオサーバー)

今回は秋月電子通商で販売されていた、「IP Video 9100 RK」を使用しています。

http://akizukidenshi.com/catalog/g/gK-02957/

ケースに入った「IP Video 9100 B」も売ってましたが、高いので裸基板のやつです。たぶん中身一緒。

 

参考リンク:

http://www.arumis.com/oreteki/no6/2.html

http://www.keytecs.net/docs/9100A-Plus-ManualV232-j.pdf

http://www.campworld.net/thewiki/pmwiki.php/HWHacking/Aviosys9100

http://www.sunspot.co.uk/Projects/IP_KAM_9000and9100_notes.htm

JPEG取得のJavaScript: http://www.benlo.com/ip9100a/webcam.html

解析してる人がいる: http://www.solivant.com/9100aplus/

 

画像の取得:

一度に1chの画像しか取得できないらしい?

画像自体: http://IPアドレス/Jpeg/CamImg.jpg

チャンネル変更コマンド: http://IPアドレス/SetChannel.cgi?Channel=[0-3]

現在のチャンネル表示: http://IPアドレス/GetChannel.cgi

 

Round Robin Modeがちょっとよくわからんなあ・・・

JPEG取得してGDで処理するPHPスクリプト書いてみたけど動作がおかしい・・・

 

■ IP Video 9100シリーズのカスタムファームウェア導入

海外で結構有名なビデオサーバーらしく、情報が豊富にある。

Yoicsというところから、使いやすくカスタマイズされたファームウェアが配布されているようなので導入してみる。

(Yoicsファームウェアと呼ばれているようだ)

 

Yoicsファームウェアダウンロード先:

http://support.yoics.com/viewtopic.php?t=608

 

書かれているとおりに、

http://9100.yoics.com/includes/builds/yoics9100a_2_47.zip

をダウンロードする。

 

解凍すると、「9100a_2_47.bin」と「md5sum.txt」が現れる。

「9100a_2_47.bin」のMD5を確認しておこう。

 

ブラウザでIP Video 9100 RKに接続し、左のメニューから「Configuration」→「System」と開き、

System Settings内にある「Firmware update」というリンクを開く。

するとアップロード画面になるので、先ほどダウンロードした「9100a_2_47.bin」を選択し、アップロードする。

あとは指示に従ってファームウェアを更新し、本体の再起動をかけるだけである。

 

再起動後は、通常のファームウェアと変わらない外見であるが、

JPEG画像を取得する際に、チャンネル別に取得できるようになるのである。

 

取得方法: http://IPアドレス/usr/yoics[0-3].jpg

 

yoics0.jpgからyoics3.jpgまでが、ビデオ入力のch1からch4までに対応している。

これは素晴らしい!

 

その他参考リンク:

フォーラム: http://support.yoics.com/viewforum.php?f=5

純正ファームウェア配布?: http://www.arucaelectronics.com/shop/updates.php

復旧する方法?: http://support.yoics.com/viewtopic.php?t=95

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です