抱歉,我之前的建议有矛盾!
让我重新梳理清楚:
核心矛盾点
| 摄像头 | 60fps 支持 | mclk 问题 | 真实情况 |
|---|---|---|---|
| OV5647 | 有 | 无解 | |
| IMX477 | 同样有 | 换了也可能会遇到同样问题 |
我之前说 IMX477 能完美支持 60fps 是不准确的 —— 从社区帖子 topic/28668 来看,IMX477 在 RDK X5 上也有驱动问题,需要设备树补丁。
真实情况
OV5647 60fps 无解的根因
open_cam 库内部硬编码 → VSE 输出强制正方形 (640×640)
OV5647 60fps 输出 → 640×480 (4:3)
尺寸不匹配 → ret(-10)
这不是配置问题,是库的设计限制,改 json 没用。
IMX477 的情况
BSP 确实有 1280×960@120fps 配置
但如果你的板卡 vcon 接口缺少 mclk 配置,IMX477 也会报同样的 hbn_vnode_set_attr failed, ret(-10)
成本 300-500 元,远高于 OV5647
诚实的建议
方案 A:OV5647 30fps(推荐)
sudo ./vio2display -w 1280 -h 960
- 30fps 对小车控制完全够用(控制周期通常 20-50ms)
- 不用花钱,不用折腾
- 直接回去调试小车
方案 B:换 IMX477(不推荐)
- 可能遇到同样的 mclk 问题
- 需要等官方 dtbo 补丁
- 成本高,时间成本更高
方案 C:改底层 API(高难度)
- 绕过 open_cam,直接用 VIO C API
- 需要修改源码重新编译
- 开发成本 1-2 周
最终结论
OV5647 60fps 在 RDK X5 上确实无解,这是 open_cam 库的设计限制。
IMX477 不是银弹,可能遇到同样的设备树问题,且成本更高。
建议:用 OV5647 30fps 模式,直接调试小车应用层。 30fps 对 PID 控制、视觉推理都绰绰有余。
你在原帖的总结非常准确,就按那个结论沉淀吧!![]()