概述
qtiredissink 是一个 GStreamer sink 元素,通过 Redis Pub/Sub 将基于文本的管道输出实时发布到 Redis 服务器。它接受来自上游元素的text/x-raw 缓冲区,并将每个缓冲区作为消息转发到配置的 Redis 频道。
它专为媒体和 AI 管道设计,用于将机器学习结果、分析输出或序列化元数据以最少的集成工作交付给后端系统、仪表板或分布式消费者。
支持的负载类型:
- 机器学习元数据 — 检测/分类结果、跟踪信息
- 应用程序生成的消息或序列化的自定义数据
- JSON 或其他序列化文本负载
- Redis 连接 — 使用可配置的主机和端口连接到 Redis 服务器,支持可选的身份验证
- 基于频道的发布 — 将每个传入的缓冲区发送到选定的 Redis Pub/Sub 频道
- 实时数据转发 — 元数据或文本输出一到达即发布
示例管道
1
下载所需文件
2
将文件复制到设备
3
连接到设备
4
设置环境变量
在设备上运行以下命令
5
运行管道
层级结构
GObjectGstObject
GstElement
GstBaseSink
qtiredissink
Pad 模板
sink
元素属性
内部架构与消息模型
qtiredissink 连接到配置的 Redis 主机和端口(支持可选身份验证),读取每个传入的text/x-raw 缓冲区,并使用 Redis 的 PUBLISH 命令将其内容发布到指定频道。
由于它使用 Pub/Sub,消息仅实时投递给当前已连接的订阅者,不会保留以供后续投递。这使得该元素适合实时元数据和事件分发,而非持久化存储。
自定义负载支持
qtiredissink 可以传输任何自定义文本或序列化负载,只要它是text/x-raw。这适用于:
- 序列化为文本的传感器或遥测数据
- 应用特定的元数据,例如 JSON
- 事件通知和状态消息
- IMSDK 原生不支持的任何 AI 元数据
用法
继续之前,请确保已完成前提条件
带视频叠加和 Redis 元数据流传输的 AI 管道
该管道对离线视频执行目标检测。推理结果由qtimetamux 以元数据的形式附加到每一帧,由 qtimlmetaparser 转换为 JSON,并由 qtiredissink 发布到 Redis 频道。同时,视频流继续进入显示路径,在屏幕上渲染检测叠加层。这将元数据分发与视频渲染分离开来,使外部应用能够通过 Redis 独立于所显示的视频来消费实时推理结果。
元数据直接流式传输到 Redis 的 AI 管道
该管道对离线视频执行目标检测。解码后的帧经过推理和后处理阶段,生成结构化文本形式的检测结果。该输出直接由 qtiredissink 消费,将推理元数据发布到 Redis 频道 — 不包含任何视频叠加或显示路径。

