1 Star 0 Fork 114

dxz-open / NodeJS版本基于GB28181的管理平台

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

基于NodeJS的GB 28181管理平台


一、功能介绍

  • GB28181的设备注册到本平台,并发布为多种媒体格式,支持浏览器播放视频
  • 流媒体服务集成 ZLMediaKit(Linux版本,感谢作者夏楚),目前仅限Linux下使用

功能截图

1. 播放界面

播放界面

2. 设备列表界面

设备列表

二、技术框架

1. 前端

2. 后端

  • 后端使用NodeJS开发,加入Express框架。
  • apidoc 文档工具(安装脚本在setup.sh里)。
  • test-api.http是VsCode的Rest Client插件的测试用例脚本。

使用时在VsCode的Workspace Settings-settings.json设置环境变量,如:

{
    "rest-client.environmentVariables": {

        "$shared": {},
        "local":{
            "host":"localhost"
        },
        "test":{
            "host":"测试服务器ip"
        }
    }
}

3. 默认使用端口

  • http端口: 7000
  • zlmedia http: 9094
  • zlmedia https: 9096
  • zlmedia rtmp: 9092
  • sip: udp 5060
  • sip: tcp 5060
  • 其它配置信息: data/constants.js

使用Ctrl+Alt+E来切换加载的配置项。

三、部署

1. 需要准备好NodeJS环境

(步骤略)

2. 部署NodeJS服务端

# 安装
chmod +x ./setup.sh && ./setup.sh

# 启动,程序自动启动ZLMediaKit , 不需要专门部署
node app.js
# 访问网址 http://你的ip:7000

3. 设置项

  • data/cameras.db 是数据库,使用SQLite
  • data/constants.js 一些常量设置,一般不需要修改
  • data/log.js 是log4js设置
  • data/registry.data 是缓存文件,删除不影响使用
  • 服务端的设置(如服务端设备账号等)在系统启动后,通过网页端设置

4. 设备端设置注意事项

  • SIP服务器ID 34020000002000002250
  • SIP服务器域 3402000000
  • SIP服务器地址: 与摄像头设置的所在服务器对应
  • SIP服务器端口 5060
  • SIP用户认证ID -- 摄像头 : 34020000001110000***,后面三位数对应平台的通道ID -- NVR : 34020000001320000***,后面三位数对应平台的通道ID
  • 密码 12345678
  • 本地SIP端口 5060
  • 注册有效期 默认值
  • 心跳周期 默认值
  • 最大心跳超时次数 默认值
  • NVR_音视频_选择通道 码流类型_主码流 视频类型_视频流,不能是复合流
  • 视频通道编码ID 按顺序编写: -- D1 3402000000131000001 -- D2 3402000000131000002 -- ...

5. 使用pm2启动程序

pm2 start app.js
# 如果遇到日志过大,可以限制pm2日志数量
pm2 install pm2-logrotate
pm2 set pm2-logrotate:retain 50

四、更新日志

  • 0.0.1 设备注册、请求目录
  • 0.0.2 加restful接口,实现请求设备列表功能
  • 0.0.3 实现invite功能
  • 0.0.4 增加配置,允许匿名注册,去掉一些不需要文件,增加离线检测
  • 0.1.0 GB28181加UI界面
  • 1.0.0 加UI界面可执行版本,仍有大量未完成的工作
  • 1.0.1 调通大华NVR
  • 1.0.2 调通rtp on tcp, 退出app时序列化数据保存到磁盘
  • 1.0.3 界面优化
  • 1.0.4 截图基本功能
  • 1.0.5 适配海康多通道摄像头
  • 1.0.6 自动截图 ,去掉手工截图
  • 1.0.7 完成鉴权
  • 1.0.8 适配海康nvr
  • 1.0.9 内网注册时rport适配
  • 1.1.0 集成ZLMedia启动与停止,加定时器自动清理日志
  • 1.1.1 离线检测;删除通道时清理缓存,让设备可以重新注册;适配新设备
  • 1.1.2 加分页显示、通道命名
  • 1.1.3 播放器改为flv.js

TODO List

  • sip.js改了304行:
if(via.host=='VM_16_10_centos'){
    return '';
}
  • digest.js 改了 148行
  //TODO: 这里不知道干什么用,会造成鉴权失败
  if(!ctx.nc){ // 加if的
    ctx.nc = (ctx.nc || 0) +1;
  }
  • 播放NVR录像
  • 电视墙
  • 云台控制
MIT License Copyright (c) 2020 xundh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

NodeJS版本基于GB28181的管理平台,实现浏览器播放GB28181设备视频功能,并有二次开发API接口 展开 收起
NodeJS
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
NodeJS
1
https://gitee.com/dxz-open/GB28181_Node_Http.git
git@gitee.com:dxz-open/GB28181_Node_Http.git
dxz-open
GB28181_Node_Http
NodeJS版本基于GB28181的管理平台
master

搜索帮助