RDK S100P没有能解决用摄像头扩展版同时启动两个MIPI摄像头的办法,现在只能一前一后启动

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 中。
  • 关键 Demomulti_pipe_vin_isp_ynr_pym_gdc_vpu
    • 该 Demo 专门设计用于处理多路视频输入(VIN)、ISP 处理及后续流水线,支持同时开启多个 Sensor。

3. 操作建议

  1. 查阅文档:访问 RDK S100 多媒体开发文档 - sample_pipeline 使用说明
  2. 编译运行
    # 进入示例目录 (路径可能因 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>
    
  3. 配置调整:确保你的设备树(DTS)或传感器配置文件已正确加载两个MIPI 通道的参数(通常官方扩展板已预配置,若使用第三方 Sensor 需检查 DTS)。

补充排查

如果必须使用 Python 开发,目前官方尚未提供直接支持双路并发的 Python 高阶 API。你可以:

  • 方案 A:基于 C++ Demo 封装 Python 接口(通过 pybind11 等)。
  • 方案 B:使用 V4L2 直接操作(你提到的尝试),但这需要自行处理 ISP 参数和同步,难度较大,不推荐作为首选。

建议先跑通 C++ 的 multi_pipe 示例,确认硬件链路正常后,再考虑上层应用集成。

如有具体报错或编译问题,欢迎贴出日志继续交流!