国标GB28181协议从更新后,变得比之前更火了,到今年已经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。