简介
- 图片流服务器
- 由vca拉取视频流,前处理,推理,后处理,将图片和结构化数据封装成mjpeg,使用共享内存的方式存放到内存中,约定好文件名结构
- 图片流服务器按照一定规则从共享内存中取出指定mjpeg数据,分离出图片数据和结构化数据,以供计算节点进行业务处理或推送到前端播放
vca 共享内存 使用方法
- 环境变量设置:
1
export LD_LIBRARY_PATH=/mnt/remote/190-mnt/zhangjunyi/workspace/demo/third_party/lib/ffmpeg/:/home/opencv3-4/lib:/home/user/zjy-190/workspace/video_process/3party/x86_64/ubuntu-18.04/NVIDIA/lib/:/home/user/zjy-190/workspace/video_process/build/:/usr/local/cuda-11.4/targets/x86_64-linux/lib/:/usr/local/cuda-14/lib64:/usr/local/TensorRT/lib:/mnt/remote/190-mnt/zhangjunyi/workspace/video_process/build:/mnt/remote/190-mnt/zhangjunyi/workspace/video_process/build/abcdk/lib:/mnt/remote/190-mnt/zhangjunyi/workspace/video_process/3party/GENERAL-x86_64/lib
- 共享内存相关参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
--output-type < TYPE > 输出类型。 0:终端 1:屏幕 2:视频 3:REDIS 4:KAFKA 5:共离内存(SHM) --output-shm-prefix < STRING > 输出共享内存队列文件名的前缀。默认:任务ID 写索引文件:PREFIX-producer.idx 读索引文件:PREFIX-consumer.idx 队列文件:PREFIX-frame-%llu.jpg --output-shm-queue-max < NUMBER > 输出共享内存队列最大长度(先进先出)。默认:5
- 任务命令: ```bash ./vca.exe –service-mode 0 –id aaa –detector-conf-inline –detector-conf @–detector-models@/data/models/PERSON/DETECT.conf@xxxx@yyyy@ –input-video-name /home/user/Videos/zhuoer_face_new.mp4 –output-type 5
财务室门口 摄像头
./vca.exe –service-mode 0 –id aaa –detector-conf-inline –detector-conf @–detector-models@/data/models/PERSON/DETECT.conf@xxxx@yyyy@ –input-video-name rtsp://admin:a1234567@192.169.7.123:554 –output-type 5
区域入侵 - 人体
./vca.exe –service-mode 0 –id aaa –detector-conf-inline –detector-conf @–detector-models@/data/models/PERSON/DETECT.conf@xxxx@yyyy@ –input-video-name rtsp://192.169.4.16/test_personcount.mp4 –output-type 5
烟火
./vca.exe –service-mode 0 –id fire –detector-conf-inline –detector-conf @–detector-models@/data/models/PERSON/DETECT.conf@xxxx@yyyy@ –input-video-name rtsp://192.169.4.16/test_fire_smoke.mp4 –output-type 5
```
- 解析Mjpeg图片
- ParseMjpeg类,输入mjpeg文件路径,输出源文件,缩略图,结构化信息数据
- 处理索引
- BaseIndex类,提供消费者索引和生产者索引的统一接口:
- 设置共享文件名,
- 获取共享文件名,
- 打开共享内存文件,
- 关闭共享内存文件,
- 读取索引值,
- 写入索引值
- ConsumerIndex类和ProducerIndex类都公有继承BaseIndex类,具体实现基类接口
- BaseIndex类,提供消费者索引和生产者索引的统一接口:
- 图片流服务
- PictureServer类,集成ParseMjpeg类,ConsumerIndex类,ProducerIndex类,提供对外服务接口,目前包括:
- 设置前缀,用于生成同一名称
- 初始化,包括初始化消费者,初始化生产者
- 初始化消费者:由设置的前缀名,生成消费者索引文件名,调用ConsumerIndex接口,设置文件名,打开文件,并写入初始索引(1)
- 处理,同步消费者索引和生产者索引,使用PictureServer类对Mjpeg文件解析,通过其接口获取原图数据,缩略图数据,结构化信息数据
- 获取结构化信息数据
- 删除结构化信息队列的头部数据
- PictureServer类,集成ParseMjpeg类,ConsumerIndex类,ProducerIndex类,提供对外服务接口,目前包括:
- 加入mongoose,实现图片推流服务
结构
- 索引
- BaseIndex.hpp
- ProducerIndex.hpp
- ConsumerIndex.hpp
- BaseIndex.hpp
- Mjpeg图片
- ParseMjpeg.hpp
- 检测业务
- BaseServiceLogic.hpp
- ServiceLogic.hpp
- BaseServiceLogic.hpp
- 视频结构化引擎工具
- VcaTool.hpp <!– + ParseFrame.hpp
- ParseFrame.cpp –>