随笔 - 936  文章 - 0  评论 - 3  阅读 - 30万

国标流媒体服务器GB28181协议和海康设备的交互过程记录

国标GB28181协议从2016年更新后,变得比之前更火了,到今年已经4年了,国标视频流媒体服务器基础的功能都已经发展起来,而更深层次的功能还需要进一步的研发。

在日常运用中,海康的摄像头运用较为广泛,本文我准备跟大家分享一下GB28181协议和海康设备交互过程记录。

1、发送消息的时候要注意头部的 from/to字段中的数据,这标志数据到底是从设备来的还是从平台到设备的;

2、想要NVR服务器返回消息的话,需要让NVR作为客户端,开启NVR的 GB28181平台接入功能,然后服务器填写GBS服务的IP地址,然后NVR会自动发送注册信息给服务,注册成功之后,就可以正常的查询NVR的设备目录等其它信息;下图是海康设备界面

3、当需要查询录像文件信息的时候,需要使用要查询的摄像头的ID号来查询,不能使用 NVR的ID号来查询,否则NVR会一直回应 400错误的请求;

4、发送给 NVR的获取录像文件的 invite邀请,invite中的 SDP信息中必须含有 u字段,u字段说明要获取的是哪个摄像头的录像文件;

5、发送Bye消息给 NVR或者摄像机都回复 481 Call Leg/Transaction Does Not Exist,一直以为发送的 DeviceID不对,各种查找原因,最后仔细看了一下,发现应该是说 Transaction这个事物不存在导致的,而一个事物的标记是由 Call-id、local tag、remote tag三者值相同代表一个 dialog,所以发送 Bye消息的时候,这三个值一定要和发送 Invite消息的时候一致,否则 NVR或者IPC就会返回 481告知没有这个对话;

6、NVR发送的Keepalive状态信息报送消息,回复"200 OK"即可;

7、当客户端第一次接入时,客户端将持续向GBS Server端发送register消息,直到GBS Server端回复"200 OK"后结束;

8、查询NVR上的摄像头信息 要填写NVR ID,要获取某个摄像头上的录像信息的时候,需要填写摄像头所在通道号的ID。

posted on   EasyGBS  阅读(2174)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示