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*
常见问题¶
问题 |
解决 |
|---|---|
播放黑屏/无画面 |
确认在图形桌面会话运行; |
提示 mppvideodec 不存在 |
安装 |
编码报 invalid format |
输入像素格式需为 NV12(加 |
解码花屏 |
输入需为 H.264 裸流或 mp4 容器(先 qtdemux 解封装) |