ONVIF対応について | ATOM Tech(アトムテック)
知ってる人は知ってると思いますが、使い始めるまではクッソ簡単なATOMCam2ですが、ちょっと凝ったことをしようとすると、例えばブラウザからjpgが見てみたい、とかVLCでストリームを見たい、とかローカル内でマルチカメラを自分で見たい、とか言った目的のために、いわゆるONVIF対応が待ち望まれていて、さらにそれは開発中だと言い続けて早数か月、ユーザからは悲観的なコメントがあふれ、不満のコメントがぶつけられ続けています。
改めて言うけど、ちょっと使うにはすごいいいです。
個人的にたくさん並べてますし、交差点カメラとしての動作もばっちりです。
しかし、これをプログラムから自動化しようとすると、途端に何もできないのです。
ATOM Cam2の基板にははIngenic T31というSoCとイメージセンサが搭載されていますが、例えばラズパイにUSBビデオキャプチャをつなげた時のように、/dev/video0にアクセスすれば画像ができる、といった仕組みにはなっていません。
この組み合わせのための専用のSDKが準備されています。
しかし、そのSDK自体はその辺には転がっていません。
ネットの海をあれこれして、怪しげなサイト(別に怪しくはないのですが)にクレジットカード番号を入力したところ、T31用のSDKを入手し、サンプルコードを実行させることができました。
Ingenic T31のSDKに入ってるmips-gcc472-glibc216-64bit/bin/mips-linux-gnu-gccでHello,world成功(まぁ普通) pic.twitter.com/rJWs2YZfb8
— ひろみつ(honeylab) (@bakueikozo) 2021年6月27日
サンプルコードは非常に簡潔で、どうやらWyzeやATOMCamのアプリを制作している会社がラップしている"localsdk"は、このSDKに一枚皮をかぶせ、SDKの"sample"などの文字列が残ったままで作られている程度のもののようです。
また、元のSDK自体にもLinuxのソースコードやビルド済みカーネル、rootfsなどが添付され、割と簡単にカスタムファームウェアを作れるレベルの内容であることがわかりました。また、WyzeCamではv2までのカスタムファームウェアが実際にリリースされていますので、まともなエンジニアがちょっと本気を出せば、ONVIF機能などあっという間に完成するもののはずです。
このサンプルコードを改変し、boa(httpサーバ)を使い、ATOMCam2の画像をローカルLAN経由で取得することに成功しました。
これを拡張していく、例えばmjpg-streamerやffmpegなどに画像を渡すことで、ONVIFやRTSPへの対応ができるものと考えられます。
では、ATOMTechは何でできないのか。
エンジニア逃げたのかなw
いや、もともと内部にはエンジニアはいなくて、下請けに何らかの理由で追加開発を拒否されているんでしょうか。
さて、ここで一つ問題があります。
出荷されたATOMCamでは、iCamera_appというアプリがカメラの制御をすべて使用していて、あとから機能追加などをすることができません。
(試してないんですが、たぶん。)
つまり、いまのATOM アプリを使用しつつ、自作の画像取得アプリを動かす、というのは、iCamera_appからのソースコードレベルでの改変を行わないとおそらくできないものと考えられます。
(いや、すごい頑張ればできるんだけど…逆アセンブルから大体のプログラムの構造はわかってて、それに対して適当にinjectionすればできそうではあるんだけど…)
まぁ、これらを踏まえると、ATOMTechが倒産した暁には、iCamera_appを完全に無効化し、何らかの画像中継サーバなどを利用するか、ローカルでどうにかするためのアプリをリリースする環境は十分に整っていると考えられます。
(私がやるとは言ってない…)
なので、皆さん、安心して ATOM Cam2を買うんだ!
市販レベルでは結構最高品質のカラーナイトビジョンとWiFi搭載マイコンボードがついてなんと3000円!!安い!!!!買うなら↓のリンクから(アフィ)
こんなアフィ記事ねーよ。