简介

  • 图片流服务器
    • 由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类,具体实现基类接口
  • 图片流服务
    • PictureServer类,集成ParseMjpeg类,ConsumerIndex类,ProducerIndex类,提供对外服务接口,目前包括:
      • 设置前缀,用于生成同一名称
      • 初始化,包括初始化消费者,初始化生产者
        • 初始化消费者:由设置的前缀名,生成消费者索引文件名,调用ConsumerIndex接口,设置文件名,打开文件,并写入初始索引(1)
      • 处理,同步消费者索引和生产者索引,使用PictureServer类对Mjpeg文件解析,通过其接口获取原图数据,缩略图数据,结构化信息数据
      • 获取结构化信息数据
      • 删除结构化信息队列的头部数据
  • 加入mongoose,实现图片推流服务

结构

  • 索引
    • BaseIndex.hpp
      • ProducerIndex.hpp
      • ConsumerIndex.hpp
  • Mjpeg图片
    • ParseMjpeg.hpp
  • 检测业务
    • BaseServiceLogic.hpp
      • ServiceLogic.hpp
  • 视频结构化引擎工具
    • VcaTool.hpp <!– + ParseFrame.hpp
    • ParseFrame.cpp –>