CAMERA

规格

主板
接口
模块
规格

K1

MIPI_CSI

gc5035

4 Lane x1 or 2 Lane x2

K1B

MIPI_CSI

gc5035

4 Lane x1 or 2 Lane x2

K3

MIPI_CSI_RX0、MIPI_CSI_RX1

gc5035

4 Lane x2 or 2 Lane x4

K7 (< 2.0)

MIPI_CSI0、MIPI_CSI1、MIPI_CSI3

null

4 Lane x3

K7 (>= 2.0)

MIPI_CSI0、MIPI_CSI1、MIPI_CSI3

imx415

4 Lane x3

K7C

MIPI_CSI0、MIPI_CSI1、MIPI_CSI3

imx415

4 Lane x3

Android/Linux dts配置

RK3562

kernel-5.10/arch/arm64/boot/dts/rockchip/rk3562-kickpi-mipi-camera0.dtsi
kernel-5.10/arch/arm64/boot/dts/rockchip/rk3562-kickpi-mipi-camera1.dtsi

RK3568

kernel-5.10/arch/arm64/boot/dts/rockchip/rk3568-kickpi-mipi-camera-gc5035.dtsi

RK3576

添加摄像头配置,cam0 ~ cam3 对应原理图的 MIPI-CSI_0 ~ MIPI-CSI_3。

Android / Linux dtsi 文件路径

rk3576-kickpi-k7-cam0.dtsi 对应 MIPI-CSI_0

rk3576-kickpi-k7-cam1.dtsi 对应 MIPI-CSI_1

rk3576-kickpi-k7-cam3.dtsi 对应 MIPI-CSI_3

单摄像头配置

使用 MIPI-CSI_0 接口接入 imx415,仅单个摄像头。

多摄像头配置

使用 MIPI-CSI_0 、MIPI-CSI_1、MIPI-CSI_3 接口都接入 imx415,共三个摄像头。

Armbian dts 配置

RK3576

目前 Armbian ISP 存在问题,不建议使用

添加摄像头配置,cam0 ~ cam3 对应原理图的 MIPI-CSI_0 ~ MIPI-CSI_3。

Armbian dtsi 文件路径

rk3576-kickpi-k7-cam0.dtsi 对应 MIPI-CSI_0

rk3576-kickpi-k7-cam1.dtsi 对应 MIPI-CSI_1

rk3576-kickpi-k7-cam3.dtsi 对应 MIPI-CSI_3

多摄像头配置

使用 MIPI-CSI_0 、MIPI-CSI_1、MIPI-CSI_3 接口都接入 imx415,共三个摄像头。

v4l2-ctl 测试

安装工具

查看摄像头节点

示例:

通过 rkisp_mainpath 可知有两个摄像头,可操作对应的第一个设备/dev/video33 和 /dev/video42

查看摄像头信息

示例

查看摄像头帧率

示例

  1. v4l2-ctl -d /dev/video33

  • v4l2-ctl:Video4Linux2 控制工具,用于配置和控制 V4L2 兼容的视频设备

  • -d /dev/video33:指定操作的视频设备为 /dev/video33

  1. --set-fmt-video=width=1920,height=1080,pixelformat='MJPG' 配置视频输出格式:

  • width=1920,height=1080:设置视频分辨率为 1920x1080(1080P)

  • pixelformat='MJPG':设置像素格式为 MJPEG( Motion JPEG,一种压缩格式)

  1. --stream-mmap=4

  • 启用内存映射(mmap)方式捕获视频流

  • =4 表示分配 4 个缓冲区用于流捕获(多缓冲区可以减少帧丢失)

  1. --set-selection=target=crop,flags=0,top=0,left=0,width=1920,height=1080 设置视频裁剪区域:

  • target=crop:指定操作对象为裁剪区域

  • flags=0:无特殊标志(默认)

  • top=0,left=0,width=1920,height=1080:设置裁剪区域从左上角 (0,0) 开始,大小为 1920x1080(即使用完整画面,不裁剪)

  1. --stream-count=500 指定捕获的视频帧数为 500 帧,捕获完成后自动停止

gstreamer 测试

安装工具

命令行摄像头捕获图片

命令行摄像头预览

由于 ISP 问题,Armbian系统目前摄像头预览异常。

autovideosink 方式

例如:

gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=800,height=600,framerate=30/1 ! videoconvert ! autovideosink

gst-launch-1.0 v4l2src device=/dev/video33 ! video/x-raw,format=NV12,width=800,height=600,framerate=30/1 ! videoconvert ! autovideosink

gst-launch-1.0 v4l2src device=/dev/video42 ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! videoconvert ! autovideosink

gst-launch-1.0 v4l2src device=/dev/video51 ! video/x-raw,format=NV12,width=1600,height=960,framerate=30/1 ! videoconvert ! autovideosink

waylandsink 方式(gome wayland 架构桌面使用该方式进行预览)

例如:

gst-launch-1.0 v4l2src device=/dev/video33 ! video/x-raw,width=800,height=600,framerate=30/1 ! videoconvert ! waylandsink

gst-launch-1.0 v4l2src device=/dev/video42 ! video/x-raw,width=1280,height=720,framerate=30/1 ! videoconvert ! waylandsink

gst-launch-1.0 v4l2src device=/dev/video51 ! video/x-raw,width=1600,height=960,framerate=30/1 ! videoconvert ! waylandsink

示例:

1、先查看摄像头规格;查看摄像头查看摄像头信息查看摄像头帧率

2、指定摄像头头节点进行预览;

3、使用 gst-launch-1.0 工具 autovideosink 方式预览 /dev/video33 摄像头。

  1. gst-launch-1.0 GStreamer 的命令行工具,用于快速构建和运行 GStreamer 管道。

  2. v4l2src device=/dev/video33

    • v4l2src:视频 4Linux2 源元件,用于从符合 V4L2 标准的视频设备(如摄像头)捕获数据

    • device=/dev/video33:指定要使用的视频设备文件,这里是 /dev/video33(不同设备的摄像头编号可能不同)

  3. video/x-raw,format=NV12,width=800,height=600,framerate=30/1 这是一个Caps(功能描述),用于指定视频格式:

    • video/x-raw:表示原始未压缩视频

    • format=NV12:视频像素格式为 NV12(一种常见的 YUV 格式,适合硬件加速)

    • width=800,height=600:视频分辨率为 800x600

    • framerate=30/1:帧率为 30 帧 / 秒

  4. videoconvert 视频格式转换元件,用于将输入视频格式转换为后续元件支持的格式(这里主要是为了适配显示元件的需求)

  5. autovideosink 自动选择合适的视频输出元件,会根据系统环境自动选择最佳的视频显示方式(如 X11、Wayland 或直接渲染等)

Linux Camera

rkaiq 源码路径

编译 camera-engine-rkaiq

第一步,删除 BR2_ARCH_NEEDS_GCC_AT_LEAST_9

第二步,创建低版本的 GCC 和 GLIBC 编译

第三步,编译

第四步,将生成的 tar 放到主板根目录

第五步,在主板上解压并重启

Android APP

Camera2 APP 源码路径。

Android ISP 适配

参考 imx415 其他 Profiles 配置对应设备 m02 。更多详解文档参考章节。

Android 测试

以双路摄像头为例,前置+后置摄像头。

1、打开 Camera APP。

image-20250813152220642

2、切换前置和后置摄像头,需要点击3个小点配置。

image-20250813152323711

3、点击按钮,切换前置和后置摄像头。

image-20250813152343947

文档参考

Rockchip 官方提供了 Camera 相关文档,包含在源码SDK中。

Android 源码文档路径

Linux 源码文档路径

Last updated