为什么学习这条流程

这个学习项目希望把摄像头接入、视频分发、模型推理和事件保存连起来。先理解各模块的输入输出,再实现一路相机的检测。后面的多场景算法、通知和模型训练属于扩展方向。

项目目标

  • 学习音视频相关知识,例如解码、推流、协议转换、低延迟播放
  • 学习算法标注、模型训练、实时推理
  • 学习多模态大模型运行和部署
  • 学习并发处理与工程化拆分
  • 学习将检测结果转成业务事件,并保存可复查的证据

核心技术简介

核心讲解会放在音视频专栏中,这里只保留项目中会频繁出现的关键词,先建立整体认识。

音视频基础知识

从 视频与 FFmpeg 基础 开始,先区分编码、容器和传输协议。

FFmpeg

FFmpeg 是整个链路中最基础、也最常用的工具之一。它本质上是一套通用的音视频处理工具链,可以完成转码、封装、抽帧、推流、截图等工作。需要改变编码、尺寸或截取图像时可以使用 FFmpeg;仅改变传输协议时,流媒体服务器通常可以直接处理,未必需要重新编码。

WebRTC

WebRTC 是面向实时音视频与数据传输的开放标准,现代浏览器支持度较高。对于监控平台而言,它最重要的价值在于低延迟播放,更适合做实时预览、远程查看和交互式场景。但它也并不是“天然低延迟”的万能解法,部署时通常还要处理信令、ICE、STUN/TURN、编解码兼容等问题。

HLS

HLS 是 Apple 推出的基于 HTTP 的流媒体传输方案,优点是兼容性好、部署成熟、便于通过普通 Web 服务和 CDN 分发。它更适合兼容性优先、分发优先、回放优先的场景;如果项目追求的是尽可能接近实时的监控预览,HLS 更适合作为补充链路,而不是唯一方案。

编码格式

视频如果不经过压缩,体量会非常大,几乎无法直接存储和传输,因此编码格式是整条链路里绕不开的一层。项目中最常见的是 H.264 和 H.265。很多播放兼容、协议转换、浏览器支持问题,表面看是“流地址不能播”,本质上往往同时与编码格式、封装格式和播放器能力有关。

MediaMTX

MediaMTX 是一个轻量且实用的实时媒体服务器,支持 RTSP、RTMP、WebRTC、LL-HLS 等多种协议。它更像一个媒体路由器:负责把上游流接进来,再按不同下游需求进行统一分发。在这类项目里,它非常适合放在协议转换、统一出口、网页播放、录制与转发这一层。

多模态模型

多模态模型的价值,不只是“看图说话”。在安防和工业场景中,它更适合承担事件的二次理解工作,例如读取抓拍图、补充异常描述、生成事件摘要、辅助人工研判。视觉模型负责“看到了什么”,多模态模型负责“怎么理解这些结果”。

ONVIF

ONVIF 并不是单一协议,而是一套围绕网络视频设备互通建立起来的规范体系。它通过不同 Profile 定义设备与平台之间应支持的能力。对接入平台来说,ONVIF 的价值不在于万能,而在于尽量降低不同厂商设备之间的兼容差异,减少对接成本。

RTSP

RTSP 是实时流媒体场景中最常见的一类协议。更准确地说,它是用于控制实时媒体会话的协议,而不只是一个“视频地址”。在工程实践里,很多设备接入问题最终都体现在 RTSP 这一层,例如网络可达性、鉴权方式、主辅码流区分、会话稳定性等。

WebSocket

WebSocket 提供浏览器与服务端之间的双向通信能力。它在这个项目中的主要作用不是传输视频,而是传输推理状态、告警事件、任务进度、节点心跳和页面实时刷新数据,使前端可以持续收到后端变化。

LLM

大语言模型更适合放在理解层和组织层,而不是替代视觉检测本身。它可以根据规则生成文本摘要、结构化结果、告警说明、工单内容,适合做自然语言查询、事件总结、知识问答和辅助分析。简单来说,视觉模型回答“发生了什么”,LLM 回答“怎么表达”和“怎么对接业务”。

数据标注

数据标注是训练自定义视觉模型的起点。像 Label Studio、CVAT 这类成熟工具都支持图像、视频等多种类型的数据标注。对于项目实践而言,优先把标注格式、类别定义、数据质检和导出流程固定下来,往往比一开始就追求模型精度更重要。

模型训练

以 YOLO 系列工具链为例,模型训练通常不是孤立的一步,而是与验证、推理、导出、部署、跟踪等环节一起构成完整流程。真正的难点并不只是“把模型训出来”,而是如何把训练结果稳定接回工程链路,最终在真实业务中跑起来。

视觉算法

这里主要指目标检测、分类、分割、跟踪等视觉任务。对于项目初期而言,最有价值的不是一开始就追求大而全,而是先把检测、跟踪、规则判定、截图留证和结果联动这一条线打通,再逐步扩展更复杂的场景能力。

对象存储

对象存储适合承载抓拍图、短视频片段、模型文件、导出结果等以“对象”为单位的数据。以 MinIO 为代表,这类系统通常具备较好的兼容性和可扩展性,更适合作为平台中的统一文件出口,而不是把所有大文件直接放进数据库。

消息队列

消息队列可以用于任务缓冲和异步处理,是否引入取决于实际并发量与可靠性要求。像 RabbitMQ 这样的消息中间件,非常适合承接告警推送、异步截图处理、工单触发、通知重试等工作,让推理主链路尽量不要被外围动作拖慢。


同类型产品介绍

下面这些产品都和视频接入、平台管理、智能分析、联动处理有关,但定位并不完全相同。把它们放在一起看,更容易理解本项目所在的位置。

厂商一体化平台

开放平台型 VMS

开源与本地化方案

  • Frigate
    开源 NVR,特点是本地实时 AI 检测,适合重视隐私、本地处理和可控性的项目。
    官网:https://frigate.video/

  • Shinobi
    开源 NVR,强调性能与灵活性,适合作为工程参考方案。
    官网:https://shinobi.video/

  • ZoneMinder
    老牌开源监控系统,适合用来理解传统开源视频监控平台的设计思路。
    官网:https://zoneminder.com/

分析能力平台

  • BriefCam
    更偏向视频分析软件层,而不是单纯的视频接入平台,重点在事件检索、实时响应和数据分析。
    官网:https://www.briefcam.com/

学习顺序

先确认相机视频能播放,再检查解码和抽帧结果;模型能识别样例后,才加入场景规则和事件保存。不要把“检测到一个目标”直接等同于“发生业务异常”。

参考资料与原始依据

以下资料主要选自官网、官方文档和标准组织页面,便于后续继续查阅与校验。

标准与基础协议

核心技术与工具

同类产品官网