LiveNVR 常见问题

LiveNVR 的并发性能怎么样?

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

LiveNVR 如何做通道分组?

管理员用户登录 LiveNVR, 左侧菜单进入分屏展示页面, 可以看到通道目录树, 鼠标右键目录树节点, 有新建目录, 鼠标右键目录节点, 可以为目录选择通道编辑目录,也可以删除目录

切换数据库

LiveNVR 默认使用 sqlite3 文件数据库, 当接入通道数量达到万级时, 文件数据库会拖慢系统;

这时我们建议使用 MariaDB(推荐) 或 MySQL(5.7及以上) 数据库, 数据库服务需要您提前安装好, 切换到 MariaDB 数据库很简单:

(注意:数据库的默认引擎应为InnoDB, 查询命令: show engines)

  • 第一步 连接数据库

    客户端连接 或 命令如 :

    mysql -h127.0.0.1 -uxxx -pyyy -P3306
    
  • 第二步 创建数据库实例

    DROP DATABASE IF EXISTS `livenvr`;
    CREATE DATABASE IF NOT EXISTS `livenvr` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
    USE `livenvr`;
    
  • 第三步 配置 livenvr.ini > [db] > MariaDB/MySQL 连接信息(其中 dialect 固定为 mysql)

    [db]
    dialect=mysql
    url=username:password@(ip:port)/livenvr?charset=utf8&parseTime=True&loc=Local
    
  • 第四步 重启 LiveNVR 服务, 系统自动完成建表操作, 至此, 数据库切换完成

开启输出 RTSP 流

登录 LiveNVR 界面, 配置 RTSP 端口即可 => [基础配置] > [LiveNVR 基础配置] > RTSP 端口

注意

在 Linux 下面开启 554 端口通常需要 root 权限, 需要以 sudo 来运行 livenvr 服务程序

拉取一路直播流 /api/v1/getchannelstream?channel=4&protocol=RTSP, 带参数 protocol=RTSP, 返回结果中包含了这一路直播流的 RTSP 流地址, 这个 RTSP 地址可以用 ffplay 来播放

开启 HTTPS 服务

配置 LiveNVR 开启 HTTPS

livenvr.ini > [https] > 配置证书路径和 LiveNVR HTTPS 端口

以上配置操作完成后, 重启 LiveNVR, 浏览器访问 https://{证书域名}:{LiveNVR HTTPS 端口} 验证 HTTPS 是否开启成功

苹果手机起播慢?

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

“FLASH:rtmpconnectfailure”

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

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

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

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

关于集成直播页面

首先LiveNVR自身直播页面提供iframe集成相关代码, 其次我们也支持通过直接调用分享地址传递参数集成,传递对应参数获取对应功能

  • iframe:是否以iframe形式嵌入,支持传递参数yes、no;

  • autoplay:是否开启自动直播,支持传递参数yes、no;

  • stretch:是否拉伸显示,支持传递参数yes、no;

  • aspect:播放器的比例,传递形式x:y,默认16:9, aspect=fullscreen时, 整页显示播放器

例: ip:port/play.html?channel=id&iframe=yes&aspect=4:3&autoplay=yes&stretch=yes

云台控制按钮没有(灰掉)

因为在这个摄像机通道配置中,摄像机接入类型必须是 Onvif 类型,摄像机才能有控制功能,前端页面的按钮才会显示(可用);

接口返回 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"
	      }
	   }
	}

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 -INT `pidof livenvr`

如何更新升级?

  • 上传部署包到服务器, 解压

  • 停止运行老服务(如果已开启云端录像, 建议将云端录像目录配置到版本目录外面)

  • 拷贝老服务运行目录下的 *.db 和 *.ini 文件到新解压目录

  • 在新解压目录下, 启动新服务

忘记登录密码

可以在命令行下运行 LiveNVR 可执行程序, 带 resetpass 参数来重置密码

Windows

./LiveNVR.exe resetpass

Linux

./livenvr resetpass