国标GB28181协议客户端开发(三)查询和实时视频画面

本文涉及的产品
数据传输服务 DTS,同步至DuckDB 3个月
简介: 国标GB28181协议客户端开发(三)查询和实时视频画面

国标GB28181协议客户端开发(三)查询和实时视频画面

本文是《国标GB28181协议设备端开发》系列的第三篇,探讨了信息查询和实时视频在GB28181协议中的应用。首先,介绍了设备目录查询、设备信息查询和设备状态查询三个重要的信息查询功能,并详细解释了它们在协议中的信令交互流程。随后,深入讨论了实时视频的实现方式,包括数据传输协议和传输规范要求。读者将通过本文了解到GB28181协议设备端开发中信息查询和实时视频的关键知识点。

一、设备目录查询

设备目录查询是GB28181协议中的一项重要功能。其通过查询设备目录,获取到当前系统中的所有设备信息。设备目录查询的信令交互流程如下:

  1. 设备端发送查询请求信令(Query Catalog)到设备管理平台;
  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:34020000002000000001@192.168.1.54:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
From: <sip:34020000001110000001@3402000000>
To: <sip:34020000002000000001@192.168.1.54:5060>
Call-ID: 000072AE00002CD6@192.168.1.54
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>

二、设备信息查询

设备信息查询允许设备端通过设备ID查询特定设备的详细信息。其信令交互流程如下:

  1. 设备端发送查询请求信令(Query Device)到设备管理平台,携带要查询设备的ID;
  2. 设备管理平台接收到请求后,返回设备详细信息(Device Info)给设备端。

设备信息查询使设备端能够获取到特定设备的更多信息,如设备的制造商、型号、固件版本等。

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:34020000002000000001@192.168.1.54:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
From: <sip:34020000001110000001@3402000000>
To: <sip:34020000002000000001@192.168.1.54:5060>
Call-ID: 00003D6C00004AE1@192.168.1.54
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>

三、设备状态查询

设备状态查询允许设备端获取设备的实时状态信息。其信令交互流程如下:

  1. 设备端发送查询请求信令(Query Status)到设备管理平台,携带要查询设备的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:34020000002000000001@192.168.1.54:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.54:54193;branch=z9hG4bK649bcb2c
From: <sip:34020000001110000001@3402000000>
To: <sip:34020000002000000001@192.168.1.54:5060>
Call-ID: 00005F9000006952@192.168.1.54
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>

四、实时视频

实时视频是GB28181协议中最核心的功能之一。其数据传输协议和传输规范要求如下:

  1. 数据传输协议:
    GB28181协议规定了两种数据传输协议,分别是实时传输协议(RTP)和实时控制协议(RTCP)。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

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
相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
存储 开发者
国标GB28181协议客户端开发(二)程序架构和注册
国标GB28181协议客户端开发(二)程序架构和注册
1564 0
|
存储 编解码 算法
深度探索:使用FFmpeg实现视频Logo的添加与移除(二)
深度探索:使用FFmpeg实现视频Logo的添加与移除
815 0
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
1488 80
|
10月前
|
Ubuntu 开发工具
Ubuntu 22.04 aarch64版本操作系统下编译ZLMediaKit教程
通过上述步骤,你可以在Ubuntu 22.04 aarch64版本上成功编译ZLMediaKit,这是一个相对简单而直接的过程,但可能会遇到一些需要根据具体系统环境和要求调整的地方。
1187 0
|
JSON Java 定位技术
【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)
【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)
6389 2
|
存储 前端开发 Android开发
GB28181设备接入侧录像查询和录像下载技术探究之实时录像
我们在对接GB28181设备接入侧的时候,除了常规实时音视频按需上传外,还有个重要的功能,就是本地实时录像,录像后的数据,在执法记录仪等前端设备留底,然后,到工作站拷贝到专门的平台。
485 1
|
Ubuntu Linux 数据安全/隐私保护
使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用
本文介绍了在Linux系统(Ubuntu 18.04)下将Python源代码(`.py文件`)加密为`.so文件`的方法。首先安装必要的工具如`python3-dev`、`gcc`和`Cython`。然后通过`setup.py`脚本使用Cython将`.py文件`转化为`.so文件`,从而实现源代码的加密保护。文中详细描述了从编写源代码到生成及调用`.so文件`的具体步骤。此方法相较于转化为`.pyc文件`提供了更高的安全性。
2408 2
|
应用服务中间件 Shell 网络安全
nginx安装提示 libssl.so.3: cannot open shared object file: No
【8月更文挑战第1天】### 原因 未将安装的ssl中的`libssl.so.3`链接到`/usr/lib`导致缺失。 ### 解决方案 1. 检查openssl是否已安装,若为低版本则需重装。 ```sh whereis openssl
7415 6
|
编解码 监控 API
惊艳登场!揭秘如何在Android平台上轻松玩转GB28181标准,实现多视频通道接入的超实用指南!
【8月更文挑战第14天】GB28181是公共安全视频监控联网的技术标准。本文介绍如何在Android平台上实现该标准下的多视频通道接入。首先准备开发环境,接着引入GB28181 SDK依赖并初始化SDK。实现设备注册与登录后,通过指定不同通道号请求多路视频流。最后,处理接收到的数据并显示给用户。此过程涉及视频解码,需确保应用稳定及良好的用户体验。
731 0

热门文章

最新文章