LiveNVR 常见问题

LiveNVR的并发性能怎么样?

LiveNVR摄像机接入采用的是liveqing的底层框架,流媒体分发采用的是nginx,性能都是得到过行业巨头的认可,非常可靠!

LiveNVR如何做分组?

LiveNVR的功能定位就是为视频应用层输出视频设备接入/标准视频输出的能力平台层,只做基础的视频通道接入、视频通道输出,不做分组及分组权限功能,具体的应用业务权限划分,可以在客户的应用系统做自定义的定制,LiveNVR视频能力层只做视频的能力输出!

苹果手机起播慢,经常播放不成功?

由于HLS协议就是一种先切片-后播放的原则,也就是需要切片好大概3个ts文件的时候,苹果端播放器才开始进行播放动作,假设单个切片最小设置成2s,那么这个切片过程+下载过程的总时长将会大于6s,这就导致很多播放器等待时间过长,进而播放成功率不高,建议可以设置每一个摄像机通道的 “按需直播” 不勾选,这样就能保证通道一直在切片,播放起播也就很快了!

“FLASH:rtmpconnectfailure”

出现的原因是rtmp流连接失败。

解决方法:看看访问的rtmp的端口(默认10935)是否映射出来;

软件包不要存放在中文文件夹路径下;

以及nvrnginx是否被一些保护软件隔离或者误杀。

集成直播几分钟就会中断

由于LiveNVR自身默认开启的是按需直播(有用户观看该路视频流才会拉取对应视频流进行直播),因此我们在视频播放过程中需要定期向服务端发送视频播放心跳,以此来保证服务端不间断拉流。在播放过程中30秒调用一次touchchannelstream接口,就可以保持视频流不间断直播(具体接口参数见接口文档)

关于集成直播页面

首先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

调用接口返回 401 Unauthorized

操作: 登录,登陆后会返回token,以后调用接口需要在cookie中携带token信息“token=a19cb5f6e7d2449d8d24c8a0fc554ca7”

	{
	   "LiveQing" : {
	      "Body" : {
	         "Token" : "a19cb5f6e7d2449d8d24c8a0fc554ca7"
	      },
	      "Header" : {
	         "CSeq" : "1",
	         "ErrorNum" : "200",
	         "ErrorString" : "Success OK",
	         "MessageType" : "MSG_SC_SERVER_LOGIN_ACK",
	         "Version" : "1.0"
	      }
	   }
	}

视频广场返回错误码

为方便查看信息,LiveNVR视频广场会将不在线的设备错误信息反馈出来。

常见返回错误码对应信息为:

返回的多为Socket错误码和rtsp错误码

RTSP错误码

401: 未被授权,密码错误

404: 未发现设备

Socket错误码

10057: socket没有连接到目标

11004: 请求的类型的名字或数据错误

linux中非root用户如何启动和停止

安装成系统服务的时候必须root权限,但是有时没有root权限,可以进行如下处理

启动脚本

#!/bin/bash
CWD=$(cd "$(dirname $0)";pwd)
nohup "$CWD"/livenvr >/dev/null 2>&1 &

停止脚本

#!/bin/bash
CWD=$(cd "$(dirname $0)";pwd)
kill -9 $(ps -ef|grep livenvr|grep -v grep|awk '{print $2}')
cd "$CWD"/nginx/
./nginx -s stop
cd -