跳到主要内容

系统架构

CCAI 将视频分析拆成一条清晰的流水线,并把业务状态交给调用方。

RTSP / RTSPS
│
▼
FFmpeg 解码与重连
│ 最新帧队列
▼
抽帧与缩放
│ 1 FPS 空闲 / 3 FPS 活跃
▼
画面变化检测
│ 通过 ROI、亮度和清晰度过滤
▼
共享推理调度
│ RTMDet + ONNX Runtime
▼
人员跟踪 → 区域规则
│
├─ HTTP 事件回调
└─ WebSocket 检测框
│
▼
调用方业务系统

多通道共享推理​

每个分析通道拥有自己的解码线程、最新帧队列和状态;所有通道共享一个模型会话和一个推理调度器。推理任务繁忙时只保留最新帧,避免延迟不断累积。

默认限制为 4 路,可以通过 AI.MaxChannels 调整。通道数增加时,CPU、内存和推理队列都会增长,建议根据实际分辨率和帧率压测。

资源控制​

DecodeMode 支持:

  • adaptive:优先等待关键帧;等待超时后回退完整解码。
  • keyframe:只适合关键帧间隔较短、已经验证过的摄像机。
  • all:完整解码后按目标帧率抽帧。

HardwareDecode=auto 在 Windows 尝试 D3D11VA,在 Linux 尝试 VAAPI。硬件解码与 CUDA 推理相互独立,解码硬解成功不代表可以使用 GPU 推理。

事件语义​

画面变化事件有开始和结束状态。人员入侵事件带有轨迹 ID;同一帧多个已确认人员会合并成一个规则事件。人员离开并超过丢失窗口后,CCAI 发送结束事件。

调用方应根据 task_id、event_type、track_id 和 started_at 管理事件生命周期,并自行决定是否生成告警、快照或事件录像。