国家標準 GB28181 プロトコル クライアント開発 (3) クエリとリアルタイム ビデオ画面

国家標準 GB28181 プロトコル クライアント開発 (3) クエリとリアルタイム ビデオ画面

この記事は「国家標準 GB28181 プロトコルのデバイス側開発」シリーズの 3 番目であり、GB28181 プロトコルにおける情報クエリとリアルタイム ビデオのアプリケーションについて説明します。まず、デバイス ディレクトリ クエリ、デバイス情報クエリ、およびデバイス ステータス クエリの 3 つの重要な情報クエリ機能を紹介し、プロトコルにおけるそれらのシグナリング インタラクション プロセスを詳細に説明します。続いて、データ伝送プロトコルや伝送仕様要件など、リアルタイム ビデオの実装について詳しく説明します。読者は、この記事を通じて GB28181 プロトコル デバイス側の開発における情報クエリとリアルタイム ビデオの重要な知識ポイントについて学びます。

1. 機器カタログの問い合わせ

デバイス ディレクトリのクエリは、GB28181 プロトコルの重要な機能です。デバイス ディレクトリをクエリすることで、現在のシステム内のすべてのデバイス情報を取得します。デバイス ディレクトリ クエリのシグナリング インタラクション プロセスは次のとおりです。

  1. デバイスは、クエリ要求シグナリング (クエリ カタログ) をデバイス管理プラットフォームに送信します。

  2. リクエストを受信したデバイス管理プラットフォームは、デバイスのカタログ情報(Catalog)をデバイスに返します。

デバイス ディレクトリのクエリを通じて、デバイス側はシステム内のすべてのデバイスの基本情報 (デバイス ID、名前、タイプなど) を取得できます。

GB28181 プラットフォーム -> デバイス側

MESSAGE sip:34020000001110000001@3402000000 SIP/2.0
From: <sip:34020000002000000001@3402000000>;tag=bccedfd000105
To: <sip:34020000001110000001@3402000000>
Content-Length: 127
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900105
Via: SIP/2.0/UDP 192.168.1.54:5060;wlsscid=377aa9afcf1b36f;branch=123133532300105
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70

<?xml version="1.0"?>
<Query>
<CmdType>Catalog</CmdType>
<SN>2</SN>
<DeviceID>34020000001110000001</DeviceID>
</Query>

デバイス側 -> GB28181 プラットフォーム

MESSAGE sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
From: <sip:34020000001110000001@3402000000>
To: <sip:[email protected]:5060>
Call-ID: [email protected]
CSeq: 3 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 558

<?xml version="1.0"?>
<Response>
<CmdType>Catalog</CmdType>
<SN>2</SN>
<DeviceID>34020000001110000001</DeviceID>
<SumNum>1</SumNum>
<DeviceList Num="1">
<Item>
<DeviceID>34020000001310000001</DeviceID>
<Name>34020000001110000001</Name>
<Manufacturer>HBStream</Manufacturer>
<Model>IP Camera</Model>
<Owner>Owner</Owner>
<CivilCode>CivilCode</CivilCode>
<Address>192.168.1.54</Address>
<Parental>0</Parental>
<ParentID>34020000001110000001</ParentID>
<RegisterWay>1</RegisterWay>
<Secrecy>0</Secrecy>
<Status>ON</Status>
</Item>
</DeviceList>
</Response>

2. 設備情報照会

デバイス情報照会により、デバイス側はデバイス ID を通じて特定のデバイスの詳細情報を照会できます。シグナリング相互作用のプロセスは次のとおりです。

  1. デバイスは、クエリ対象のデバイスの ID を含むクエリ要求シグナリング (Query Device) をデバイス管理プラットフォームに送信します。

  2. リクエストを受信した後、デバイス管理プラットフォームはデバイスの詳細 (デバイス情報) をデバイスに返します。

デバイス情報クエリにより、デバイス側は、デバイスのメーカー、モデル、ファームウェアのバージョンなど、特定のデバイスに関する詳細情報を取得できます。

GB28181 プラットフォーム -> デバイス側

MESSAGE sip:34020000001110000001@3402000000 SIP/2.0
From: <sip:34020000002000000001@3402000000>;tag=bccedfd000104
To: <sip:34020000001110000001@3402000000>
Content-Length: 134
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900104
Via: SIP/2.0/UDP 192.168.1.54:5060;wlsscid=377aa9afcf1b36f;branch=123133532300104
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70

<?xml version="1.0"?>
<Query>
<CmdType>DeviceInfo</CmdType>
<SN>17430</SN>
<DeviceID>34020000001110000001</DeviceID>
</Query>

デバイス側 -> GB28181 プラットフォーム

MESSAGE sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
From: <sip:34020000001110000001@3402000000>
To: <sip:[email protected]:5060>
Call-ID: [email protected]
CSeq: 2 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 308

<?xml version="1.0"?>
<Response>
<CmdType>DeviceInfo</CmdType>
<SN>17430</SN>
<DeviceID>34020000001110000001</DeviceID>
<DeviceName>HbsDevice</DeviceName>
<Result>OK</Result>
<Manufacturer>HBStream</Manufacturer>
</Response>

3. 設備状態問い合わせ

デバイスステータスクエリにより、デバイス側はデバイスのリアルタイムステータス情報を取得できます。シグナリング相互作用のプロセスは次のとおりです。

  1. デバイスは、クエリ対象のデバイスの ID を含むクエリ要求シグナリング (クエリ ステータス) をデバイス管理プラットフォームに送信します。

  2. リクエストを受信したデバイス管理プラットフォームは、デバイスの状態情報(Status Info)をデバイスに返します。

デバイス ステータス クエリでは、デバイスのオンライン ステータスやネットワーク接続ステータスなどの重要な情報を取得でき、デバイスの監視と管理に役立ちます。

GB28181 プラットフォーム -> デバイス側

MESSAGE sip:34020000001110000001@3402000000 SIP/2.0
From: <sip:34020000002000000001@3402000000>;tag=bccedfd000106
To: <sip:34020000001110000001@3402000000>
Content-Length: 134
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900106
Via: SIP/2.0/UDP 192.168.1.54:5060;wlsscid=377aa9afcf1b36f;branch=123133532300106
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70

<?xml version="1.0"?>
<Query>
<CmdType>DeviceStatus</CmdType>
<SN>248</SN>
<DeviceID>34020000001110000001</DeviceID>
</Query>

デバイス側 -> GB28181 プラットフォーム

MESSAGE sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
From: <sip:34020000001110000001@3402000000>
To: <sip:[email protected]:5060>
Call-ID: [email protected]
CSeq: 4 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 295

<?xml version="1.0"?>
<Response>
<CmdType>DeviceStatus</CmdType>
<SN>248</SN>
<DeviceID>34020000001110000001</DeviceID>
<Result>OK</Result>
<Online>ONLINE</Online>
<Status>OK</Status>
<Encode>ON</Encode>
<Record>OFF</Record>
<DeviceTime>2023-06-28T13:54:52</DeviceTime>
</Response>

4. リアルタイムビデオ

リアルタイム ビデオは、GB28181 プロトコルの中核機能の 1 つです。データ伝送プロトコルと伝送仕様要件は次のとおりです。

  1. データ伝送プロトコル:
    GB28181 プロトコルは、リアルタイム伝送プロトコル (RTP) とリアルタイム制御プロトコル (RTCP) という 2 つのデータ伝送プロトコルを指定します。RTP はリアルタイムのオーディオおよびビデオ データの送信を担当し、RTCP はデータ送信中のフィードバックの制御と情報の制御に使用されます。

  2. 伝送仕様要件:
    GB28181 プロトコルでは、リアルタイム ビデオの伝送に関していくつかの仕様要件が定められています。これには、ビデオのエンコード形式、解像度、フレーム レート、ビット レート、その他のパラメータの定義、およびデータ送信時の暗号化と圧縮の要件が含まれます。

リアルタイムビデオ機能により、デバイスはデバイスのカメラでキャプチャされた画像と音声データをリアルタイムで取得でき、リアルタイム監視と遠隔視聴を実現します。

以下は、完全なリアルタイム ビデオ シグナリング インタラクション プロセスです。

ここに画像の説明を挿入します

  1. GB28181 プラットフォームは、リアルタイム画像を表示する必要がある場合、ターゲット デバイスにリアルタイム ビデオ招待信号 (Invite) を送信します。

  2. 招待シグナリングを受信した後、ターゲット デバイスは確認応答シグナリング (200 OK) をデバイス管理プラットフォームに返します。

  3. 確認応答を受信した後、GB28181 プラットフォームは、リアルタイム ビデオ要求が成功したことを示す確認 ACK 応答シグナリングをデバイスに返します。

  4. デバイスは、ビデオおよびオーディオ データを伝送する RTP データ パケットを送信し、ネットワーク経由でターゲット デバイスに送信します。

  5. ターゲット デバイスは RTP パケットを受信し、ビデオ データとオーディオ データを解析して再生します。

  6. デバイスまたはターゲット デバイスのいずれかが終了シグナリング (Bye) を送信して、リアルタイム ビデオを終了します。

  7. 相手は終了シグナリングを受信した後、確認応答シグナリング(200 OK)を返します。

  8. 双方がメディア データの送信を停止します。

GB28181 プラットフォーム -> デバイス側、INVITE

INVITE sip:34020000001310000001@3402000000 SIP/2.0
Call-ID: helloVideo
CSeq: 1 INVITE
From: <sip:34020000002000000001@3402000000>;tag=bccedfd0111
To: <sip:34020000001110000001@3402000000>
Max-Forwards: 70
Contact: <sip:34020000001310000001@3402000000>
Via: SIP/2.0/UDP 192.168.1.54:5060;branch=z9hG4bKee5c5d98-bff9-4f3000109
Content-Type: application/sdp
Content-Length: 225

v=0
o=34020000001310000001 0 0 IN IP4 192.168.1.54
s=Play
c=IN IP4 192.168.1.54
t=0 0
m=video 6000 RTP/AVP 96 98 97
a=recvonly
a=rtpmap:96 PS/90000
a=rtpmap:98 H264/90000
a=rtpmap:97 MPEG4/90000
y=0100000001
f=

デバイス側 -> GB28181 プラットフォーム、200OK

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.54:5060;branch=z9hG4bKee5c5d98-bff9-4f3000109
From: <sip:34020000002000000001@3402000000>;tag=bccedfd0111
To: <sip:34020000001110000001@3402000000>;tag=2ea6bb3
Contact: <sip:34020000001110000001@3402000000>
Call-ID: helloVideo
CSeq: 1 INVITE
Max-Forwards: 70
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,REFER,UPDATE,INFO
Supported: timer
Session-Expires: 200;refresher=uac
Server: Happytime Agent Ver 1.0
Content-Type: application/sdp
Content-Length: 151

v=0
o=34020000001110000001 0 0 IN IP4 192.168.1.54
s=Play
c=IN IP4 192.168.1.54
t=0 0
m=video 19002 RTP/AVP 96
a=rtpmap:96 PS/90000
a=sendonly

GB28181 プラットフォーム -> デバイス側、ACK

ACK sip:34020000001310000001@3402000000 SIP/2.0
Call-ID: helloVideo
CSeq: 1 ACK
From: <sip:34020000002000000001@3402000000>;tag=bccedfd0111
To: <sip:34020000001110000001@3402000000>
Max-Forwards: 70
Via: SIP/2.0/UDP 192.168.1.54:5060;branch=z9hG4bKee5c5d98-00110
Content-Length: 0

さよなら

BYE sip:34020000001310000001@3402000000 SIP/2.0
From: <sip:34020000002000000001@3402000000>;tag=bccedfd0111
To: sip:34020000001110000001@3402000000;tag=2ea6bb3
CSeq: 2 BYE
Call-ID: helloVideo
Via: SIP/2.0/UDP 192.168.1.54:5060;branch=z9hG4bKee5c5d98-00111
Max-Forwards: 70
Content-Length: 0

作者のhbstream(http://haibindev.cnblogs.com)を追加してご協力ください、転載の際は作者と出典を明記してください。

おすすめ

転載: blog.csdn.net/haibindev/article/details/131498679