我在使用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。
另外两个思路:
- 示例是源码形式(
/app/cdev_demo/vio_capture/capture.c),可以改代码里打开的相机设备后make重编,实现指定某一路。 - 如果只是想分别抓两路的 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
参考文档:
- V4L2 使用(模式切换、CAM0/CAM1 选择、设备节点表):V4L2 使用 | RDK X3/X5 DOC
- vio_capture 示例:vio_capture 示例介绍 | RDK X3/X5 DOC
您好,我再interface options里面选项最多到I6 IMU,并没有I7 V4L2,请问需要通过什么配置可以让这个选项出现?
没有 I7 V4L2 一般是 srpi-config / 系统镜像版本偏旧——V4L2 是较新系统版本才加入的选项,旧版 Interface Options 里只到 I6 IMU。
按这个顺序处理:
- 先看系统版本:
cat /etc/version
-
尝试在线更新 srpi-config 工具:
sudo srpi-config→ 最底部Update,更新完重新进3 Interface Options看是否出现I7 V4L2。 -
如果系统版本较旧,直接升级到最新镜像(在线升级或重烧最新系统),V4L2 选项就有了。
另外补充一点:如果只是想让 vio_capture 这类例程切换 cam0/cam1,不一定非要 V4L2 模式——例程会根据 srpi-config 里的 camera 配置自动选择摄像头(cam0/cam1 都配置时默认选 cam1),把 camera 配置改对再重启即可。
参考文档:
- V4L2 使用(含模式切换步骤):V4L2 使用 | RDK X3/X5 DOC
- srpi-config 工具配置:2.2 srpi-config 工具配置 | RDK X3/X5 DOC
您好,我是3.0.0版本,update以后版本号没有变化,请问在哪里可以下载离线镜像?下载以后如何安装?
apt update/upgrade 只更新软件包,不会改系统镜像版本号(cat /etc/version 里那个),版本号只有重新烧录新镜像才会变。
离线镜像在这里下载:
RDK X5 系统镜像(选最新日期的 zip,解压出 .img)
烧录方法(Windows 用 Rufus 或 RDK Studio 写 SD 卡,也支持 XBurn 写 eMMC):
烧录系统镜像 | RDK X3/X5 DOC
烧完开机后两个注意点:
cat /etc/version # 确认版本号已更新
sudo rdk-miniboot-update # 官方要求更新系统后同步升级 NAND 固件