转发同事搞GB28181协议的经历
Posted riky_car
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转发同事搞GB28181协议的经历相关的知识,希望对你有一定的参考价值。
2017年刚参加工作,项目中就用到了摄像头。内网用rtsp拉流可以通,外网行不通,当时一直研究怎么穿透网络,最后根据客户的情况,选择了比较麻烦的一种方案:
客户门店使用电信宽带拨号上网,路由器绑定在锐捷平台。在路由器上做好端口映射(映射NVR的web访问端口)。
需要观看的时候,登陆锐捷的平台得到路由器的外网地址,再访问NVR。
当然这样做弊端很多:
穿透率低,拨号上网不一定能分配到公网ip,很有可能还是内网的ip。即使分配到了公网ip,很多宽带都屏蔽了端口(NAT限制)。即使用花生壳等穿透工具,宽带的问题穿透不了的还是穿透不了,还是需要服务器来转发实现穿透。
速度慢。
自此以后,脑海里一直有个问题,摄像头怎么才能友好的出内网?
2018年,新公司,新项目当中又用到了摄像头,出外网的问题随之而来。不同于之前,这次摄像头是用在室外,通过4G卡上网。领导也提出了一些方案,最后也都是无疾而终,搁置不前。
在开发部标JT1078流媒体服务时,发现终端通过TCP连接上Server,Server可以通过TCP通道给终端下发推流命令,终端再向服务器推流。我艹,瞬间感觉这种方式多方便、多友好啊。随之即想到,难道之前的安防摄像头不能通过这样方式推流吗?是摄像头厂商发展太慢,还是我太菜了?拿起了海康的摄像头,又是一阵研究,结果显然是我太菜了。原来有GB28181协议啊,完美解决出外网的问题。后面也基于GB28181实现了流媒体平台,解决了这一大憾事。后面也将带来几篇文章讲解GB28181的文章(基于Java)。随着对国标的研究发现,安防监控解决方案大致分两种:
1. 本地架设服务器方案
此方案相对来说自由很多,rtsp直接拉流/onvif/gb28181以及各种私有协议,如果有静态IP外网可直接访问。但是很少直接访问摄像头,一般都通过平台集中管理摄像头,同时对外提供服务。
如果没静态ip,还需要本地服务器和公网服务器自定义协议,实现流媒体转发。
2. 国标方案
在终端设置绑定到服务器,终端上电联网后,向服务器注册,发送心跳维持通道,以及各种交互信令。需要观看监控时,server给摄像头下发信令,摄像头推流。
除此之外,各个厂家都有自己的私有协议,例如海康的萤石云,ehome。萤石云是p2p穿透方案,按流量收费,现在4G基本穿透不了(对称型NAT)。有的p2p摄像头自带wifi热点,不知道是不是以此 来增加穿透几率,但是4G的Nat那层还是穿透不了啊,有空再研究。ehome协议,看了下服务器抓包数据和文档,出外网应该也没有问题,有兴趣的朋友可以研究下。
————————————————
版权声明:本文为CSDN博主「sinat_35938012」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_35938012/article/details/104748551
有关car-eye 的开源资源下载地址:https://github.com/Car-eye-team
以上是关于转发同事搞GB28181协议的经历的主要内容,如果未能解决你的问题,请参考以下文章