LiveNVR Onvif/RTSP流媒体服务使用说明书

简介

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. 支持录像点播、录像计划、时间录像检索播放

8. 支持分屏展示

使用的端口

默认WEB端口:10800 (TCP)
默认RTMP端口:10935 (TCP)

说明

其他网络访问需开放上面两个端口

端口可以根据需要在 livenvr.ini 中配置修改

[base_config] -> port=10800

[base_config] -> rtmp_port=10935

使用

下载安装

下载LiveNVR服务器版本,解压软件

注意:不能解压到有中文目录的路径中

启动 | 停止服务

  • Windows

说明

第一种方式启动后停止:选中窗口 Ctrl+C

第二种方式启动后停止: windows服务中停止

  • Linux
#解压目录下执行
#启动:
./start.sh
#停止:
./stop.sh

登录服务

在浏览器中访问LiveNVR部署的机器地址,端口默认为10800(http://ip:10800),跳转到登陆页面,默认用户名/密码为admin/admin

登陆后进入主页,这时视频广场是空的,因为还没有进行通道配置

通道配置

点击通道配置进入通道配置页,可以选择需要配置的通道右上角的设置按钮

弹出配置页,并输入接入摄像机的IP地址、端口、RTSP地址、用户名、密码、按需直播等选项,支持Onvif控制的可以填入Onvif地址,配置完成后点击确定。

如果摄像机接入RTSP地址选项中可以配置账号和密码的尽量在这个url里面配置好账号和密码,地址格式正确就可以正常访问。而在配置项里面给出的摄像机用户名和摄像机密码选项是为了兼容有些url里面不能带有用户名和密码。两个并不冲突。

在RTSP协议上,由于各个厂家都有不同的处理方法,比如:海康、大华、雄迈、宇视、天地伟业等厂家的RTSP地址规则有所区别。

RTSP配置规则

大华产品 rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0

  • username: 用户名
  • password: 密码
  • ip: 为设备IP
  • port: 端口号默认为554,默认554时可不填写
  • channel: 通道号,起始为1。例如通道2,则为channel=2
  • subtype: 码流类型,主码流(subtype=0),辅码流(subtype=1)

示例: rtsp://admin:admin@127.0.0.1:554/camera/monitor?channel=1&subtype=1

海康-预览取流-旧版规则(2012年之前的设备只持旧版规则) rtsp://<username>:<password>@<ipaddress>:<port>/<videotype>/ch<id>/<streamtype>/av_stream

  • username: 用户名
  • password: 密码
  • ipaddress: 设备IP
  • port: 端口号默认为554,默认可不填写
  • videotype:视频编码格式,如:h264、mpeg4
  • ch: 通道号,起始为1。例如通道1,则为ch1
  • streamtype: 码流类型,主码流(main),辅码流(sub)

示例: rtsp://admin:admin@127.0.0.1:554/h264/ch1/main/av_stream 示例: rtsp://admin:admin@127.0.0.1:554/mpeg4/ch2/sub/av_stream

海康-预览取流-新版规则 rtsp://<username>:<password>@<ipaddress>:<port>/Streaming/Channels/<id>(?parm1=value1&parm2=value2)

  • username: 用户名
  • password: 密码
  • ipaddress: 设备IP
  • port: 端口号默认为554,默认可不填写
  • id:通道号+0+码流类型 码流类型:1-主码流、2-子码流、3-第三码流;如 1202 表示第12通道子码流
  • parms 其他入参 如 transportmode=unicast (默认单播)transportmode=multicast (多播)

示例:rtsp://admin:admin@127.0.0.1:554/Streaming/Channels/101

海康-回放取流 rtsp://<username>:<password>@<ipaddress>:<port>/Streaming/tracks/<id>(?parm1=value1&parm2=value2)

  • username: 用户名
  • password: 密码
  • ipaddress: 设备IP
  • port: 端口号默认为554,默认可不填写
  • id:通道号+0+码流类型 码流类型:1-主码流、2-子码流、3-第三码流;如 1202 表示第12通道子码流
  • parms 其他入参 如 starttime=20131013t093812z&endtime=20131013t104816z ;具体格式是YYYYMMDD”T”HHmmSS.fraction”Z”,Y是年,M是月,D是日,T是时间分格符,H是小时,M是分,S是秒,Z是可选的、表示Zulu(GMT) 时间

示例:rtsp://admin:admin@127.0.0.1:554/Streaming/tracks/101?starttime=20180902t123812z&endtime=20180902t124816z

可以使用VLC进行试播:

视频编码格式必须为H264

按需直播

其中,需要特别提到“按需直播”选项,勾选按需直播选项就表示,有人通过LiveNVR观看的时候,LiveNVR才会向源端拉取直播音视频数据进行直播分发,没人看的时候,就会自动停止从设备拉流以节省网络资源,本选项默认为否,不按需直播的情况下,手机客户端、微信客户端会有一个比较好的体验;

Onvif发现以及探测

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类型接入的摄像机,同时摄像机也支持云台控制,则可以在网页页面上进行云台控制焦距缩放等调用:

为啥我的页面上没有这个控制按钮:因为在这个摄像机通道配置中,摄像机接入类型必须是 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
    

常见问题

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: 请求的类型的名字或数据错误

服务器硬件配置

服务器配置

接入其他服务-方案拓展

接入LiveNVS

说明

接入LiveNVS是LiveNVR的方案拓展,根据项目需求选择,非必须

可以通过LiveNVS管理多个LiveNVR服务。

在LiveNVR服务页面中配置LiveNVR 接入

接入LiveQing云平台

说明

接入云平台是LiveGBS服务的方案拓展,根据项目需求选择,非必须

LiveNVR可以将通道接入到LiveQing,通过LiveQing的云平台服务实现:云端录像存储、计划等。

1. LiveQing流媒体服务安装启动

2. 云平台服务-设备接入->添加设备

3. 获取LiveNVR接入配置

云平台服务-设备接入->编辑

4. 配置livenvr.ini

直接将copy的几行复制到 livenvr.ini配置文件末尾即可

5. 启动 | 重启LiveNVR服务

重启操作:停止后再启动

6. 接入设备状态查询(上线约15s)

7. LiveNVR设备查询(注册上来约60秒)

这个时间间隔可以在liveqing.ini 中配置,iot_sync_duration= 60, 默认是60秒

8. 开启云端录像

默认是不开启的,可以点击开启

开启后会自动在 云直播服务-鉴权直播 页面中创建

9. 停止云端录像