简介
LiveNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IPCamera、NVR等具有RTSP/Onvif协议输出的设备接入到LiveNVR,LiveNVR能够将这些设备源的音/视频数据进行采集、转换、输出,进行全平台终端直播(PC、Android、iOS、微信、H5),并且LiveNVR能够将视频源的直播数据对接到第三方CDN网络,实现安防设备互联网级别的直播分发。
功能
1. 通过RTSP协议接入摄像机
2. 支持Onvif协议,支持云台控制,焦距缩放
3. 全平台(web/Android/iOS/微信/H5)观看,支持RTMP、HLS协议
4. 支持CDN接入,直接在每一个通道配置填写独立的阿里云/腾讯云CDN的RTMP推流地址即可
5. 支持全网页配置管理
6. 支持用户管理,权限验证
7. 支持录像点播、录像计划、时间录像检索播放
硬件推荐配置
端口配置
LiveNVR配置web端口:10800(LiveNVR.ini中配置port)
nginx web端口:10800(nvrnginx/liveqing.conf中http listen配置)
nginx rtmp端口:10935(nvrnginx/liveqing.conf中rtmp listen配置)
使用
下载LiveNVR服务器版本,解压软件
Windows版本运行LiveNVR.exe可执行程序(关闭控制台按 Ctrl+C)
LiveNVR同样支持以服务方式运行,随机启动,运行Windows服务安装脚本即可:
Linux版本执行软件根目录脚本start.sh,停止软件执行stop.sh
注意:这里有个坑经常会遇到,就是不能使用中文路径,因为nginx不支持中文路径运行!!!
运行成功:
在浏览器中访问LiveNVR部署的机器地址,端口默认为10800(http://ip:10800),跳转到登陆页面,默认用户名/密码为admin/admin
登陆后进入主页,这时视频广场是空的,因为还没有进行通道配置
点击通道配置进入通道配置页,可以选择需要配置的通道右上角的设置按钮
弹出配置页,并输入接入摄像机的IP地址、端口、RTSP地址、用户名、密码、按需直播等选项,支持Onvif控制的可以填入Onvif地址,配置完成后点击确定。
如果摄像机接入RTSP地址选项中可以配置账号和密码的尽量在这个url里面配置好账号和密码,地址格式正确就可以正常访问。而在配置项里面给出的摄像机用户名和摄像机密码选项是为了兼容有些url里面不能带有用户名和密码。两个并不冲突。
各个摄像机/NVR厂家的RTSP规则不一样,我们列举几个常用的厂家的设备RTSP规则:
海康海康DS NVR播放URL规则
大华摄像机URL规则:
rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0
说明:
username: 用户名。例如admin。
password: 密码。例如admin。
ip: 为设备IP。例如 10.7.8.122。
port: 端口号默认为554,若为默认可不填写。
channel: 通道号,起始为1。例如通道2,则为channel=2。
subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。
例如,请求某设备的通道2的辅码流,Url如下
rtsp://admin:admin@10.12.4.84:554/cam/realmonitor?channel=2&subtype=1
可以使用VLC进行试播:
视频编码格式必须为H264
其中,需要特别提到“按需直播”选项,勾选按需直播选项就表示,有人通过LiveNVR观看的时候,LiveNVR才会向源端拉取直播音视频数据进行直播分发,没人看的时候,就会自动停止从设备拉流以节省网络资源,本选项默认为否,不按需直播的情况下,手机客户端、微信客户端会有一个比较好的体验;
LiveNVR支持Onvif发现以及探测,在配置时选择Onvif,勾选Onvif探测,点击探测IP输入框时,会出现发现的Onvif摄像机,选中要配置的摄像机
通过官方工具校验onvif是否探测出结果
我们可以通过“ONVIF Device Test Tool工具” 来自主排查探测不出结果是的原因否在于LiveNVR;
ONVIF Device Test Tool 使用;
1.打开该软件,选择本机的IP为192.168.1.130(自动显示),点击Discover Devices按钮后,将支持Onvif协议的同一个局域网内的前端设备搜索的地址搜索出来,显示在下方,右上方为获取的每个设备的相应信息。
2.选择其中一台设备测试,点击check按钮,读取响应的IPC信息,如下方所示。
3.点击Get按钮,可以读取IPC的视频流信息,见右边的大框里。
#####备注:如果该工具可以顺利完成上述步骤探测出结果,LiveNVR依然探测不出结果,请联系技术人员#####
输入Onvif登陆用户名密码,点击探测,会将探测到的摄像机参数填充进配置窗口
对于有音频需求的可以通过勾选“开启音频”来进行设置:默认没有音频,有需要,勾选上并保存配置即可
配置完成后,将需要启用的摄像机设置成启用(也可以通过配置页面来通道启用)
点击视频广场页面,刚才配置的摄像机就会出现在列表中
点击即可观看实时视频
如果是Onvif类型接入的摄像机,同时摄像机也支持云台控制,则可以在网页页面上进行云台控制、焦距缩放等调用:
为啥我的页面上没有这个控制按钮:因为在这个摄像机通道配置中,摄像机接入类型必须是 Onvif 类型,摄像机才能有控制功能,前端页面的按钮才会显示出来;
对于有录像需求的用户,4.0版本LiveNVR在之前版本录像的基础上进一步完善了录像功能,新增了录像计划功能。具体操作方式:
通道配置页面拥有录像开启和保存时间配置选项,根据自身计划选择对应录像时间
拥有便捷的录像查看界面
拥有时间轴和录像列表两种回看模式同时支持对应的录像文件下载
参数配置
本地配置页面用于配置LiveNVR运行参数,包括RTMP端口、快照时间间隔、播放页面是否需要用户权限验证等
注意:这里的配置尽量不要改动,例如RTMP端口,改动了LiveNVR还需要改动nginx目录中的conf/liveqing.conf配置文件,变动RTMP分发的端口才行
客户端观看
LiveNVR独立运行
通过端口映射方式,将LiveNVR服务对外需要的10800和10935两个端口通过路由器进行端口映射到公网,再通过公网地址进行访问就可以了;
高级配置(仅限开发运维人员使用)
注:本节描述内容仅限专业开发人员,请勿随意配置!
-
LiveNVR提供一套完备接口供开发者调用,接口文档查看方式:浏览器访问 IP:10800/apidoc;
-
通常情况下LiveNVR前端自动适配了PC Web采用了低延时的RTMP直播协议播放,其他平台采用的都是H5标准的HLS直播协议的,如果在PC上也需要采用纯H5无插件播放的方式,我们可以修改LiveNVR.ini中的flash_stream_type字段为 1 来限定直播协议为HLS:
flash_stream_type=0
授权方式
###试用版本###
该版本无需任何费用,可直接运行即可使用,如果授权剩余时间到期,www.liveqing.com 官网下载最新试用版本;
###硬件狗授权###
选择硬件狗授权:我们会提供一个插在USB接口上的一个小硬件,通过该硬件插在LiveNVR部署的机器上,该机器取得永久使用授权,硬件狗拔取,取消对该机器授权,适合私有内部网络使用;
###软件狗授权###
选择软件狗授权:
1.在我们提供的试用版LiveNVR页面中选择“版本信息”,
2.将该页面中的机器码信息发送至邮箱“support@liveqing.com”,申请永久授权激活码,
3.将申请到的激活码在“版本信息”页面进行提交,及可获得使用永久授权(重启LiveNVR生效)。
FAQ
1、LiveNVR的并发性能怎么样?
LiveNVR摄像机接入采用的是liveqing的底层框架,流媒体分发采用的是nginx,性能都是得到过行业巨头的认可,非常可靠!
2、LiveNVR如何做分组?
LiveNVR的功能定位就是为视频应用层输出视频设备接入/标准视频输出的能力平台层,只做基础的视频通道接入、视频通道输出,不做分组及分组权限功能,具体的应用业务权限划分,可以在客户的应用系统做自定义的定制,LiveNVR视频能力层只做视频的能力输出!
3、苹果手机上开始播放好慢,经常播放不成功?
由于HLS协议就是一种先切片-后播放的原则,也就是需要切片好大概3个ts文件的时候,苹果端播放器才开始进行播放动作,假设单个切片最小设置成2s,那么这个切片过程+下载过程的总时长将会大于6s,这就导致很多播放器等待时间过长,进而播放成功率不高,建议可以设置每一个摄像机通道的 “按需直播” 不勾选,这样就能保证通道一直在切片,播放起播也就很快了!
4、时常出现“FLASH:rtmpconnectfailure”问题,原因是什么?
出现的原因是rtmp流连接失败。
解决方法:看看访问的rtmp的端口(默认10935)是否映射出来;
软件包不要存放在中文文件夹路径下;
以及nvrnginx是否被一些保护软件隔离或者误杀。
5、集成视频流直播,几分钟就会出现中断问题
由于LiveNVR自身默认开启的是按需直播(有用户观看该路视频流才会拉取对应视频流进行直播),因此我们在视频播放过程中需要定期向服务端发送视频播放心跳,以此来保证服务端不间断拉流。在播放过程中30秒调用一次touchchannelstream接口,就可以保持视频流不间断直播(具体接口参数见接口文档)
6、关于集成直播页面
首先LiveNVR自身直播页面提供iframe集成相关代码,
其次我们也支持通过直接调用分享地址传递参数集成,传递对应参数获取对应功能iframe:是否以iframe形式嵌入,支持传递参数yes、no;
autoplay:是否开启自动直播,支持传递参数yes、no;
stretch:是否开启自动直播,支持传递参数yes、no;
aspect:播放器的比例,传递形式x:y,默认16:9
例: ip:port/play.html?channel=id&iframe=yes&aspect=4:3&autoplay=yes&stretch=yes
7、调用接口返回: 200 OK or 401 Unauthorized
{
"LiveQing" : {
"Body" : {
"Token" : "a19cb5f6e7d2449d8d24c8a0fc554ca7"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_LOGIN_ACK",
"Version" : "1.0"
}
}
}
- 操作: 登录,登陆后会返回token,以后调用接口需要在cookie中携带token信息“token=a19cb5f6e7d2449d8d24c8a0fc554ca7”
8、视频广场返回错误码
为方便查看信息,LiveNVR视频广场会将不在线的设备错误信息反馈出来。
常见返回错误码对应信息为:
返回的多为Socket错误码和rtsp错误码
RTSP错误码
401: 未被授权,密码错误
404: 未发现设备
Socket错误码
10057: socket没有连接到目标
11004: 请求的类型的名字或数据错误