Miloco v0.1.7:Rockchip MPP+RGA 硬件加速支持
本文介绍了在Rockchip RK3566等设备上配置MPP+RGA硬件加速的方法,用于提升摄像头解码性能并降低CPU负载。关键步骤包括:Docker部署时挂载设备节点与库文件、服务端配置启用硬件加速、通过日志和系统文件验证MPP/RGA是否正常工作。实测在RK3566设备上可降低20%-30%的CPU负载,并提供了常见问题排查方法,如权限检查、路径确认等。项目地址:https://github.
v0.1.7 主要带来 Rockchip MPP+RGA 硬件加速,用于摄像头解码链路的性能提升与 CPU 降载。本文记录在 RK3566 等 Rockchip 设备上的配置方法、验证方式与常见问题排查。
项目地址:https://github.com/huangyajie/xiaomi-miloco
1. 适用场景与硬件前提
- 适用平台:Rockchip RK 系列(如 RK3566/RK3588)
- 依赖能力:内核提供
/dev/mpp_service与/dev/rga - 依赖库:
librockchip_mpp.so与librga.so
2. Docker 部署关键配置
需要在 docker-compose 为后端容器挂载 设备节点与库文件,如下所示:
services:
backend:
# ...
devices:
- /dev/mpp_service:/dev/mpp_service
- /dev/rga:/dev/rga
privileged: true
volumes:
- /usr/trim/lib/mediasrv/librockchip_mpp.so.1:/usr/lib/aarch64-linux-gnu/librockchip_mpp.so.1:ro
- /usr/trim/lib/mediasrv/librga.so.2:/usr/lib/aarch64-linux-gnu/librga.so.2:ro
注意事项:
devices必须映射进容器privileged: true推荐开启(权限不足会导致初始化失败)volumes的路径按系统实际位置调整
3. 服务端配置开启硬件加速
在 config/server_config.yaml 中启用:
camera:
frame_interval: 500
hw_accel:
enabled: true
backend: "rockchip"
说明:
enabled为全局开关,对米家摄像头与 RTSP 摄像头统一生效backend必须是"rockchip"
4. 启动验证(日志)
启动后应该看到以下日志(关键两行):
miot.rockchip_hwaccel - INFO - Loaded rockchip hwaccel library: /app/miot_kit/miot/libs/linux/arm64/librockchip_hwaccel.so
miot.decoder - INFO - rockchip hwaccel enabled
若只有 video decoder created 而没有 rockchip hwaccel enabled,表示没有走硬解。
5. 进阶验证:MPP 会话是否创建(优先确认)
除了看日志,还可以直接检查 MPP 是否建立了解码会话:
sudo cat /proc/mpp_service/sessions-summary
示例输出:
session: pid=183129 index=18
device: fdf80200.rkvdec
memory: 10 MiB
session: pid=183128 index=19
device: fdf80200.rkvdec
memory: 5 MiB
说明:
device: fdf80200.rkvdec表示 RK 硬件解码器正在工作- 出现
pid与memory说明 MPP 已成功分配解码资源 - 如果没有
rkvdec会话,通常是权限/设备节点/库挂载问题
6. 负载验证(RGA)
查看 RGA 负载:
sudo cat /sys/kernel/debug/rkrga/load
注意:
load为瞬时值,0% 或 1% 不代表未使用- 因为解码链路只在抽帧时触发 RGA,负载常常很低
- 需要放大效果可降低
frame_interval
7. 实测收益
在 RK3566 上实测 2 路摄像头场景,启用 MPP+RGA 后 CPU 降低约 20%-30% 左右。
8. 常见问题排查
8.1 摄像头没有硬解
- 检查是否出现
rockchip hwaccel enabled - 若
init failed,通常是权限或库路径问题
8.2 RGA 负载始终为 0
frame_interval太大导致触发次数极少- 测试时可调小为 50ms 验证
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐



所有评论(0)