中国のIPカメラをOpenIPCでオープンなLinuxコンピュータに変える方法
マーケットプレイスで安いカメラを買い、電源を入れたら、经典的な旅が始まります。手机に怪しいアプリをインストールし、中国のプロバイダーにアカウントを登録し、映像ストリームが知らないサーバーに向かっていなければいいにと願う必要があります。遅延のない通常のRTSPストリームやデバイスへのSSHアクセスなんて、夢のまた夢です。
OpenIPCプロジェクトは、まさにこの問題を解決します。開発者たちはBuildrootベースの代替的なオープンソースファームウェアを作成し、ベンダーの膨張ソフトウェアをすべて取り除き、通常のIPカメラを予測可能なLinuxデバイスに変えます。
OpenIPCとは何か、なぜ工場ソフトウェアを変更するのか
監視カメラの工場出荷時ファームウェアは、ほとんど常にクローズドソースです。メーカーは古いLinuxカーネルを使用し、その上に独自のバイナリを重ね、ポートをロックします。
OpenIPCは異なるアプローチを取ります。オープンソースのディストリビューションで、ストックソフトウェアをクリーンなシステムに置き換えます。クローズドなデーモンの代わりに、ミニマリストなLinux、SSHアクセス、ウェブインターフェース、ローカルネットワークへの直接ストリームが得られます。カメラは外部クラウドへの通信を止め、あなたの条件のみで動作を開始します。
このプロジェクトはHiSiliconプロセッサ向けの愛好家向けビルドとして始まり、時間の経過とともに универсальный фреймворкへと成長しました。コードベースは現在MITライセンスの下でGitHubにあり、コミュニティは積極的に新しいチップへのシステム移植を進めています。
ハードウェアとサポートされているプロセッサ
ほとんどの低価格カメラの中には、プロセッサコア、センサーコントローラー、ハードウェアビデオエンコーディングブロック(H.264/H.265)を組み合わせた専門的なSoC(System-on-Chip)が入っています。OpenIPCは多くのSoCに対応しています:
- HiSilicon (Hi35xx series)
- SigmaStar
- Ingenic
- XiongMai (XM)
- Goke
- Novatek
- Fullhan
- Anyka
サポートされているチップのリストは常に増加しています。古いXiongmaiカメラや、棚に埃をかぶった知らない中国のDVRを持っているなら、内部のボードがすでにサポートされている可能性が高いです。
システムができること
ファームウェアの主な仕事は、センサーから生フレームを取得し、ハードウェアで圧縮し、最小限の遅延でネットワークに配信することです。このために、OpenIPCは独自のストリーマー majesticを使用します。
フラッシュ直後に得られる基本的な機能は次のとおりです:
- SSHによる完全なrootアクセス。CPU負荷の確認、crontabの設定、独自のバイナリの実行が可能。
- 標準プロトコルサポート。RTSP、HLS、WebRTC、MJPEGでワークアラウンドなしで映像を配信。
- Webインターフェースによる画像設定。露出、ホワイトバランス、ビットレート、フレームレート、モーション検知ゾーンをブラウザで設定可能。
- ローカルテレメトリ。カメラはPrometheusにメトリクスをプッシュし、MQTTやWebhookでイベントを送信可能。
- インターネットなしでも動作。デバイスはローカルサブネットに隔離され、起動にインターネットアクセスを必要としない。
アーキテクチャ:仕組み
OpenIPCの中核はBuildrootです—コンパクトな組込みLinuxシステムを構築するための便利なツールです。
ファームウェア全体は数メガバイトしかなく、標準的な8MBまたは16MBのSPIフラッシュストレージに収まります。システムには重いパッケージや不必要なバックグラウンドデーモンがありません。
ストリーマー majesticはチップメーカーのプロプライエタリライブラリ(SDK)を介してハードウェアドライバーと通信しますが,本身はクリーンなAPIを提供します。これにより、RAM使用量は15〜25MB以内に抑えられ、ビデオストリームの遅延は数十ミリ秒にまで低下します。
予想外の用途:ドローン用のデジタルFPV
このファームウェアは元々監視カメラ向けに作成されましたが、RC愛好家の間で急速に注目を集めました。
低エンコード遅延と軽量Wi-Fiモジュールサポートにより、OpenIPCはラジコン、ドローン、飛行機向けの低コストデジタルビデオリンク(FPV)として使用され始めています。カメラボードは約10〜15グラムの重さ、5Vで動作し、変更されたWi-Fiプロトコル(wfb-ng)を介して地上局やビデオゴーグルに直接HD映像をブロードキャストできます。
リポジトリには、低pingとテレメトリ伝送に最適化された個別のブランチとビルドプロファイルがあります。
課題と落とし穴
すべてがワンクリックでインストールされると表現するのは正しくありません。カメラのフラッシュには特有の手順が必要です:
- 正確なボードリビジョンを把握する必要があります。見た目が同一のカメラでも、異なるプロセッサや異なるセンサーが搭載されている場合があります(例:Sony IMX307 vs. SmartSens SC2235)。
- ハンダごてが必要なこともあります。ストックファームウェアがロックされており、ウェブインターフェースから更新できない場合は、USB-UARTアダプタをボードのRX/TXピンに接続してU-Boot経由で起動する必要があります。
- ドキュメントは散らばっています。基本的な手順はプロジェクトのWikiにありますが、特殊传感器的設定の詳細はコミュニティのTelegramチャットで見つける必要があります。
試してみる価値はあるか
月に一度 готовый モバイルアプリを使って駐車場を確認するだけのカメラが必要なら、ストックファームウェアをそのまま使う方が簡単です。
しかし、Home Assistant、Frigate、Zoneminderベースのローカル映像監視システムを構築している場合、OpenIPCは宝石のような存在です。ハードウェアへの完全な制御、データセキュリティ、超低価格カメラから最大限の品質を引き出す能力が得られます。
公式サイト openipc.org で探索を開始し、couplerユーティリティのドキュメントを読んでください。このユーティリティは、ハンダ付けなしでファクトリーのWebインターフェースから多くのカメラをフラッシュできます。
関連プロジェクト