一、项目需求
每台豆二的方仓部署摄像头,通过远端部署easynvr服务,云平台部署easynvs来实现所有方仓的集中监控直播
要求摄像头支持ONVIF和RTSP协议
如果设备是各种厂家都有,而且不固定,建议采用的是RTSP这种国际标准的取流方式
@注: IPC 网络摄像机
EasyNVR介绍
EasyNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发。
EasyNVS介绍
EasyNVS云管理平台是一套专门用于集中化管理EasyNVR 的解决方案. EasyNVR 采用主动注册的方式接入到 EasyNVS, 再由 EasyNVS 云管理平台进行统一的视频能力输出, 并配套提供一整套的云端设备可视化运维功能, 方便于用户进行云端的视频大数据处理
二、EasyNVR
1.EasyNVR的优点
RTSP视频流到RTMP/HLS的转码,并提供了一套api和一个可视化管理平台来便于调用。同时支持ONVIF协议进行云台控制
用easyNVR必须要有RTSP协议的支持!想通过云台控制必须有ONVIF的支持!
EasyNVR的部署很方便,无论是windows还是linux,非常绿色,解压完后直接运行就可以,根目录下的easynvr.ini也提供了非常清晰的配置项。
2.EasyNVR的缺点
- 价格略贵,不开源,目前永久使用版本需要经过授权才能商业使用
- 网上的相关技术支持文档不全面
3. EasyNVR要面临的问题
- 成本问题:在无固定公网IP的监控现场,当需要将NVR接入到公网进行直播的时候,必须在监控现场安装部署EasyNVR,由EasyNVR进行音视频数据的桥接,对接到公网进行各种直播、录像、检索与回放操作,但是这样,会增加接入成本,每一个现场都需要增加一台设备;
- 条件限制:由于很多现场是比较偏远的、或者临时的,这些情况下的IPC可能都是采用4G或者其他简单的方式搭建的,无法再承载一台EasyNVR云终端进行对接转发,只能由IPC自己对接到平台;
- 接入通用性:当我们需要从现场的各种IPC、NVR取录像的时候,如果涉及到各种厂家,而且各种不同的版本,我们无法通过各个厂家的SDK一个一个接入,这样开发成本和稳定的周期会很长,而且一旦涉及SDK直接对接设备,不可避免可能就会需要EasyNVR云终端部署在现场的情况,所以,如果有条件,IPC/NVR直接将录像数据对接到平台端是最合适的方案。
- 中断问题:集成视频流直播,几分钟就会出现中断问题,由于EasyNVR自身默认开启的是按需直播(有用户观看该路视频流才会拉取对应视频流进行直播),因此我们在视频播放过程中需要定期向服务端发送视频播放心跳,以此来保证服务端不间断拉流。在播放过程中30秒调用一次touchchannelstream接口,就可以保持视频流不间断直播(具体接口参数见接口文档)
4. EasyNVR无法解决的方案
- 国标GB28181协议采用的是主动注册的方式对接到平台,海康、大华、宇视的设备都共有的属性就是国标GB/T28181;
- 主动注册的方式完美地解决了设备网络无固定IP的问题,只要平台地址固定,设备就可以找到平台,并对接进来;
- 国标GB28181完整定义了整个安防过程需要的直播、录像、云台控制、报警等全部过程,那么也就是说,这些过程咱们无需再一个厂家一个厂家地对接SDK了,直接按照一套协议进行开发平台,就可以接入所有厂家的设备了;
- EasyGBS国标流媒体解决方案是由EasyDSS团队研发的一款专门用于接入国标设备的视频解决方案,不但从设备接入层面上,完整地接入了内网或者公网的国标设备,而且在输出层面上,完全采用了最新的互联网思维方式,国标IPC/NVR能通过平台同步输出RTMP/HLS/HTTP-FLV多种视频流格式,非常好地解决了传统安防与互联网之间的衔接。
5. EasyNVR主要功能
包括通过RTSP协议接入摄像机、支持Onvif协议,支持云台控制;焦距缩放、全平台(web/Android/iOS/微信/H5)观看;支持RTMP、HLS、http-flv协议、支持CDN接入;直接在每一个通道配置填写独立的阿里云/腾讯云CDN的RTMP推流地址即可;支持全网页配置管理;支持用户管理,权限验证;支持录像点播、录像计划、时间录像检索播放。且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发</font>
6. EasyNVR错误码解释
RTSP错误码
401: 未被授权,密码错误
404: 未发现设备
Socket错误码
10057: socket没有连接到目标
11004: 请求的类型的名字或数据错误
三、EasyNVS
1. EasyNVS的优点
- 主动注册:每个EasyNVR现场无需固定IP,即可实现公网对所有设备的综合管理
- 统一接口:统一管理、统一输出,屏蔽各种类型的设备,各种网络条件的因素导致的接入问题
- 云端复用:云端分发、H5快速起播,解决EasyNVR现场带宽有限、HLS类起播较慢的问题
2. EasyNVR失控
- 监控现场增加或者减少一个直播摄像头,或者有摄像头无法直播需要排查问题,我们都需要安排人员去现场进行运维支撑,还有一种情况,可能运营者需要定期做各个IPC设备的巡检,统计设备在线率和故障率,应该如何能够快速达到我们想要的结果。
3.为什么用EasyNVS管理平台
先从EasyNVR智能云终端(以前称之为EasyNVR无插件直播服务器、EasyNVR流媒体服务器等)的应用场景说起,在使用EasyNVR接入监控现场的IPC网络摄像机或者NVR网络硬盘录像机。
如果想要做公网的观看和直播会遇到几个需求痛点问题:
- IPC和NVR所在的现场是有公网固定IP的,将EasyNVR部署在云端直接可以通过公网RTSP地址是可以直接接入摄像机的,但是对大部分企业来说,固定IP的这个成本太高了,不值得。
- 规模较小,如果是一两个EasyNVR直播现场需要固定IP,成本还算基本可控;但是一旦现场较多,带宽成本和管理成本就会较高,如果能够 现场无需固定IP + 云端直接配置管理和直播,那对于系统的管理者来说,将会省去很多运营成本和运维成本。
- 对于开发者这一面,当企业部署超过多套的EasyNVR时,EasyNVR作为能力平台被开发者调用接入时,多个现场的EasyNVR信息归档、接口调用、视频能力调用,开发者都要自行维护现场列表、设备列表数据库,这将会增加开发者的开发周期和难度,如果能够将多个现场的EasyNVR都统一到一套EasyNVS管理平台来进行能力输出,对于开发者集成,也将是一道福音。
- 比较于云端带宽资源,非固定IP和固定IP的带宽,上行输出带宽都太少了,完全不能够满足安防互联网化直播的多路分发需求,如果有一个平台,能够做到现场EasyNVR一个通道的直播流只需要一路上行,即可在云端进行多客户端的复用,充分利用云端的带宽能力做视频分发,那将会是对安防设备互联网化直播能力的一次巨大提升。
4. EasyNVS管理平台使用方式
- EasyNVS管理平台就是专门用来跟EasyNVR智能云终端做配合的;
- EasyNVR能通过主动注册的方式注册到EasyNVS管理平台,屏蔽了各种网络环境问题,无论是有线、WIFI、4G、专网,只要有通道口子能让EasyNVR访问到EasyNVS管理平台,即可实现平台对接;
- EasyNVS管理平台能获取到EasyNVR的所有能力,并进行互联网化输出,同时进行统一化的管理和接口输出;
- EasyNVS管理平台自带流媒体分发功能,同一个EasyNVR设备的同一个通道流,只需要一路流上行到EasyNVS即可在EasyNVS管理平台端进行多路分发;
- EasyNVS管理平台带有在线统计和分析功能,能实时输出EasyNVS所有接入的EasyNVR设备、通道的在线率,流量占用以及硬件使用等综合信息!
有了EasyNVS,可以通过一套平台在云端就能进行一站式的集中管控,极大地节省了运维的成本!
四、部署安装
-
硬件推荐配置
1. EasyNVR
下载安装包并解压
cd /server/tools/
wget https://easynvr-1257312146.cos.ap-shanghai.myqcloud.com/EasyNVR/EasyNVR-linux-3.3.5-1910280228.tar.gz
tar xf EasyNVR-linux-3.3.5-1910280228.tar.gz -C /opt/EasyNVR
端口配置
EasyNVR配置web端口:10810(easynvr.ini中配置port)
nginx web端口:10800(nvrnginx/easydss.conf中http listen配置)
nginx rtmp端口:10935(nvrnginx/easydss.conf中rtmp listen配置)
[root@nvr opt]# cat EasyNVR/easynvr.ini
[base_config]
port=10810 #NVR web端口
; token 超时时间(秒)
token_timeout=604800
; 直播页面鉴权, 即是否要求登录后观看视频(0-关闭, 1-开启)
live_streaming_auth=0
; 接口返回流地址类型(0-RTMP优先输出, 1-强制HLS输出)
flash_stream_type=0
; 快照抓取时钟周期(分)
channel_snap_interval=1
; 快照抓取超时时间(秒)
channel_snap_timeout=10
; 通道重连时钟周期(秒)
channel_connect_interval=30
; 通道列表内部遍历时钟周期(秒)
channel_loop_interval=10
; 播放保活超时时间(秒)
channel_touch_timeout=60
; ONVIF 发现内部时钟周期(秒)
onvif_discover_interval=30
; 通道启动间隔时间(毫秒)
channel_delay_ms=100
; 清理录像时钟周期(秒)
channel_clean_record_interval=60
; 是否需要接口鉴权(0-关闭, 1-开启)
api_auth=1
; 是否需要开启智能分析(0-关闭, 1-开启)
ai_filter=0
; 直播鉴权第三方回调地址, HTTP GET
; 请求参数: 除透传流地址参数外, 固定参数: app, call, name
; 响应: 200 - 鉴权通过, 其它 - 鉴权不通过
; 比如: http://demo.easynvr.com:10800/api/v1/check/stream/auth
stream_auth_url=
[https]
; 可选配置开启 HTTPS 服务
port=
ssl_cert_file=
ssl_key_file=
[root@nvr EasyNVR]# cat nginx/conf/easydss.conf |grep listen
listen 10935; #rtmp
listen 10800; #web
使用软件
执行软件根目录下的脚本 start.sh 停止软件执行stop.sh
访问EasyNVR
端口默认为10810(http://ip:10810)
api接口文档:http://ip:10810/apidoc
默认用户名/密码为 easynvr/easynvr
进行通道设置连接摄像头
输入接入摄像机的IP地址、端口、RTSP地址、用户名、密码、按需直播等选项,支持Onvif控
制的可以填入Onvif地址,配置完成后点击确定。
如果摄像机接入RTSP地址选项中可以配置账号和密码的尽量在这个url里面配置好账号和密码,地址格式正确
就可以正常访问。而在配置项里面给出的摄像机用户名和摄像机密码选项是为了兼容有些url里面不能带有用户名和密码。两个并不冲突。
RTSP协议规则配置
各个摄像机/NVR厂家的RTSP规则不一样,我们列举几个常用的厂家的设备RTSP规则:
TP-Link摄像头:rtsp://username:password@ip:port/stream1(2)
@注:stream1是主码流 stream是子码流
探测ONVIF IP
录像保留设置
通道配置设置完成
视频广场查看
手机APP的EasyNVR进行观看
2. EasyNVS(云上)
下载安装包
cd /server/tools/
wget https://easynvr-1257312146.cos.ap-shanghai.myqcloud.com/EasyNVS/EasyNVS-linux-2.0.0-1907011734.tar.gz
端口使用
TCP 端口 : 10811(HTTP), 10812(接入认证端口)
[root@lcx-01 EasyNVS]# vim easynvs.ini
[http]
port=10811
; token 超时时间(秒)
token_timeout=604800
[https]
; 可选配置开启 HTTPS 服务
port=
ssl_cert_file=
ssl_key_file=
[nvs]
port=10812
; 设备统一接入密码
device_password=<passwd>
执行软件根目录下的脚本 start.sh 停止软件执行stop.sh
进行访问:
web页面:http://ip:10811
api接口:http://ip:10811/apidoc
账号密码默认admin/admin
配置 EasyNVR 接入
接入成功后, 即可在 EasyNVS 主界面设备下拉列表中看到接入的 EasyNVR
五、ONVIF Device Test Tool测试工具
ONVIF Device Test Tool测试工具使用方法