媒体(视频编解码)排障分三层:底层是MPP (VPU硬解硬编库),中层是GStreamer (管道/插件),上层是零拷贝(dmabuf)这种性能优化手段。本文按这三层把"硬解失败、管道跑不起来、零拷贝反而卡"讲清楚。

三层各有各的报错:MPP层看错误码(MPP_ERR_*)、GStreamer层看管道协商与GST_DEBUG、零拷贝看buffer类型与内存路径。先判断问题在哪一层,再对症。本文基于触觉智能Purple Pi OH2开发板讲解和调试,为大家整理一套多媒体排障全链路指南!
上篇我们把 MPP 裸跑通了:mpi_dec_test 退出码 0、dmesg 里没有 rkvdec timeout,说明 VPU 硬件通路没问题。
但到了 GStreamer 这一层,新的坑才开始------
- 管道建不起来,报
not negotiated - 能跑但黑屏,kmssink / ximagesink 没接对
- 明明开了「零拷贝」,CPU 占用反而没降,甚至更卡
这类问题不再属于 MPP,而属于中间件协商 和内存路径:
caps 对没对上、mppvideodec 有没有真走硬解、buffer 是不是真的 memory:DMABuf、有没有偷偷 fallback 成 memcpy。
本篇(下)就接着上篇的通路验证,把 GStreamer 管道排障 + 零拷贝/dmabuf 那层讲清楚,同样每条命令在 RK3576 上可复现。

RK3576板端实测记录
以下环境触觉智能Purple Pi OH2(RK3576开发板)+Debian Bookworm(内核 6.1.99,arm64)上通过adb直连执行,本文三层结论均得到验证;每一条都可在你的板上直接复制运行:
| 验证项 | 命令(adb shell ...) | 实测结果 |
|---|---|---|
| MPP 硬编 | mpi_enc_test -w 1280 -h 720 -t 7 -n 30 -o /tmp/t.h264 | 生成有效 H.264,退出码 0 |
| MPP 硬解 | mpi_dec_test -t 7 -n 200 -i /tmp/t.h264 | 退出码 0 |
| GStreamer硬解 | GST_DEBUG=2 gst-launch-1.0 filesrc location=/tmp/t.h264 ! h264parse ! mppvideodec ! fakesink | 日志见 gstmppdec / RGA enabled,退出 0 |
| 插件注册 | gst-inspect-1.0 mppvideodec | rockchipmpp 1.14.4,HEVC/AVC/VP8/VP9 硬解 |
| 零拷贝 caps | gst-inspect-1.0 mppvideodec | grep -E "DMABuf|arm-afbc" | video/x-raw(memory:DMABuf)、arm-afbc: 1 |
| 设备节点 | ls /dev/mpp_service /dev/video-dec0 /dev/video-enc0 /dev/rga | 全部存在 |
| VPU 超时复位 | dmesg | grep -i rkvdec | 捕获 rkvdec2 超时 → 自动复位日志 |
-
官方文档依据
docs/cn/Common/MPP/Rockchip_Developer_Guide_MPP_CN.pdfdocs/cn/Linux/Multimedia/Rockchip_User_Guide_Linux_Gstreamer_CN.pdfRockchip_User_Guide_Linux_Rockit_CN.pdfdocs/cn/Common/MEMORY/Rockchip_Developer_Guide_Linux_DMABUF_CN.pdf。
-
SDK源码依据
external/mpp/(mpi.cpp、mpp/codec/{dec,enc}、inc/{rk_mpi.h, rk_mpi_cmd.h, mpp_buffer.h, mpp_frame.h, mpp_packet.h, mpp_task.h, mpp_err.h, mpp_log.h})external/gstreamer-rockchip/gst/(gstmppvideodec.c、gstmppjpegdec.c、gstmpph264enc.c、gstmpph265enc.c、gstmppvp8enc.c、gstkmssrc.c、gstmppallocator.c、gstkmsallocator.c)
Purple Pi OH2开发板,是触觉智能RK3576核心板SOM7609系列配套的评估开发板,搭载4核A72+4核A53+M0多核异构处理器,主频2.2GHz,集成6Tops算力 NPU,轻松应对AI推理、边缘计算与轻量级AI端侧学习。配套完善SDK、丰富资料与Demo,有助于项目前期快速开发验证。