RDK X5 五大多媒体 Demo 功能完整对比

数据源链路统一基于 hobot-multimedia,先给核心一句话区分:

  1. vio_capture:MIPI 相机图像采集基础底层示例(采集裸 NV12 帧)
  2. vio2encoder:MIPI 相机采集 → 硬件编码 H264/H265(保存码流 / 网络推流)
  3. vio2display:MIPI 相机采集 → 直接硬件 HDMI 预览(实时画面查看)
  4. decode2display:本地码流文件 → 硬件解码 → HDMI 预览
  5. rtsp2display:网络 RTSP 流拉取 → 硬件解码 → HDMI 预览

一、逐个详解(数据源、数据流、用途、典型场景)

1. vio_capture

数据源:MIPI CSI(ISP 输出 NV12)

完整链路 CSI 相机 → ISP 硬件采集 → 输出 NV12 图像帧;

程序获取图像 Buffer,可以保存 NV12 图片,或者送入 BPU 推理。

✅ 功能:获取相机 原始 YUV 图像,不编码(原始文件)、不直接显示。

❌ 不包含编码、显示模块。

定位:最底层采集基础 Demo

典型用途:双目 VIO 采集、BPU 目标检测开发、抓取原始图像做算法调试。

2. vio2encoder

数据源:MIPI CSI 相机

完整链路 CSI→ISP 采集 NV12 → VPU 硬件编码器 → H.264/H.265 码流输出。

码流可以写入本地.h264/.h265文件,也可以提供给程序做 RTSP 推流。

✅ 功能:实时把相机画面压缩成视频码流。

❌ 默认不预览画面(没有 Display 模块)。

典型用途:机器人本地录像、相机视频编码存储。

3. vio2display

数据源:MIPI CSI 相机

完整链路 CSI→ISP 采集 NV12 → VO 硬件流水线 → HDMI 显示器实时输出画面。

✅ 功能:相机画面实时硬件预览,零拷贝、低延迟。

拓展:可加入 Splitter 分流,一路显示、一路送入 BPU 做 AI 感知。

典型用途:机器人实时视觉预览、调相机曝光焦距。

4. decode2display

数据源本地 H264/H265 码流文件(裸流 / MP4)

完整链路 码流文件读取 → VPU 硬件解码器(被需要CPU解码) → NV12 → VO 硬件显示。

✅ 功能:回放本地录像文件,HDMI 播放。

典型用途:机器人录制的录像文件本地回放测试。

5. rtsp2display

数据源:网络 RTSP 视频流(IPC、PC ffmpeg、RTSP 服务器)

完整链路 网络拉取 RTSP (RTP 包) → 组 NAL 单元 → VPU 硬件解码 → NV12 → VO HDMI 显示。

✅ 功能:远程网络摄像头实时预览。

典型用途:机器人外接网络 IPC 摄像头监控。

二、五大 Demo 核心对比表(PPT 直接使用)

表格

示例名称图像数据源核心链路输出产物核心用途是否经过 VPU 编解码
vio_captureMIPI CSI 相机

CSI→ISP,

输出 NV12 裸图

NV12 图像帧获取相机原始图像,供给 BPU 推理❌ 无编码、无解码
vio2encoderMIPI CSI 相机CSI→ISP→VPU 编码器H264/H265 码流文件相机画面实时编码、本地录像编码(VPU 硬件编码)
vio2displayMIPI CSI 相机CSI→ISP→VO 显示HDMI 实时画面MIPI 相机实时预览❌ 无编码、无解码
decode2display本地 h264/h265 码流文件码流→VPU 解码器→VO 显示HDMI 实时画面本地录像文件回放解码(VPU 硬件解码)
rtsp2display网络 RTSP 流网络 RTSP 拉流→VPU 解码器→VO 显示HDMI 实时画面远程网络 IPC 实时预览解码(VPU 硬件解码)

三、通俗逻辑归类(便于记忆)

第一大类:数据源来自【本地 MIPI 相机】

  1. vio_capture:只抓原图(原料)
  2. vio2display:原料直接投屏预览
  3. vio2encoder:原料压缩做成视频文件

第二大类:数据源来自【已经压缩好的视频码流】(必须解码)

  1. decode2display:码流来源于本地硬盘文件
  2. rtsp2display:码流来源于网络 RTSP 服务器

四、工程选型快速口诀

  1. 使用板载 MIPI 相机,只想实时看画面 → vio2display
  2. 使用 MIPI 相机,需要保存视频录像 → vio2encoder
  3. 使用 MIPI 相机,拿到图像送入 BPU 做目标检测 → vio_capture
  4. 回放机器人录制好的 h264 录像文件 → decode2display
  5. 拉取网络 IPC 摄像头(RTSP)实时预览 → rtsp2display

五、拓展链路互通关系(重要开发知识点)

所有 Demo 共享同一套硬件流水线组件: 采集源(vio_capture)、编码器、解码器、Splitter 分流器、Display 显示 可以自由组合拓展: 示例拓展 1:vio_capture + splitter → 一路 vio2display 预览,一路送入 BPU 推理(机器人标准视觉感知链路) 示例拓展 2:vio2encoder 生成 h265 文件,后续使用 decode2display 回放

六、精简总结

vio_capture、vio2encoder、vio2display 数据源均为板载 MIPI 相机;

vio_capture 仅采集原始 NV12 图像;

vio2display 实现相机画面 HDMI 实时预览;

vio2display 将相机图像硬件编码生成视频码流。

decode2display、rtsp2display 都依赖硬件解码器:

decode2display 读取本地码流文件解码回放;

rtsp2display 通过网络拉取 RTSP 流进行解码预览。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐