一、背景
最近在做视频监控接口相关的开发,需要调用视频的接口获取直播地址,回放地址,然后集成到web里查看。
二、涉及的接口
1、获取卡口的id
2、通过卡口id获取通道(设备的id)
3、通过设备的id获取到直播地址
4、通过设备的id和时间范围获取回放视频文件
5、通过设备id和回放视频文件获取回放视频地址。
三、接口设计
1、获取卡口的id
响应报文
{"code": "00000000","success": true,"message": "success","data": [{"id": "352864153016221636","type": 1,"name": "测试5","parentId": null},{"id": "eeaa1649b325402ab968eed40934d437","type": 2,"name": "卡口1","parentId": "352864153016221696"},{"id": "2d3fb39f1e52424a4c2885f13b558dc9fb5c","type": 2,"name": "卡口2","parentId": "352864153016221696"},{"id": "2605311145094ffcad9717fa3c1d7bfd","type": 2,"name": "卡口3","parentId": "352864153016221696"},{"id": "1882a593fd104f55a40b35dc7083abfb","type": 2,"name": "卡口4","parentId": "352864153016221696"},{"id": "353113531698122752","type": 3,"name": "卡口5","parentId": "352864153016221696"},{"id": "353112424330567680","type": 3,"name": "卡口6","parentId": "1882a593fd104f55a40b35dc7083abfb"},{"id": "353112063356174336","type": 3,"name": "卡口7","parentId": "2605311145094ffcad9717fa3c1d7bfd"},{"id": "353111937258627072","type": 3,"name": "卡口8","parentId": "2605311145094ffcad9717fa3c1d7bfd"},{"id": "353111801455448064","type": 3,"name": "卡口9","parentId": "2d3fb39f1e52424a4c2885f13b558dc9fb5c"},{"id": "353111504343531520","type": 3,"name": "卡口10","parentId": "2d3fb39f1e52424a4c2885f13b558dc9fb5c"},{"id": "353111361863032832","type": 3,"name": "卡口11","parentId": "2d3fb39f1e52424a4c2885f13b558dc9fb5c"},{"id": "352889700026949632","type": 3,"name": "卡口12","parentId": "1882a593fd104f55a40b35dc7083abfb"}]
}
2、获取设备id
请求报文
{"devIds":["352889700026949632"]
}响应报文
{"code": "00000000","success": true,"message": "success","data": [{"kakouId": "352889700026949632","kakouName": "卡口1","deviceChannels": [{"name": "测试设备1通道ad","deviceChannelCode": "12221S2B69H4_0","onlineStatus": 1},{"name": "HD IPC test","deviceChannelCode": "12221S2B69H4_1","onlineStatus": 1}]}]
}
3、获取直播地址
{"deviceChannelCode":"12221S2B69H4_0"
}
响应报文
{"code": "00000000","success": true,"message": "success","data": "https://ip/live/10100075_1015007501000_12221S2B69H4_0_1.flv"
}
四、视频监控接入云服务
1、视频监控如何接入云服务器
视频监控在现代社会中起着非常重要的作用,然而,如何接入云服务器也是一个重要的问题。云服务器可以提供更好的数据存储和处理服务,同时还可以帮助监控系统实现远程管理和动态诊断。下面是一个流程,介绍如何将视频监控接入云服务器:
需要选择一款高质量的云服务器服务商,并创建一个云服务器。然后,为视频监控系统配置一个公网 IP,使其能够与云服务器进行通信。接下来,需要将监控系统的转码、传输和储存服务配置为与云服务器的端口一致,以实现视频数据的上传和下载。通过安装和配置远程监控软件,可以让用户在任何时间、任何地点轻松地查看视频监控数据。
2、云服务器调用本地摄像头
云服务器调用本地摄像头是一种越来越常见的应用场景,特别是在视频会议、远程监控、视频直播等领域。所谓云服务器,简单来说就是将服务器的各种资源整合在云上,方便用户进行操作和管理。而本地摄像头则是“离线设备”,不依赖于网络,需要通过云服务器才能够远程调用和管理。
如今,随着云计算和物联网技术的不断发展,云服务器调用本地摄像头已经成为了一种热门的技术应用。比如,在视频会议中,参与者无需在同一地点,只需通过云服务器进行连接,即可进行高效的视频交流。在远程监控方面,司机可以通过云服务器远程监控车内情况,而家长也可通过云服务器远程监控孩子的安全状况。另外,在视频直播中,云服务器也扮演着重要的角色,它可以将本地摄像头的视频流上传至云端,随时在线观看、分享。
3、视频监控服务器搭建
视频监控服务器是一种重要的安全设备,它可以记录和存储监控摄像头拍摄的视频,帮助公共场所、企业和个人保护财产安全和人员安全。搭建视频监控服务器需要以下步骤:
1.选择合适的硬件和操作系统。服务器硬件配置可以根据需求来确定,但是操作系统最好选择稳定、安全可靠的版本,如Windows Server或Linux。
2.安装视频监控软件。常用的视频监控软件有Blue Iris、iSpy、ZoneMinder等。根据软件的安装指南下载安装文件并进行安装。
3.配置监控摄像头。将监控摄像头连接到服务器,并根据软件的操作指南完成配置。
4.设置录像存储路径和时间间隔。可以设置录像保存路径和存储周期,以便后期检查和使用。
5.设置远程访问和告警功能。在需要时可以通过网络远程访问监控画面,同时可以设置告警功能,对异常情况进行警报提示。
视频监控服务器是一种非常实用和高效的安全设备,搭建过程要仔细操作,以确保其正常稳定运行。
6。视频接入云平台:
一般的视频监控设备都是在局域网或者专网里运行,但是有些时候我们需要把监控设备接入互联网,然后可以远程访问,存储,录像回放,甚至是做一些视频图像的智能分析。
通常的做法,监控设备厂家会提供专门的云平台,对应的手机app,电脑客户端。我们只需要把监控设备接入互联网,即可实现远程监控,录像回放和设备操作等功能。设备访问功能,一般使用P2P穿透的方式,视频流一般不会经过中间的云平台,云平台的花费不大。如果需要云存储,涉及的流量费和存储空间费用比较大,所以厂家一般提供免费的P2P访问,收费的云存储功能。
一些云计算,CDN存储公司提供第三方的视频监控接入云平台功能服务,觉得可以研究下。主要功能实现如下图:
首先是接入方式,不外乎两种,一种是推流,一种是拉流。所谓推流即监控端把视频流主动推送到云平台。常见的推流方式是RTMP,有些摄像机内置有RTMP服务(注意是RTMP服务,不是RTMP协议,支持RTMP服务的监控摄像机比较少见),在RTMP服务里配置对应的平台的推流信息,比如服务器地址(广域网的地址,静态IP或者域名),端口号,流ID等,即可把摄像机视频流推送到云平台。如果摄像机不支持RTMP服务,可以使用推流软件,比如OBS(Open Broadcaster Software)。OBS和摄像机运行在同一个局域网里,摄像机通过rtsp协议接入到OBS里,然后OBS推流到云平台。
还有一种推流接入方式是GB28181协议, GB28181是国内安防行业的行业标准协议,目前国内的安防设备大都能支持。GB28181的推流方法和原理和RTMP差不多,这里就不详细展开了。
而另一种接入方式拉流,顾名思义,即平台服务端主动去查找,发现前端监控设备,前提条件是前端监控设备需要在互联网里有唯一的地址(公网静态IP或者域名)。毫无疑问,在监控设备数量中众多时,这一条件很难满足,所以拉流的接入方式一般用于局域网监控接入,广域网中很少采用。安防行业里的ONVIF协议属于拉流的接入方式,即后端客户端,平台去查找发现前端设备,常用于局域网的网络环境里,广域网中很难采用ONVIF的接入方式,这也是ONVIF协议与 GB28181协议 在实际应用中的最大区别。
接入平台以后,可以进行视频分析处理,录像存储,回放调用等。也可以通过webRTC,FLV,HLS,rtsp,RTMP等方式对实时视频流进行分发和访问。