- pixelformat='Y12 ’ — 像素格式
Y12 是 V4L2 定义的 FourCC 编码,表示 12位灰度图像格式(V4L2_PIX_FMT_Y12)。
每个像素占 16位(2字节),其中低12位存储有效灰度数据,高4位未使用(填零)。
末尾的空格 'Y12 ’ 是因为 V4L2 的 FourCC 固定为 4个字符,Y12 只有3个字符,需要用空格补齐。
在本项目中的意义:红外相机(MWIR/SWIR/LWIR)传感器输出的是 12位灰度数据,所以采用 Y12 格式。从 pipelines.yaml 第19行也可以看到下游 GStreamer 用 gray16-le(16位小端灰度)来解析,与 Y12 的存储方式一致。 - –stream-mmap=4 — 内存映射缓冲区数量
–stream-mmap 指定使用 MMAP(内存映射) 方式进行视频流采集。
=4 表示分配 4个缓冲区。
工作原理:内核驱动预先分配4块内存缓冲区,采集时轮流使用——驱动往一个缓冲区写数据的同时,用户空间可以读取另一个缓冲区的数据,形成流水线式并行处理。
为什么是4个:相比默认值(通常是3个),4个缓冲区提供了更大的缓冲余量,可以在用户空间处理速度波动时减少丢帧风险,对实时性要求较高的红外相机采集尤为重要。 - –set-fmt-video=width=1280,height=512,pixelformat=GREY
但是 GStreamer 又把它解释成:
640×512、16位灰度图
这是因为:
驱动表面输出:1280个8位数据
程序实际解释:640个16位像素
也就是把相邻两个字节拼成一个红外像素。这通常是驱动为了传输 14/16 位红外数据所采用的特殊包装方式。 - 可以把 GStreamer 想象成一条视频加工流水线。
摄像头 → 格式转换 → H.264编码 → UDP发送
在 GStreamer 中写成:
v4l2src ! videoconvert ! mpph264enc ! multiudpsink
! 表示把前一个工位的输出交给下一个工位。
GStreamer → appsink → Python
Python → appsrc → GStreamer
gstreamer随手记
张小明
前端开发工程师
飞机结构目标检测数据集:7280张实拍图+双格式标注
简介:本资源是面向计算机视觉初学者与目标检测算法研发者的专业级飞机结构识别数据集,聚焦机头、垂直稳定器、机翼、轮子四类关键部件的精标检测任务,适用于无人机巡检、航空器智能运维、遥感图像分析等工业场景。压缩包共2000个文件…
工业老鼠检测数据集:从VOC标注到YOLOv8部署全流程实战
简介:这是一套面向人工智能计算机视觉目标检测任务的老鼠检测标注数据集,特别针对工业厂房、仓库等场景下的小目标识别,适合需要训练、微调或评测检测模型的开发者与研究人员。资源采用PASCAL VOC标准标注格式,图像与XML标签一一对…
OpenClaw 本地 AI 智能体搭建教程 Windows3.1.0/macOS2.7.9 落地实操
OpenClaw 本地 AI 智能体搭建|借助一键包快速实现电脑自动化执行 在做 AI Agent 本地实践的时候,很多人会卡在环境搭建环节。版本不一致、组件缺失、环境变量配置错误,各种问题层出不穷。OpenClaw 一键包把全部依赖封装完毕,不用手…
AI Agent安全中间件AgentRails:为智能体操作构建可编程安全层
这次我们来看一个专门为 AI Agent 设计的“安全护栏”项目——AgentRails。当你的 AI 智能体开始执行真实世界的操作,比如发送邮件、操作数据库、调用外部 API 时,如何确保它的行为是安全、可控、符合预期的?AgentRails 就是一个开源的 Pytho…
AI音频生成与声音克隆本地部署全流程实操指南
这次我们来看一个 AI 音频生成与声音克隆的本地部署实操。项目标题给的是“【MONTAGEM DEAD WRONG】一块杀肉龙去”,单看这个名字并不像传统开源项目,更像是拿来做测试的输入样例:MONTAGEM 是巴西放克短视频里常见的一种音乐风格标签…
基于SpringBoot的中国古诗词学习平台系统(毕设源码+文档)
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…