MPP¶
MPP 源码:https://github.com/rockchip-linux/mpp
MPP(Media Process Platform)是 Rockchip 平台的硬件编解码框架,提供 4K 超高清视频的硬编码与硬解码能力。适用于 Debian / Ubuntu 系统。
规格总览¶
硬件解码¶
| 编码格式 | 规格 | 最高分辨率/帧率 |
|---|---|---|
| H.265 HEVC | Main10 L5.1 yuv444 | 4K@120fps |
| H.264 AVC | High10 L5.1 yuv422 | 4K@60fps |
| H.264 MVC | — | 1080P@60fps |
| VP9 | Profile 0/2 L5.1 | 4K@120fps |
| AVS2 | Profile 0/2 L10.2.6 | 4K@120fps |
| AV1 | Main10 L5.3 | 4K@120fps |
硬件编码¶
| 编码格式 | 最高分辨率/帧率 |
|---|---|
| H.264 AVC | 4K@60fps |
| H.265 HEVC | 4K@60fps |
调试信息¶
开启调试:
开启后调用硬件编解码时,dmesg 会输出每帧耗时:
[ 893.134037] rk_vcodec: 27b00100.rkvdec:0 session 3705:19 time: 1333 us hw 1312 us
[ 893.167444] rk_vcodec: 27b00100.rkvdec:0 session 3705:19 time: 1381 us hw 1313 us
[ 893.200503] rk_vcodec: 27b00100.rkvdec:0 session 3705:19 time: 1420 us hw 1313 us
Note
time:软硬件整体耗时;hw:纯硬件耗时
关闭调试:
硬编码测试¶
使用 mpi_enc_test 工具进行硬件编码测试,结果通过 tail -f /var/log/syslog 查看。
H.264 编码 —— 4K 100 帧:
输出示例:
kickpi mpp[3557]: mpi_enc_test: chn 0 encode 100 frames time 3763 ms delay 27 ms fps 26.57 bps 10605252
H.265 编码 —— 4K 100 帧:
输出示例:
kickpi mpp[3560]: mpi_enc_test: chn 0 encode 100 frames time 4086 ms delay 36 ms fps 24.47 bps 19594276
硬解码测试¶
使用 mpi_dec_test 工具进行硬件解码测试,结果同样通过 tail -f /var/log/syslog 查看。
H.264 解码 —— 4K 100 帧:
输出示例:
H.265 解码 —— 4K 100 帧:
输出示例:
浏览器视频测试(Chromium)¶
板卡连接显示器,在终端中执行以下命令启动 Chromium 视频测试:
若 Chromium 未调用硬解码,执行修复脚本:
Note
配置后 Chromium 默认调用硬解码。
GStreamer 视频测试¶
日志中出现 mpp 字样即表示硬件解码已成功调用。
sudo GST_DEBUG=2 gst-launch-1.0 playbin uri=file:///usr/local/test.mp4 video-sink="autovideosink" audio-sink=fakesink
若需要 GStreamer 调用硬解码,执行修复脚本(需联网):
兼容性说明:Ubuntu 系统中 Rockchip Chromium 与 GStreamer 的硬解码配置存在互斥。默认优先配置 Chromium 硬解码。如需切换至 GStreamer,请执行上方的修复脚本。