惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
小众软件
小众软件
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
博客园_首页
T
Tailwind CSS Blog
The Cloudflare Blog
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
腾讯CDC
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - 海滨code

别让AI再从零写一堆优美的屎山了 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 受够了Vibe Coding的失控?换个起点,让AI事半功倍 写了10年代码的人,在AI编程时代反而最值钱 我让 Claude 和 Codex 同时审计 26 个模块,它们只在 10 个上达成共识 把近5万个源文件喂给AI之前,我先做了一件事 浏览器自动化六大技术路线深度对比:从模拟点击到 Chrome 扩展注入 在 Windows+WSL2 上部署 OpenClaw AI员工的实践与踩坑 为什么 90% 的 AI 开发项目都死在了“提示词工程”的幻觉里? 一文讲清楚OpenClaw是什么,以及Windows下的部署 国内AI编程IDE对比(三)Skill生成能力测试 Codex 5.3 与 Opus 4.6 同日升级,AI Agent今年要爆发了 Google正式上线Gemini In Chrome,国内环境怎样开启。 国内四大AI编程IDE对比(二):从零构建桌面应用实测(补上Trae,幸亏补上了) 国内AI编程IDE对比(二):从零构建桌面应用实测 社交的“诺曼底登陆”:深度解析腾讯元宝“元宝派”的技术逻辑与场景重构 国内四大AI编程IDE对比(一):直观印象与模型能力 【终极踩坑指南】Windows 10上MsQuic证书加载失败?坑不在证书,而在Schannel! 国标GB28181协议客户端开发(四)实时视频数据传输 国标GB28181协议客户端开发(二)程序架构和注册
国标GB28181协议客户端开发(三)查询和实时视频画面
海滨code · 2023-07-01 · via 博客园 - 海滨code

国标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

合作请加WX:hbstream
合作请加作者hbstream(http://haibindev.cnblogs.com),转载请注明作者和出处