LiveNVR 常见问题

直播流地址格式

WEBRTC: webrtc[s]://{ip}:{基础配置 HTTP[S] 端口}/rtc/stream_{通道号}

FLV: http[s]://{ip}:{基础配置 HTTP[S] 端口}/flv/hls/stream_{通道号}.flv

WS_FLV: ws[s]://{ip}:{基础配置 HTTP[S] 端口}/ws-flv/hls/stream_{通道号}.flv

HLS: http[s]://{ip}:{基础配置 HTTP[S] 端口}/hls/stream_{通道号}/live.m3u8

RTMP: rtmp://{ip}:{基础配置 RTMP 端口}/hls/stream_{通道号}

RTSP: rtsp://{ip}:{基础配置 RTSP 端口}/stream_{通道号}

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 端口即可 >【基础配置】>【基础配置】>【RTSP 端口】

注意

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

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

开启 HTTPS 服务

配置 LiveNVR 开启 HTTPS:【基础配置】>【HTTPS 端口(可选)】、【HTTPS Cert 证书路径】、【HTTPS Key 证书路径】

验证 HTTPS:浏览器访问 https://{证书域名}:{LiveNVR HTTPS 端口} 验证 HTTPS 是否开启成功

关于集成直播页面

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

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

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

接口返回 401 Unauthorized

原因:【基础配置】>【接口鉴权】开启, 接口调用会验证是否携带有效的 token

方法一:先调用 登录接口,登录后会返回 token,以后的接口调用携带 token 信息

方法二:【基础配置】>【接口鉴权】关闭,不推荐

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)
pid=`pidof livenvr`
[ -n "$pid" ] && kill -INT "$pid"

如何更新升级?

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

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

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

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

服务器硬件配置

服务器配置

WEB 播放器

播放器下载

详细介绍

播放鉴权

与您业务系统鉴权对接, 配置文件位置:LiveNVR 安装包解压目录 > livenvr.ini > [base_config] > stream_auth_url

此处填写您业务系统提供的鉴权地址

填写示例: stream_auth_url=http://yourhost:port/playauth

流程说明:

  • 用户请求播放地址

    示例如: http://localhost:10800/flv/hls/t.flv?param1=111&param2=222

    其中param1和param2是附加的任意传参,名称不限

  • LiveNVR 系统会GET请求回调上面stream_auth_url地址的接口,并透传附加的参数

    示例如:http://yourhost:port/playauth?param1=111&param2=222

    等待您的鉴权接口的返回:

    • 成功:200 (Status Code)

    • 失败:401

    LiveNVR 判断返回的鉴权结果:

    • 成功 : 开始播放

    • 失败 : 阻止播放

忘记登录密码

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

Windows

./LiveNVR.exe resetpass

Linux

./livenvr resetpass