使用GB28181从海康NVR设备上获取实时视频

本人现在已经不做音视频方向了,所以大家的一些疑问可能无法解答,相关资料基本都在下载链接中,希望可以帮助到大家。

 

正文:

最近在调研使用GB28181协议获取海康NVR设备上的实时视音频数据,真的是搞了好久才弄好。

这在里记录一下调研过程中遇到的问题。要想获取海康NVR上绑定摄像头的实时音视频流,需要将海康NVR开启接入服务,SIP服务器的地址填写我们程序的地址信息,ID号随便搞一个,启用这个服务之后,NVR会不断的向填写的地址发送 Register消息,我们的程序接收注册消息即可,直接回复200OK也可以。

 

 

然后NVR注册成功之后。我们就可以给NVR发送查询或者获取实时视音频/录像文件的请求了。这些在GB28181标准文档里面都有。查询NVR上绑定了那些摄像头使用的是Message消息,获取音视频数据使用的是 Invite命令。和NVR之间传输音视频数据使用的是rtp协议。

下面说一下和NVR交互过程中需要注意的地方:

 

1.发送消息的时候要注意 头部的 from/to字段中的数据
2.想要NVR服务器返回消息的话,需要让NVR作为客户端,开启NVR的 GB28181平台接入功能,然后服务器填写自己本机的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状态信息报送消息,回复200ok即可
7.当客户端第一次接入时,客户端将持续向Server端发送REGISTER消息,直到Server端回复"200 OK"后结束
8.查询NVR上的摄像头信息 要填写NVR ID,要获取某个摄像头上的录像信息的时候,需要填写摄像头所在通道号的ID。
 
 
最后是遇到问题可以多看一下GB28181的标准文档,那些字段填写什么里面基本都有说明。
 
GB28181标准文档下载地址:http://download.csdn.net/detail/lt_lover/9742585
GB28181调研ppt下载地址:http://download.csdn.net/detail/lt_lover/9742586
调研ppt csdn积分过高,可以百度云链接直接下载:https://pan.baidu.com/s/11pt0kw3_udlHr1--zb2f-g  密码:pyso

 

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值