LiveServer GB/T28181 部署包使用说明书
本文主要介绍 LiveServer GB/T28281 部署包的使用方法。
简介
本章节对 LiveServer GB/T28181 部署包的功能、前端兼容性及延时情况进行了说明。
功能
LiveServer GB/T28181 部署包提供 GB/T28181 协议视频流转 H5 视频流功能,能够使 GB/T28181 视频流在浏览器(Chrome)上顺利播放。
LiveServer GB/T28181 以下简称 LiveServer。
前端兼容性
平台 | 浏览器 | 是否支持 |
---|---|---|
Windows | Chrome | 支持 |
Windows | Firefox | 支持 |
Windows | IE | 不支持 |
MAC | Safari | 支持 |
MAC | Chrome | 支持 |
Android | Chrome | 支持 |
Android | WebView (微信、QQ) | 支持 |
iOS | Chrome | 不支持 |
iOS | Safari | 不支持 |
延时
- 对于 H.264 编码流,系统延时控制在 1s 左右。
- 对于 H.265 编码流,由于要将其转码成 H.264,所以延时控制在 2-3s 左右。
配置方法
本章节中,将详细说明 LiveServer 的配置方法。
前提条件
在配置 LiveServer 服务之前,需要您首先:
具备支持 GB/T28181 协议的设备,如摄像头、NVR、管理平台等。
在所需监控的位置,安装监控摄像头。
将 LiveServer 部署包安装在您的服务器上。关于服务器硬件配置的相关信息,参阅服务器要求。
服务器要求
一般来说,安装 LiveServer 部署包所需服务器的配置要求如下:
类型 | 配置 | 备注 |
---|---|---|
CPU | 4 核 CPU | |
内存 | 8G | |
系统 | Windows 或 Linux | |
网卡 | 千兆网卡 | 或千兆以上配置 |
注意事项
服务器的性能直接影响 LiveServer 同时处理视频流的路数。
如果视频流是 H.264 的,则 LiveServer 主要负责转发,支持的路数主要受带宽 限制。并发数理论上能达到几百路。
如果视频流是 H.265 的,则 LiveServer 要对视频流进行转码,转码对服务器性 能要求较高,所以主要受机器性能限制。理论上能同时处理视频流二三十路。 前端并发几百路。
所以,建议使用 H.264 视频流,且使用子码流。
工作原理
概括地说,就是通过 LiveServer 将支持 GB28181 协议的设备的视频流转换为 HTML5 的视频流,使视频能够在浏览器上顺利播放。
下图所示为 LiveServer 的基本工作原理图。
服务配置
本章节中,我们以海康 NVR 设备的配置为例进行说明。
登录到海康 NVR 的管理平台,打开路径:配置 > 网络 > 高级配置 > 平台接入。
下图所示为海康 NVR GB28181 的配置界面。
下表所示为相关参数配置的说明。
配置项 | 配置参数及说明 |
---|---|
平台接入方式 | 28181 |
本地 SIP 端口 | 5060(默认端口) |
传输协议 | UDP |
协议版本 | GB/T28181-2011(推荐) |
SIP 服务器 ID | 20 位全数字 ID;与 LiveServer 中 config.json 文件相对应,config.json 中使用默认值即可。 注:尽量不要修改,如需修改,建议只修改最后六位。 |
SIP 服务器域 | SIP 服务器 ID 的前十位。 |
SIP 服务器地址 | LiveServer 服务的 IP 地址,用户服务器 IP 地址。 |
SIP 服务器端口 | LiveServer 服务的端口,默认端口为 5060。 |
SIP 用户名 | 给当前 NVR 设备一个 20 位的全数字 ID。符合国标设备 ID 编号要求。 |
SIP 用户认证 ID | 保持和 SIP 用户名一致。 |
密码 | 12345678,此密码可在配置文件 config.json 中修改。 |
确认密码 | 12345678,跟所设置的密码保持一致。 |
28181 码流索引 | 可选择低码流,以降低服务器和浏览器的压力,例如,选择第三码流,需视设备情况而定。 |
视频通道编码 ID | 定义一个或者多个 20 位全数字 ID,每个 ID 对应相应的 摄像头,代表将指定的通道的视频流推送给 LiveServer。 需符合国标设备 ID 编号要求。 如果不设置此值,LiveServer 将看不到摄像头,建议使用 34020000001320000001 递增设置,每个通道都要设置。 |
关于配置文件 config.json 的相关信息,参阅配置文件。
配置文件
用记事本打开 config.json 文件,即可编辑相关参数。下图所示为 NVR 配置参数与配置文件之间的对应关系。
注意事项
需确保 NVR 的参数设置跟配置文件上相对应的参数保持一致。
启动 LiveServer
在 Windows 系统中,双击 LiveServerGB.exe 可执行文件,即可启动 LiveServer。
在 Linux 系统中,执行./start.sh,即可启动 LiveServer。
此时需要等待 NVR 注册到 LiveServerGB.exe,等待过程时间不等,可能几秒也可能几分钟,如果要加快注册速度,可以在 NVR 中停用 GB28181,再启用 GB28181。
注册成功会有如下提示:
注册成功后,就可以通过 Web 端进行访问了。
通过 Web 进行访问
在 Chrome 浏览器中,输入下面的地址:
http://<ip>:4000/devs.html
其中,为 config.json 文件中配置的本机 ip。例如,http://192.168.21.115:4000/devs.html。
下图所示为设备列表的界面:
点击查看,即可打开新的页面,查看对应的视频,如下图所示。
如果摄像机支持云台控制,也可以在视频画面上按下左键并拖动,调整云台。
授权方法
运行程序后,程序根目录下会生成一个 machine_code.txt 文件,将我们提供给您的 livegb.license 文件存放到 machine_code.txt 文件的同级目录下,重新启动服务,即可完成授权。
注意事项
在不授权的情况下,只能访问第一个设备列表中的第一个摄像头。
常见问题
Q1. 为什么会出现花屏、闪烁等现象?
一般情况下,出现花屏、闪烁等现象是由于网络不稳定或带宽限制造成的。通过 UDP 传输数据时数据包丢失,影响视频流播放,所以会出现花屏、闪烁等现象。 可将 config.json 文件中的传输协议 UDP 改为 TCP,并查看此问题是否能够解决。
Q2. 为什么看得到设备,却看不到对应的摄像头?
检查 NVR 设备中视频通道编码 ID 的配置是否正确。
Q3. 为什么没有声音?
LiveServer 暂时不提供对音频流的支持。
Q4. nginx 需要代理哪些端口?
默认端口 4000,代理 HTTP 和 WebSocket 协议。如下所示。
server {
listen 14000;
location /media/ {
proxy\_pass http://localhost:4000/;
proxy\_http\_version 1.1;
proxy\_set\_header Upgrade $http\_upgrade;
proxy\_set\_header Connection "Upgrade";
proxy\_read\_timeout 600000s;
}
}
代理后可通过 http://localhost:14000/media/devs.html 访问。
Q5. 通过 iframe 嵌入,两侧为什么会有白边?
因为视频是按原有比例播放的,受限于摄像头原始视频比例,所以会显示白边,如果接受拉伸,可以修改./public/index.html 文件给 video 标签添加 object-fit:fill
样式。
Q6. Linux 下不想使用 root 权限启动,应如何操作?
Linux 下使用管理员权限的原因是要设置开机启动。如果不需要开机启动,可以直接执行以下命令,在后台运行程序:
nohup ./LiveServerGB.exe > log.txt 2 > &1 &;