大概率会有一个共同感受:
资料很多,但很散;Demo 很多,但离产品很远。
你可能跑通过摄像头采集,却不知道为什么换个分辨率就花屏;
你可能用 SDK 推出了 RTSP 流,却不清楚码流、时间戳、SPS/PPS、低延迟到底怎么调;
你可能把 YOLO 模型部署到了 NPU 上,却发现一接入实时视频,帧率、延迟、内存、队列全都开始出问题;
你可能做出了一个能跑的 Demo,但一旦要求 7×24 小时稳定运行、断流恢复、日志排查、远程配置、报警录像,就发现还有很长一段路要走。
所以,我在此准备写一个长期更新的系列:
《嵌入式 Linux AI音视频soc系列教程笔记》 欢迎关注这个系列,如有雷同,多多指正。
这个系列不会只停留在“某个接口怎么调用”“某个 SDK Demo 怎么跑起来”,而是会围绕一个完整的工程主线展开:
摄像头采集 → ISP / V4L2 → Buffer / DMA-BUF → 硬件编码 → RTSP 推流 → NPU 推理 → OSD 叠加 → 报警录像 → Web 管理 → 长时间稳定运行。
换句话说,我最终要做的不是一个孤立的小实验,而是一条真正接近产品形态的 AI 视频应用链路。
这个系列会以“智能摄像头 / 边缘视觉盒子”为贯穿案例。
后续你可以把它扩展成安全帽检测、人形检测、门禁识别、工业缺陷检测、多路视频分析等实际项目。
无论底层 SoC 来自哪家厂商,核心思路都是相通的:
先掌握通用 Linux 多媒体能力,再理解厂商 SDK 的适配边界,最后把功能做成可维护、可测试、可部署、可恢复的工程。
整个教程会从:
最基础的 Linux 操作、C/C++、系统编程、交叉编译讲起,
然后进入 AI SoC 的硬件架构、开发板 SDK、BSP、设备树、摄像头、ISP、V4L2、Media Controller,
再继续深入图像格式、stride、alignment、DMA-BUF、零拷贝、硬件编解码、GStreamer、FFmpeg,
RTSP、NPU 模型部署、前后处理、OSD、录像、Web API、多线程架构、性能优化、稳定性设计和量产部署。
我的期望是,这个系列,可以帮助大家解决三个问题。
第一,帮初学者(大学生)建立完整地图。 很多人学习嵌入式 AI 视觉时,容易从一个点切进去,比如只学 V4L2、只学 GStreamer、只学模型部署,但不知道这些知识在整个系统里处于什么位置。这个系列会不断把每个知识点放回完整链路中,让你知道“为什么学、什么时候用、出了问题怎么排查”。
第二,帮有经验的开发者补齐工程细节。 真正的项目里,最折磨人的往往不是“能不能跑”,而是“能不能稳定跑”。buffer 生命周期、cache 一致性、stride 不匹配、队列堆积、AI 阻塞编码、RTSP 延迟累积、内存泄漏、fd 泄漏、摄像头无帧恢复、NPU 超时处理、systemd watchdog,这些问题不会在简单 Demo 里集中暴露,却会在产品落地时一个个找上门。
第三,形成一套可复用的项目模板。 后面的章节不会只讲概念,还会尽量给出可验证的实验、命令、代码结构、调试方法和验收标准。每一章都尽量回答一个朴素的问题:学完之后,我能在板子上验证什么?我能把它接到完整工程的哪个位置?
这个系列会持续更新。
前期会先打基础:Linux、C/C++、系统编程、交叉编译、开发板和 SDK;
中期会进入摄像头、ISP、V4L2、图像格式、DMA-BUF、编解码和流媒体;
后期会重点讲 NPU 推理、AI 前后处理、OSD、工程架构、多线程、性能优化、稳定性、部署运维以及最终综合项目。
如果你想进入嵌入式 Linux、音视频、多媒体、边缘 AI、AI 视觉 SoC 这个方向。
这套教程会尽量陪你从“能跑一个 Demo”,走到“能理解一条链路”,再走到“能设计一个产品级应用”。
从下一篇开始,我会更新:
这个方向到底在做什么?
AI 视觉 SoC、嵌入式 Linux、多媒体和边缘 AI 之间到底是什么关系?
一个真正的 AI 摄像头工程,背后需要哪些能力?
从零开始,把摄像头、硬件编码、RTSP、NPU、OSD 和工程化稳定性,一步一步串成一套能落地的 AI 视觉系统。
怕什么真理无穷,进一寸有一寸的欢喜。