【求助】【RDK X5】capture工具如何切换相机

我在使用RDK X5的capture抓取raw和yuv的时候,发现他只能抓取一个摄像头的图像,无法切换到另外一个摄像头,请问各位大佬有没有切换另外一个摄像头的方法?

capture(/app/cdev_demo/vio_capture)本身没有选相机的参数(只有 -b/-c/-h/-w),它是根据 srpi-config 里的摄像头配置自动选路的,所以切换相机要改配置而不是改命令:

sudo srpi-config
# 3 Interface Options → 摄像头/V4L2 相关配置项,切换 CAM0 / CAM1
# 配置完重启板卡生效

注意:X5 RDK 上 cam0 靠近网口、cam1 远离网口;如果 cam0/cam1 都配置了,示例默认选 cam1。

另外两个思路:

  1. 示例是源码形式(/app/cdev_demo/vio_capture/capture.c),可以改代码里打开的相机设备后 make 重编,实现指定某一路。
  2. 如果只是想分别抓两路的 raw/yuv,切到 V4L2 sif-isp-vse 模式更方便,每路相机有独立的 video 节点,直接用 v4l2-ctl 指定设备抓取(CSI0 是 /dev/video0(SIF)/video4(ISP),CSI1 是 /dev/video1/video5):
v4l2-ctl -d /dev/video5 \
        --set-fmt-video=width=640,height=480,pixelformat=NV12 \
        --stream-mmap=3 --stream-skip=3 \
        --stream-to=/tmp/nv12.yuv --stream-count=1 --stream-poll

参考文档:

您好,我再interface options里面选项最多到I6 IMU,并没有I7 V4L2,请问需要通过什么配置可以让这个选项出现?

没有 I7 V4L2 一般是 srpi-config / 系统镜像版本偏旧——V4L2 是较新系统版本才加入的选项,旧版 Interface Options 里只到 I6 IMU

按这个顺序处理:

  1. 先看系统版本:
cat /etc/version
  1. 尝试在线更新 srpi-config 工具:sudo srpi-config → 最底部 Update,更新完重新进 3 Interface Options 看是否出现 I7 V4L2

  2. 如果系统版本较旧,直接升级到最新镜像(在线升级或重烧最新系统),V4L2 选项就有了。

另外补充一点:如果只是想让 vio_capture 这类例程切换 cam0/cam1,不一定非要 V4L2 模式——例程会根据 srpi-config 里的 camera 配置自动选择摄像头(cam0/cam1 都配置时默认选 cam1),把 camera 配置改对再重启即可。

参考文档:

您好,我是3.0.0版本,update以后版本号没有变化,请问在哪里可以下载离线镜像?下载以后如何安装?

apt update/upgrade 只更新软件包,不会改系统镜像版本号(cat /etc/version 里那个),版本号只有重新烧录新镜像才会变。

离线镜像在这里下载:
:backhand_index_pointing_right: RDK X5 系统镜像(选最新日期的 zip,解压出 .img)

烧录方法(Windows 用 Rufus 或 RDK Studio 写 SD 卡,也支持 XBurn 写 eMMC):
:backhand_index_pointing_right: 烧录系统镜像 | RDK X3/X5 DOC

烧完开机后两个注意点:

cat /etc/version        # 确认版本号已更新
sudo rdk-miniboot-update  # 官方要求更新系统后同步升级 NAND 固件