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
第二步 创建数据库实例(整段复制下面的建库SQL并执行,不要去除注释部分的字符集设定!)
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
云台控制按钮没有(灰掉)
通道配置接入类型是 ONVIF 、 SDK 或 ISUP 的摄像机才有云台控制功能,前端页面的按钮才会显示可用;
接口返回 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¶m2=222
其中param1和param2是附加的任意传参,名称不限
LiveNVR 系统会GET请求回调上面
stream_auth_url
地址的接口,并透传附加的参数示例如:http://yourhost:port/playauth?param1=111¶m2=222
等待您的鉴权接口的返回:
成功:200 (Status Code)
失败:401
LiveNVR 判断返回的鉴权结果:
成功 : 开始播放
失败 : 阻止播放
忘记登录密码
可以在命令行下运行 LiveNVR 可执行程序, 带 resetpass
参数来重置密码
Windows
.\LiveNVR.exe resetpass
Linux
./livenvr resetpass
停止服务, 重新启动后生效