ずいぶん長い間ご無沙汰してしまって、ずっと本ブログの更新ができないでいた。 個人的に仕事と生活の両方で大変な状況が続き、こちらに時間を割けない状態が続いていた。やっと仕事も生活も落ち着いて安定した暮らしがおくれるなったので、これからまた本ブログの更新を続けていく。
ちなみに、以前は本業で別の仕事しながら、副業でIT業をやっていた。いまはIT専業で働いている。 仕事と趣味活動の両方で新しい分野の研究も始めたので、これからブログ記事に書けるネタは増えていくだろう。
さて、本題の今回の記事の内容だが、本記事ではONVIFという仕様を取り上げる。 ja.wikipedia.org とある事情から、中華製IPカメラ(いわゆる監視カメラ)を借りられたので、こいつがどんな仕様なのか調べることになった。
「WiFi Smart Camera」という名前がつけられたメーカー不明の奴だが、どうも中国の小メーカーが製造したボードが搭載されているようだ。
iCSeeという名前の純正アプリがGoogle PlayとApp Storeに在って、これをAndrid/iOSスマホへインストールして使うことを前提としているようだ。
カメラの初期設定は、iCSeeアプリでWiFiに接続した上で、アプリ側に表示されたQRコードをカメラ本体に読ませることでできるようになっている。
これは上手い方法だなぁと思う。ネットワークデバイス用アプリはこの方法を搭載すれば簡単に初期設定ができるので、ONVIF仕様とは別にこの方法がどういう仕組になっているのかも知りたくなった。
ONVIF Device Managerによる調査
最近のこの手のIPカメラは大抵ONVIF(Open Network Video Interface Forum)という仕様に準拠している。
ONVIF準拠カメラを操作することが目的のツールがいくつかあって、その中でもONVIF Device Managerというのが一番有名。
このツールを使って、対象IPカメラを調べてみた。
ONVIF Device Manager を起動すると、すぐに対象機が検出された。 やはりこいつもONVIF準拠カメラだということが判った。
ただし、一概にONVIF準拠とは言っても、結構準拠程度に違いがあるらしい。 特に中華製IPカメラはONVIF準拠程度のバラツキが大きいと聞いたことがある。
このカメラもONVIF Device Managerの映像取得系コマンドは全滅で、下のようなエラーが表示されてしまう。
VLCによる対象機カメラ映像の取得
ONVIF仕様を調べていくと、この仕様にはRTSP(Real Time Streaming Protocol)が含まれていて、デフォルト状態でONVIF準拠IPカメラはRTSPストリームが有効になっていることが解った。
そこで、VLCを使って対象機からRTSP経由でカメラ映像の取得を試みてみた。
すると、問題なく対象機からカメラ映像を取得することができた。
対象機カメラのONVIF準拠程度
上記の情報だけでは不十分だと思ったので、他の調査方法がないかググってみた。そうしたら、ONVIF準拠情報を可能なかぎり詳しく調べることができるツールが見つかったので、このツールを使って本カメラの準拠程度を調べてみた。
その結果、本機のONVIF準拠には以下のような問題があることが判った。
- Media Configuration
- 本系列コマンドによって取得されるURI記述に 'H265' != 'H264' という誤りあり
- Real Time Streaming
- 本系列コマンドによって取得されるURI記述に 'H265' != 'H264' という誤りあり
- Real Time Streaming using Media2
- 本系列コマンドによって取得されるURI記述に '=' != ':' という誤りあり
- PTZ using Media2 | Move Operation | PTZ CONTINUOUS MOVE USING MEDIA2 PROFILE
上記の1〜3がONVIF Device Managerでカメラ映像が取得できない原因だろう。4は本機搭載ファームウェアのバグによる障害現象のようだ(iCSeeアプリでも、パン・チルト・ズーム操作をすると同現象が発生することがあるので)。
ここまで調べたのは、将来ONVIFカメラ用アプリ(Android, iOS, Windows, Mac版全部)を自作するつもりなので、現時点でONVIF仕様をある程度詳しく知っておきたかったから。
ONVIFカメラ用アプリを作り始めたら、その過程の情報を記事にしていこうと思っている。