ONVIF の概要

どっちがどっちだっけ？となることありませんか？
私はあります。（最近特に）
ONVIF の Profile について、どれがどれだっけとなって、公式サイトをみた所、プロファイルも増えているし、仕様書のバージョンも上がっていたので、関心深い所から調べなおしました。結果をここに記します。
ほぼ、[Onvif 公式サイト](https://www.onvif.org/) 　からの抜粋ですが、参考になれば幸いです。 


#ONVIF
[Open Network Video Interface Forum](https://www.onvif.org/) 
IPネットワークカメラ製品のインターフェースの規格標準化フォーラム

####ONVIFの目的
* IPネットワークを用いるセキュリティ製品の通信規格の標準化する
* メーカー（ブランド）に関係なく相互運用を可能とする
* 全ての企業や組織へ規格を開放する

#ONVIF Profile
| Profile |　概要 | 初出 |
|:--:|:---|:--|
| A | アクセス権限管理 向け | 2017/6 |
| C | ドアなど 物理的アクセス制御 向け | 2013/12 |
| D | アクセス制御周辺機器用(カードキー、生体認証機器） | 2021/6 |
| G | 録画機能 | 2014/6 |
| M | 分析アプリケーションのメタデータとイベント | 2021/6 |
| Q | ~~ネットワーク内のセキュリティ製品の設定の管理を容易とする仕組み~~ 2022/3/31 でサポート終了| 2016/7 |
| S | IPカメラ／エンコーダ 向け| 2011/12 |
| T | 高性能化した IPカメラ／エンコーダ 向け(H.264 , H.265) | 2018/9 |

## Profile A
* 資格情報の付与/取り消し
* スケジュールの作成
* アクセスルールの割り当て

プロファイルAは、電子アクセス制御システムで使用される製品のためのものです。プロファイル適合デバイスは、情報、ステータス、およびイベントを取得し、アクセスルール、認証情報、スケジュールなどのエンティティを設定できます。プロファイルA準拠のクライアントは、アクセスルール、資格情報およびスケジュールの設定を提供できます。クライアントは、標準化されたアクセス制御関連のイベントを取得して受信することもできます。

## Profile C
* サイト情報と設定
* イベントとアラームの管理
* ドアアクセス制御

プロファイルCは、電子アクセス制御システムで使用される製品のためのものです。プロファイルC準拠のデバイスおよびクライアントは、サイト情報、ドアアクセス制御、およびイベントおよびアラーム管理をサポートします。

## Profile D
* 入力されたクレデンシャル識別子とアクセス要求
* ロック/ロック解除などのアクションの実行

プロファイルDは、トークンリーダー（カード、キー、携帯電話、またはバーコード用）、生体認証リーダー（指紋認識用）、カメラ（虹彩、顔面またはライセンスプレート認識用）、キーパッド、センサーなどの周辺機器入力デバイスのインターフェイスを指定します（ロックステータス、ドアステータス、温度またはモーション用）、およびロック、ディスプレイ、LEDなどの出力デバイス。

プロファイルD周辺機器は、入力クレデンシャルIDをキャプチャし、アクセス制御ユニットや管理ソフトウェアなどの安全に配置されたプロファイルDクライアントに渡します。アクセスルール、スケジュール、および資格情報を保存するクライアントは、アクセスの決定を行い、周辺機器にコマンドを返送して、アクセスを許可または拒否したり、メッセージを表示したり、PINコードなどの追加入力を要求したりできます。

プロファイルD仕様により、適合クライアントは、デバイスが担当するドアやアクセスポイントなどの必要なデータを使用して適合デバイスを構成したり、この機能をサポートするデバイスで許可またはブロックされたクレデンシャル識別子のリストを構成したりできます。

ONVIFプロファイルDは、IPベースの電子アクセス制御システムで標準化された通信を可能にするという点でプロファイルA とプロファイルCを補完します。リレー出力がロックに接続されたIPカメラなどのプロファイルDデバイスは、ONVIFインターフェイスを使用する統合ビデオおよびアクセス制御システムのプロファイルMやプロファイルTなどの他のONVIFプロファイルもサポートできます。

## Profile G
* 録画の設定、要求、制御
* オーディオとメタデータストリームの受信

プロファイルGは、IPベースのビデオシステム向けに設計されています。プロファイルGデバイス（IPネットワークカメラまたはビデオエンコーダなど）は、IPネットワークまたはデバイス自体を介してビデオデータを記録できるデバイスです。プロファイルGクライアント（例えば、ビデオ管理ソフトウェア）は、プロファイルG準拠デバイスからIPネットワークを介してビデオデータの録画設定、即時の録画開始/停止の要求、等することができるものです。プロファイルGは、クライアントがこれらの機能をサポートしている場合、オーディオおよびメタデータストリームの受信をサポートします。

## Profile M
* メタデータの分析構成と情報クエリ
* メタデータの構成とストリーミング
* ジェネリックオブジェクト分類のサポート
* ジオロケーション、車両、ナンバープレート、人間の顔と体のメタデータ定義
* オブジェクトカウンター、顔、ナンバープレート認識分析のためのイベントインターフェイス
* メタデータストリーム、ONVIFイベントサービス、またはMQTTを介したイベントの送信
* イベントのルール構成

ONVIFプロファイルMは、メタデータの分析構成と情報クエリ、およびメタデータのフィルタリングとストリーミングをサポートします。一般的なオブジェクト分類用のインターフェイスと、ジオロケーション、車両、ナンバープレート、人体、人体の指定されたメタデータがあります。準拠製品がメディアプロファイル管理、ビデオストリーミング、メタデータストリームへの画像の追加、イベント処理、ルール構成などの機能をネイティブでサポートしている場合は、これらの機能のプロファイルMインターフェイスもサポートする必要があります。また、準拠製品がオブジェクトカウント（人、車両など）、ナンバープレート認識または顔認識、またはIoT（Internet of Things）システムで使用されるMQTT（Message Queuing Telemetry Transport）プロトコルの分析をサポートしている場合は、プロファイルMも必要です。これらの関数のイベント処理インターフェイス。

プロファイルM準拠の製品は、エッジデバイス（IPカメラやビデオベースのドローンなど）またはプロファイルMインターフェイスを使用してメタデータを送信できる分析機能を備えたサービス（サーバーベースまたはクラウドベースのアプリなど）です。クライアントへのIPネットワーク。プロファイルM準拠のクライアントは、ビデオ管理ソフトウェア（VMS）プログラム、ネットワークビデオレコーダー（NVR）、またはプロファイルMインターフェイスを使用してのストリーミングを構成、要求、および制御できるサーバーベースまたはクラウドベースのサービスです。プロファイルMエッジデバイスまたはサービスからのIPネットワークを介したメタデータ。MQTTをサポートするプロファイルMデバイスまたはクライアントは、IoTプラットフォーム/アプリケーションと通信することもできます。IoTプラットフォーム/アプリケーションは、IoTデバイスおよびアプリケーションと通信することができます。

プロファイルMは、セキュリティ、ビジネスインテリジェンス、およびIoTアプリケーションのメタデータベースまたはイベントトリガーベースのユースケースに適用できます。

ビデオのコンテキストでは、メタデータはシーン内の要素にタグを付けるのに役立ちます。メタデータは次の目的で使用できます。

ビデオストリームで関心のあるオブジェクトを強調表示する
オブジェクト分類とジオロケーションを使用してヒートマッピングまたは車両マッピングを提供し、事前定義されたエリア内のオブジェクトの数を決定します
関心のあるビデオコンテンツを効果的に保存および取得します
ビデオシーンの領域でのビデオ検索を容易にします
プロファイルMイベント処理インターフェースを使用する場合：

訪問者の統計、群集の制御、訪問者の管理、または分析を数える人によるキューの管理
ナンバープレート認識アプリによる駐車場のアクセス制御用
プロファイルMカメラ（MQTTサポート付き）が部屋にいる人間を検出し、MQTTを介してONVIFイベントをIoTプラットフォーム/アプリケーションに送信し、スマートサーモスタット（IoTデバイス）をトリガーして室温を調整する室温制御
ONVIFプロファイルMは、ビデオストリーミング用のプロファイルSおよびT、ONVIFインターフェイスに基づく統合システムのアクセス制御用のプロファイルA、C、およびDなどの他のONVIFプロファイルと組み合わせることができます。

## Profile Q
2022/3/31 サポート終了  (セキュリティ面で見直されたっぽい)
<font color="gray">
* 簡単なセットアップ
* 適合デバイスの発見、設定、制御
</font>
<font color="gray">
プロファイルQは、IPベースのビデオシステム用であり、ネットワーク上のProfile Q準拠製品（ネットワークカメラ、ネットワークスイッチ、ネットワークモニタなど）の迅速な検出と基本設定を提供することを目的としています。プロファイルQ準拠デバイスは、プロファイルQクライアントによって検出および設定できるデバイスです。プロファイルQに準拠するクライアントは、IPネットワークを介してプロファイルQデバイスを検出、構成、および制御できるクライアントです。プロファイルQには、この機能をサポートする準拠製品のTLS（Transport Layer Security）構成の仕様も含まれています。TLSは安全な通信プロトコルであり、ONVIFデバイス自体が不正操作や盗聴から保護する方法でネットワーク上のクライアントと通信することができます。
</font>
　　
## Profile S
プロファイルSは、IPベースのビデオシステム向けに設計されています。プロファイルSデバイス（IPネットワークカメラまたはビデオエンコーダなど）は、IPネットワークを介してProfile Sクライアントにビデオデータを送信できるデバイスです。プロファイルSクライアント（例えば、ビデオ管理ソフトウェア）は、プロファイルSデバイスからIPネットワークを介してビデオストリーミングを構成、要求、および制御することができるクライアントである。プロファイルSは、そのような機能をサポートする適合デバイスおよびクライアントのためのPTZ制御、オーディオ、マルチキャスティングおよびリレー出力のONVIF仕様もカバーしています。

||| 
|:--:|:---|
|映像コーデック|MJPEG(M) , MPEG-4(C) , H.264(C) | 
|音声コーデック|G.711(C) , AAC(C) , G726(C) |
|Media通信プロトコル |RTP/UDP(M),	RTP/RTSP/HTTP/TCP(M) , RTP/UDP Multicast(C)|
|設定機能|装置設定、ネットワーク構成、ユーザ管理、映像エンコード設定、音声エンコード設定、PTZ、...。 |
|一般機能|装置検索、機能一覧 ...。|

※   (M):必須 , (C):条件あり必須 , (O):オプション 


## Profile T
* H.264 / H.265ビデオ圧縮
* 画像設定
* モーションアラームと改ざんイベント

プロファイルTのリリース候補は、IPベースのビデオシステム用に設計されています。プロファイルTは、H.264およびH.265エンコーディングフォーマット、イメージング設定、およびモーションおよび改ざん検出などのアラームイベントの使用などのビデオストリーミング機能をサポートします。デバイスの必須機能には、オンスクリーンディスプレイとメタデータストリーミングも含まれていますが、クライアントの必須機能にはPTZ制御も含まれています。プロファイルTは、HTTPSストリーミング、PTZ設定、モーションリージョン設定、デジタル入力とリレー出力、およびそのような機能をサポートする準拠のデバイスとクライアントの双方向オーディオのONVIF仕様もカバーしています。
注：プロファイルTは、プロファイルSの代替として意図されていません。プロファイルSとT仕様の両方に独自のアプリケーション領域があり、組み合わせることができます。

|||
|:--:|:---|
|映像コーデック|H.264(M) , H.265(M) | 
|音声コーデック|G.711(C) , AAC(C)  |
|Media通信プロトコル |RTP/UDP(M)、RTP/RTSP/HTTP/TCP(M)、RTP/UDP Multicast(M)、RTP/RTSP/HTTPS/TCP(M)、RTP/RTSP/TCP/WebSocket(M)|
|設定機能|装置設定、ネットワーク構成、ユーザ管理、映像エンコード設定、音声エンコード設定、PTZ、...。 |
|一般機能|装置検索、機能一覧 ...。|
|追加機能 |Metadara Streaming(M)、JPEG Snapshot(M) |
|イベント通知 |Motion Alarm Events(M)、Motion Region Detector Events(C)、Tampering Event(M) |
※   (M):必須 , (C):条件あり必須 , (O):オプション 






# 実装方法
#### ミドルウェア
* [図研エルミック Z-PROシリーズ] (http://www.elwsc.co.jp/japanese/products/onvif.html/)

#### RTP/RTSP で 映像/音声データのみ扱えればいい場合
* [GStreamer](https://gstreamer.freedesktop.org/)
  [(RTP and RTSP support)] (https://gstreamer.freedesktop.org/documentation/rtp.html)