# BXC_VideoAnalyzer_v4 **Repository Path**: alecx/BXC_VideoAnalyzer_v4 ## Basic Information - **Project Name**: BXC_VideoAnalyzer_v4 - **Description**: 视频行为分析系统v4系列版本,该系统可以在不考虑流媒体音视频开发,编解码开发,界面开发等情况下, 只需要训练自己的模型,开发自己的行为算法插件,就可以轻松开发出任何你想要的安全行为检测,比如人脸识别,车辆识别,周界入侵,打架,斗殴,跌倒,人群聚集,离岗睡岗,安全帽检测,充电桩,工作服, 疲劳检测,交通拥堵等等。 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 339 - **Created**: 2024-01-15 - **Last Updated**: 2024-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 视频行为分析系统v4 * 作者:北小菜 * 个人网站:http://www.any12345.com * 邮箱:bilibili_bxc@126.com * QQ:1402990689 * 微信:bilibili_bxc * 哔哩哔哩主页:https://space.bilibili.com/487906612 * gitee安装包下载地址:https://gitee.com/Vanishi/BXC_VideoAnalyzer_v4 * github安装包下载地址:https://github.com/any12345com/BXC_VideoAnalyzer_v4 ### v4系列版本介绍 * 基于视频行为分析系统v4系列版本可以在不用考虑流媒体音视频开发,编解码开发,界面开发等情况下, 只需要训练自己的模型,开发自己的行为算法插件,就可以轻松开发出任何你想要的安全行为检测,比如周界入侵,打架,斗殴,跌倒,人群聚集,离岗睡岗,安全帽检测,充电桩,工作服, 疲劳检测,交通拥堵等等。 * 从v4.24版本开始,该软件已经支持Windows10,Windows11,Ubuntu20,Ubuntu21,Ubuntu22,Ubuntu23 * (如需其他系统版本请联系作者) ### Windows版本使用说明 * 第一步下载程序:下载master分支对应的程序就是Windows版程序 * 第二步运行程序:可以双击运行 VideoAnalyzer.exe启动程序,观察窗口提示如果没有报错,即表示启动成功 * 第三步打开程序:在浏览器输入 http://127.0.0.1:9001 ,系统默认账号 用户名:admin 密码:admin888 * 第四步停止程序:关闭启动程序窗口即可 ### Ubuntu版本使用说明 * 第一步下载程序:下载Ubuntu20分支对应的程序就是Ubuntu版程序 * 第二步运行程序:可以执行./VideoAnalyzer或者执行./start.sh启动程序,观察窗口提示如果没有报错,即表示启动成功 * 第三步打开程序:在浏览器输入 http://127.0.0.1:9001 ,系统默认账号 用户名:admin 密码:admin888 * 第四步停止程序:执行./stop.sh即可 ##### Ubuntu版本注意事项 * (1)Ubuntu版本需要先通过如下命令行安装依赖库 ~~~ sudo apt install yasm libfaac-dev libmp3lame-dev libopus-dev libx264-dev libx265-dev libtheora-dev libvorbis-dev libxvidcore-dev libxext-dev libxfixes-dev sudo apt install libssl-dev sudo apt install curl libcurl4-openssl-dev libcurl4-nss-dev libcurl4-gnutls-dev sudo apt update -y sudo apt install -y libtbb-dev ~~~ * (2)如果运行程序时提示缺少依赖库,可以将如下依赖库写入系统环境变量 ~~~ //推荐写入方式: cd /etc/ld.so.conf.d sudo vim VideoAnalyzer.conf VideoAnalyzer.conf 写入 xxx/BXC_VideoAnalyzer_v4/Analyzer 的绝对路径 最后执行 sudo ldconfig ~~~ ### 启动配置说明 ~~~ //config.json { "host": "127.0.0.1", //部署设备IP地址(可以使用127.0.0.1,建议使用ipconfig获取本设备IP地址,可以实现远程访问) "adminPort": 9001, //后台管理服务器端口 "analyzerPort": 9002,//视频分析服务端口 "videoAnalyzerPort": 9004, //启动工具端口 "mediaHttpPort": 9003, //流媒体服务器HTTP端口(如需修改,MediaServer/config.ini的对应端口也要修改) "mediaRtspPort": 9554, //流媒体服务器RTSP端口(如需修改,MediaServer/config.ini的对应端口也要修改) "mediaSecret": "aqxY9ps21fyhyKNRyYpGvJCTp1JBeGOM",//流媒体服务器安全码(如需修改,MediaServer/config.ini的对应安全码也要修改) "mediaRootDir": "MediaServer/www",//流媒体服务器缓存根目录(不能随意修改) "uploadDir": "Admin\\static\\upload", //后台管理上传算法,音频,报警视频等文件根目录(不能随意修改) "supportHardwareVideoDecode": false, //是否支持硬件解码(建议关闭硬件解码,将硬件资源留给算法) "supportHardwareVideoEncode": false //是否支持硬件编码(建议关闭硬件编码,将硬件资源留给算法) } ~~~ #### v4.32 * 发布时间 2024.01.13 * (1)新增支持加密狗(加密锁)授权 * (2)优化授权逻辑,修复此前机器授权码的bug * (3)扩展系统前端自定义的功能范围 * 如需Windows版支持TensorRT+OpenVINO分析器版本的程序,请到网盘下载v4.32分析器并替换到当前软件中。 网盘链接:https://pan.baidu.com/s/19sgSxAriNneRT9s44o_5eA 提取码:1220 #### v4.31 * 发布时间 2024.01.10 * (1)新增支持自定义报警数据接口功能 * (2)新增支持自定义系统名称,作者名称,作者链接,logo,title等功能 * (3)新增支持查询布控数据和查询视频流数据等开放接口功能 * (4)新增支持自定义合成报警视频时长,自定义报警视频延迟推送时长 * 如需Windows版支持TensorRT+OpenVINO分析器版本的程序,请到网盘下载v4.31分析器并替换到当前软件中。 网盘链接:https://pan.baidu.com/s/19sgSxAriNneRT9s44o_5eA 提取码:1220 ## v4.3 * 发布时间 2024.01.07 * (1)支持h265视频流播放 * (2)支持分屏功能,1分屏,4分屏,9分屏,16分屏,并支持全屏播放 * (3)支持在单屏或多分屏播放时,自适应转码视频分辨率,提升播放体验效果 * (4)优化后台管理功能逻辑 * (5)优化转码逻辑,提升性能 * (6)优化分析器调度逻辑 #### v4.25 * 发布时间 2023.12.30 * (1)优化算法实时处理推流的视频质量 * (2)基础算法模型新增可配置参数,可配置模型精度,预处理宽高,nms阈值,分类阈值 #### v4.24 * 发布时间 2023.12.28 * (1)解决报警延迟问题,已实现实时报警 * (2)解决原报警视频合成方案导致的处理器和内存的过度消耗问题,大幅度提升软件性能 * (3)优化算法渲染推流,提高算法渲染推流流畅性 * (4)新增支持Ubuntu系统 ##### v4.24 注意事项 * master主分支对应Windows版支持OpenVINO分析器的程序 * Ubuntu20分支对应Ubuntu20版支持OpenVINO分析器的程序 #### v4.23 * 发布时间 2023.12.20 * (1)优化视频分析器的调度逻辑 * (2)新增支持英伟达显卡TensorRT推理。 ##### v4.23 注意事项 * (1)由于TensorRT必须在内置英伟达显卡的设备上运行,而且依赖库非常庞大,所以分析器模块分为两种版本,非nvidia显卡版和nvidia显卡版。 * (2)gitee下载的本软件,默认内置的是非nvidia显卡版分析器,如需nvidia显卡版分析器,请到下面的网盘链接下载并替换 * nvidia显卡版分析器百度网盘下载链接:https://pan.baidu.com/s/19sgSxAriNneRT9s44o_5eA 提取码:1220 * (3)当前n卡版内置CUDA库版本是12.0,所以运行CUDA12.0的英伟达显卡驱动必须满足最低版本要求,否则无法运行 * (4)CUDA与英伟达显卡驱动版本关系表:[查看版本关系表](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html) * (5)英伟达显卡驱动下载地址:[下载英伟达显卡驱动](https://www.nvidia.cn/Download/index.aspx?lang=cn) #### v4.22 * 发布时间 2023.12.14 * (1)分析器在布控时新增推理设备是否支持的检测 * (2)分析器优化报警合成队列的使用机制 * (3)后台管理新增新版本检测功能,新版本弹窗提示功能 #### v4.21 * 发布时间 2023.12.13 * (1)优化解码和分析以及推流的队列内存复用 * (2)优化算法推流的流畅性 ## v4.2 * 发布时间 2023.12.10 * (1)解决系统稳定性问题,已经可以非常稳定的运行在配置比较一般的Windows设备(4000元左右的8G内存轻薄本,也可以非常稳定的布控10-20路1080p视频流) * (2)系统启动时新增环境检测功能,环境检测包括端口占用检测,程序重开检测,后续会增加处理器支持检测,显卡支持检测 * (3)FFmpeg-4.4升级至FFmpeg6.0 #### v4.12 * 发布时间 2023.12.9 * (1)解决视频分析器在大规模布控情况下,布控超过1小时,必崩溃的稳定性问题。(与视频流拉流解码时线程安全有关,OpenCV-3.4.10版本有关) * (2)OpenCV-3.4.10升级至OpenCV-4.7.0,考虑到该项目目标是让足够多的普通笔记本电脑能够运行,因此该OpenCV库未扩展cuda模块,仅扩展了dnn模块。(注意:仅有支持N卡的机器才能运行包含cuda模块的OpenCV库) #### v4.11 * 发布时间 2023.12.7 * (1)视频分析器优化布控调节,解决因为超量布控导致的程序崩溃 * (2)后台管理支持批量布控,布控复制,布控日志查询 ## v4.1 * 发布时间 2023.12.5 * v4.1视频介绍地址 [https://www.bilibili.com/video/BV1dH4y1C7hY](https://www.bilibili.com/video/BV1dH4y1C7hY) * (1)视频分析器新增支持API类型的基础算法接入 * (2)后台管理新增支持API类型的基础算法 * (3)后台管理基础算法支持设置布控数量上限 ## v4.0 #### 发布时间 2023.12.3 * v4.0视频介绍地址 [https://www.bilibili.com/video/BV1gM411d72k](https://www.bilibili.com/video/BV1gM411d72k) * (1)视频分析服务优化合成报警视频的质量 * (2)视频分析服务优化因电脑性能不佳导致数据阻塞引起的程序崩溃(数据阻塞的原因在于消费速度小于生产速度) * (3)视频分析服务支持动态模型实例化,动态模型删除,而不再是此前的指定启动模型实例,运行过程中不可删除,不可销毁 * (4)视频分析服务支持模型实例复用,多路布控共用同一个模型时,只开启一个模型实例 * (5)视频分析服务支持模型实例删除,多路布控共用同一个模型时,当该模型实例对应的所有布控都取消时,该模型实例也会取消并被删除 * (6)视频分析服务支持自动调节,在运行过程中可以根据资源的消耗情况,自动调节可支持的布控数量 * (7)视频分析服务支持无限次重试拉流,无限次重试推流 * (8)后台管理优化UI * (9)后台管理支持自定义添加摄像头,批量导入摄像头,批量转发,自启动转发 * (10)后台管理支持自定义添加算法,包括基础算法和行为算法,对于基础算法,用户可以添加自己训练的模型,对于行为算法,可以选用系统内置的行为算法,也可以自己通过接口或动态库的方式,二次开发(通过这里预留的二次开发功能,可以轻松做出各种场景安全检测的视频行为分析系统,比如打架,跌倒,人群聚集,离岗睡岗,安全帽检测等等) * (11)后台管理支持自定义添加报警声音,每一个布控东可以自定义独一无二的报警声 * (12)后台管理优化布控功能,新增报警视频类型的选项,报警图片数量的选项,布控目标的选项,阈值的选项。 * (13)后台管理优化报警查看功能,报警产生时页面自动刷新,并播放报警声音,新增报警详情页,可以进入报警详情页下载报警产生的视频和图片资料 * (14)使用视频行为分析系统v4版本的二次开发功能,可以直接就做场景安全检测功能上的开发,使用者再也不用考虑,流媒体开发,音视频开发,编解码开发,后台管理等。 * (15)此前购买v3版本的用户,需要等后续v3.1的升级版。流媒体服务本次无更新。 ## v1,v2,v3版本相关链接 * v1版本视频介绍地址 https://www.bilibili.com/video/BV1dG4y1k77o * v1版本源码讲解(1)拉流,解码,实时算法分析,合成报警视频,编码,推流 https://www.bilibili.com/video/BV1L84y177xc * v1版本源码讲解(2)音频解码,音频重采样,音频编码,合成报警视频 https://www.bilibili.com/video/BV1984y1L7zB * v2版本视频介绍地址 https://www.bilibili.com/video/BV1CG411f7ak * v3版本视频介绍地址 https://www.bilibili.com/video/BV1Xy4y1P7M2 * v3版本安装包下载地址 https://gitee.com/Vanishi/BXC_VideoAnalyzer_v3 * v3版本源码购买地址(淘宝) https://item.taobao.com/item.htm?id=746326947806 * v3版本源码购买地址(闲鱼) https://h5.m.goofish.com/item?id=744350097882 ### ffmpeg命令行推流 ~~~ //将本地文件推流至VideoAnalyzer(该命令行未经优化,延迟较大) ffmpeg -re -stream_loop -1 -i test.mp4 -rtsp_transport tcp -c copy -f rtsp rtsp://127.0.0.1:9554/live/test //将摄像头视频流推流至VideoAnalyzer(该命令行已优化,但仍然存在延迟,如果想要彻底解决推流延迟,可以参考我的视频:https://space.bilibili.com/487906612) ffmpeg -rtsp_transport tcp -i url -fflags nobuffer -max_delay 1 -threads 5 -profile:v high -preset superfast -tune zerolatency -an -c:v h264 -crf 25 -s 1280*720 -f rtsp -bf 0 -g 5 -rtsp_transport tcp rtsp://127.0.0.1:9554/live/camera // 备注 根目录下data文件夹中,我提供了一个test.mp4,大家可以测试,模拟视频流 ~~~ 控制面板 报警视频管理 摄像头管理 行为算法管理 基础算法管理 添加基础算法 音频管理 布控管理 添加布控 系统维护 版本