RDK S100P没有能解决用摄像头扩展版同时启动两个MIPI摄像头的办法,现在只能一前一后启动
我来帮你搜索一下社区中关于 RDK S100P 双 MIPI 摄像头同时启动的相关问题和解决方案。
你好 @Kunn,
针对你提到的 RDK S100P 使用摄像头扩展板无法同时启动两个MIPI摄像头 的问题,社区已有类似案例并找到解决方案。
核心结论
hobot_vio.libsrcampy 的 Python 示例默认仅支持单路摄像头开启。 若要同时启动双路 MIPI摄像头,需使用底层 HBN (Horizon Board Network) 的多路管道(multi-pipe)Demo。
解决方案步骤
1. 原因分析
你当前使用的 libsrcampy 封装接口在并发打开多个 Camera 实例时,底层 ISP 资源(如 vp_isp_init)会发生冲突,导致报错 -851978 或 -10。这是接口封装层的限制,而非硬件不支持。
2. 推荐方案:使用 HBN Multi-Pipe Demo
参考社区已验证的解决方案(见帖子 RDK S100 MIPI扩展板 无法同时打开两个相机),请改用官方提供的 C++ 多路管道示例。
- 示例路径:通常在 SDK 的
sample_pipeline中。 - 关键 Demo:
multi_pipe_vin_isp_ynr_pym_gdc_vpu- 该 Demo 专门设计用于处理多路视频输入(VIN)、ISP 处理及后续流水线,支持同时开启多个 Sensor。
3. 操作建议
- 查阅文档:访问 RDK S100 多媒体开发文档 - sample_pipeline 使用说明。
- 编译运行:
# 进入示例目录 (路径可能因 SDK 版本略有不同) cd /path/to/your/sdk/sample_pipeline # 编译 multi_pipe 示例 mkdir build && cd build cmake .. make -j4 # 运行双路测试 (具体参数请参考该 Demo 的 README 或 --help) ./multi_pipe_vin_isp_ynr_pym_gdc_vpu --cam0 <config> --cam1 <config> - 配置调整:确保你的设备树(DTS)或传感器配置文件已正确加载两个MIPI 通道的参数(通常官方扩展板已预配置,若使用第三方 Sensor 需检查 DTS)。
补充排查
如果必须使用 Python 开发,目前官方尚未提供直接支持双路并发的 Python 高阶 API。你可以:
- 方案 A:基于 C++ Demo 封装 Python 接口(通过 pybind11 等)。
- 方案 B:使用 V4L2 直接操作(你提到的尝试),但这需要自行处理 ISP 参数和同步,难度较大,不推荐作为首选。
建议先跑通 C++ 的 multi_pipe 示例,确认硬件链路正常后,再考虑上层应用集成。
如有具体报错或编译问题,欢迎贴出日志继续交流!