VPU使用指南

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


VPU 是什么

VPU(Video Processing Unit,视频处理单元)是 RK3576 集成的 专用视频编解码硬件。它独立于 CPU 工作,专门负责 H.264、H.265、AV1、VP9、JPEG 等视频/图像的编码与解码。

没有 VPU 会怎样? 播放高清视频时 CPU 要满负荷软件解码,容易卡顿、发热、耗电;有了 VPU,解码完全由硬件完成,CPU 可以空闲处理其他任务,4K 视频也能流畅播放。

VPU 能做什么(使用场景)

场景

说明

对应操作

播放视频

硬解 H.264/H.265/AV1/VP9 视频

GStreamer 播放

录制视频

摄像头画面硬编码成 H.264 文件

GStreamer 编码

视频转码

一种格式转成另一种

解码+编码串联

视频推流

实时编码后网络传输

编码 + UDP 输出

在 M2 上使用 VPU

场景 1:硬件解码播放视频(最常用)

板载测试视频直接硬解播放:

# 播放板载 720p 测试视频(硬件解码)
gst-launch-1.0 filesrc location=/oem/SampleVideo_1280x720_5mb.mp4 ! \
  qtdemux ! h264parse ! mppvideodec ! waylandsink

部分

作用

filesrc

读取视频文件

qtdemux

解封装(拆出 H.264 流)

h264parse

解析 H.264 码流

mppvideodec

VPU 硬件解码(关键)

waylandsink

显示到屏幕(GPU 渲染)

播放流畅、CPU 占用低(可用 top 观察,解码进程 CPU 占用应很低),说明 VPU 在工作。

场景 2:硬件编码(把画面录成视频)

把测试画面硬编码为 H.264 文件:

# 生成 30 帧测试画面并硬编码成 H.264
gst-launch-1.0 videotestsrc num-buffers=30 ! videoconvert ! \
  video/x-raw,format=NV12,width=640,height=480 ! \
  mpph264enc ! filesink location=/tmp/test.h264

# 查看生成的文件
ls -la /tmp/test.h264

也可以把硬解的视频重新硬编码(转码):

gst-launch-1.0 -e filesrc location=/oem/SampleVideo_1280x720_5mb.mp4 ! \
  qtdemux ! h264parse ! mppvideodec ! videoconvert ! \
  video/x-raw,format=NV12 ! mpph264enc ! filesink location=/tmp/out.h264

场景 3:解码性能测试(验证 VPU 速度)

用 MPP 自带的解码测试工具看 VPU 每秒能解多少帧:

# 解码 200 帧 720p H.264 裸流
mpi_dec_test -i /oem/200frames_count.h264 -t 7 -w 1280 -h 720 -n 200 -v f

M2 实测结果:

分辨率

格式

并发数

帧率

实时倍速

1280x720

H.264

1 路

3003 fps

100x

1920x1080

H.264

1 路

2962 fps

124x

1280x720

H.264

4 路并发

2907 fps/路

97x/路

1280x720

H.264

8 路并发

2840 fps/路

95x/路

8 路 720p 并发解码毫无压力,适合 NVR/多路监控场景。

VPU 支持的格式(M2 / SMARC 相同)

类型

格式

GStreamer 插件

解码

H.264 / H.265 / AV1 / VP8 / VP9 / MPEG4

mppvideodec

解码

JPEG

mppjpegdec

编码

H.264

mpph264enc

编码

H.265

mpph265enc

编码

JPEG

mppjpegenc

环境确认(一步检查 VPU 是否就绪)

# VPU 设备节点存在
ls /dev/mpp_service

# GStreamer 硬件插件存在
gst-inspect-1.0 | grep -i rockchipmpp
# 预期输出:mpph264enc / mpph265enc / mppjpegdec / mppjpegenc / mppvideodec

SMARC(Buildroot)使用说明

SMARC 板的 VPU 与 M2 完全相同(同一颗 RK3576),上述所有命令 直接复用

唯一差异:库路径不同。

# M2 (Debian): /usr/lib/aarch64-linux-gnu/librockchip_mpp.so*
# SMARC (Buildroot): /usr/lib/librockchip_mpp.so*

常见问题

问题

解决

播放黑屏/无画面

确认在图形桌面会话运行;waylandsink 需要 Wayland 环境

提示 mppvideodec 不存在

安装 gstreamer1.0-rockchip1(两平台预装)

编码报 invalid format

输入像素格式需为 NV12(加 video/x-raw,format=NV12

解码花屏

输入需为 H.264 裸流或 mp4 容器(先 qtdemux 解封装)