JAVA开发(JAVA视频监控接口相关)

 一、背景

最近在做视频监控接口相关的开发,需要调用视频的接口获取直播地址,回放地址,然后集成到web里查看。

JAVA开发(JAVA视频监控接口相关)_第1张图片

二、涉及的接口

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"
}

JAVA开发(JAVA视频监控接口相关)_第2张图片

四、视频监控接入云服务

1、视频监控如何接入云服务器

视频监控在现代社会中起着非常重要的作用,然而,如何接入云服务器也是一个重要的问题。云服务器可以提供更好的数据存储和处理服务,同时还可以帮助监控系统实现远程管理和动态诊断。下面是一个流程,介绍如何将视频监控接入云服务器:

需要选择一款高质量的云服务器服务商,并创建一个云服务器。然后,为视频监控系统配置一个公网 IP,使其能够与云服务器进行通信。接下来,需要将监控系统的转码、传输和储存服务配置为与云服务器的端口一致,以实现视频数据的上传和下载。通过安装和配置远程监控软件,可以让用户在任何时间、任何地点轻松地查看视频监控数据。

2、云服务器调用本地摄像头

云服务器调用本地摄像头是一种越来越常见的应用场景,特别是在视频会议、远程监控、视频直播等领域。所谓云服务器,简单来说就是将服务器的各种资源整合在云上,方便用户进行操作和管理。而本地摄像头则是“离线设备”,不依赖于网络,需要通过云服务器才能够远程调用和管理。

如今,随着云计算和物联网技术的不断发展,云服务器调用本地摄像头已经成为了一种热门的技术应用。比如,在视频会议中,参与者无需在同一地点,只需通过云服务器进行连接,即可进行高效的视频交流。在远程监控方面,司机可以通过云服务器远程监控车内情况,而家长也可通过云服务器远程监控孩子的安全状况。另外,在视频直播中,云服务器也扮演着重要的角色,它可以将本地摄像头的视频流上传至云端,随时在线观看、分享。

3、视频监控服务器搭建

视频监控服务器是一种重要的安全设备,它可以记录和存储监控摄像头拍摄的视频,帮助公共场所、企业和个人保护财产安全和人员安全。搭建视频监控服务器需要以下步骤:

1.选择合适的硬件和操作系统。服务器硬件配置可以根据需求来确定,但是操作系统最好选择稳定、安全可靠的版本,如Windows Server或Linux。

2.安装视频监控软件。常用的视频监控软件有Blue Iris、iSpy、ZoneMinder等。根据软件的安装指南下载安装文件并进行安装。

3.配置监控摄像头。将监控摄像头连接到服务器,并根据软件的操作指南完成配置。

4.设置录像存储路径和时间间隔。可以设置录像保存路径和存储周期,以便后期检查和使用。

5.设置远程访问和告警功能。在需要时可以通过网络远程访问监控画面,同时可以设置告警功能,对异常情况进行警报提示。

视频监控服务器是一种非常实用和高效的安全设备,搭建过程要仔细操作,以确保其正常稳定运行。

6。视频接入云平台:

一般的视频监控设备都是在局域网或者专网里运行,但是有些时候我们需要把监控设备接入互联网,然后可以远程访问,存储,录像回放,甚至是做一些视频图像的智能分析。

通常的做法,监控设备厂家会提供专门的云平台,对应的手机app,电脑客户端。我们只需要把监控设备接入互联网,即可实现远程监控,录像回放和设备操作等功能。设备访问功能,一般使用P2P穿透的方式,视频流一般不会经过中间的云平台,云平台的花费不大。如果需要云存储,涉及的流量费和存储空间费用比较大,所以厂家一般提供免费的P2P访问,收费的云存储功能。

一些云计算,CDN存储公司提供第三方的视频监控接入云平台功能服务,觉得可以研究下。主要功能实现如下图:

JAVA开发(JAVA视频监控接口相关)_第3张图片

首先是接入方式,不外乎两种,一种是推流,一种是拉流。所谓推流即监控端把视频流主动推送到云平台。常见的推流方式是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等方式对实时视频流进行分发和访问。

 

 

你可能感兴趣的:(java,音视频)