MIPI摄像头

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


本文档详细介绍了 Quectel Pi M1/L1 智能主控板 MIPI CSI 摄像头接口的识别与连接方法,并提供了功能使用指导及常见问题解决方案。

支持配件

原始配件 FPC 排线并未连接相机,需要手动连接,注意连接时排线金手指朝向板内金属接触面(金手指面朝下),请避免接错排线导致相机损坏。连接排线后相机外观如下:

IMX 219:

../../../_images/image_KF95bPhKto9CfVx7vi2cvXwxnQg.webp
相机IMX 219外观

IMX 477:

../../../_images/image_YJuvbgzCpoZwQ5xmk5Dchmesngg.webp
相机IMX 477外观

硬件接口

Quectel Pi M1/L1 智能主控板共支持两路摄像头 MIPI CSI 接口,其接口位置与接口标号如下:

M1 camera 接口如下:

../../../_images/image_DFI7bFj3zop6vuxOLQZcWcxBnfQ.webp
M1 camera接口位置

L1 camera 接口如下:

../../../_images/image_MesfbBmYgoIogrxxgrxcPzhWnEc.webp
L1 camera接口位置

快速开始

  1. 可按照下图连接摄像头,两款支持的相机配件可以根据需求任意连接在camera1/camera2。连接时向上拉开连接器的黑色锁扣部分,将 FPC 排线插入 CSI 卡槽,注意排线金手指朝向板内金属接触面(白色部分那一面),按下锁扣,确认 FPC 排线稳定没有松动。这里以 M1 为例,分别展示了相机 imx 219 和相机 imx 477 的连接方法,L1的连接方式也是一样。

../../../_images/image_StCQbQjM1o8d17xBRmfctOwXnyg.webp
IMX 219连接M1 camera2的效果
../../../_images/image_L5fjbY4icojmG0xlMXYcQmdknRd.webp
IMX 477连接M1 camera2的效果
  1. 参考 显示配置 连接显示屏

M1 功能使用(gnome)

前提条件:

摄像头功能运行前需在终端输入以下命令

bash

a=`find /run/user -maxdepth 2 -name 'wayland-?' 2>/dev/null`;
export XDG_RUNTIME_DIR=`dirname $a`
export WAYLAND_DISPLAY=`basename $a`
export LD_PRELOAD=/opt/qcom/lib/libgbm.so:$LD_PRELOAD

预览

  1. 在设备终端运行以下命令

gst-launch-1.0 -e qtiqmmfsrc name=camsrc ! 'video/x-raw,format=NV12,width=1280,height=720,framerate=30/1' ! waylandsink
  1. 此命令以 720p 30 FPS 配置启动相机,并将图像传到显示屏预览。如果 gst 管道状态更改为 “PLAYING”,则表示摄像头正在运行

  2. 如果 2 个 CSI 卡槽同时插入 2 个摄像头,则用 camera=0/1 来区分,camera=0 代表第一个CSI 卡槽,camera=1 代表第二个 CSI 卡槽,例如打开第二个 CSI 卡槽摄像头,可输入以下命令:

gst-launch-1.0 qtiqmmfsrc camera=0 ! 'video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1' ! waylandsink
  1. 如果要停止摄像头流,请按下CTRL+C

../../../_images/image_KQ7Pb6aP5o4KyUxIY8IcT6OHnGf.webp
gnome桌面摄像头界面

视频录制

  1. 在设备终端运行以下命令:

gst-launch-1.0 -e qtiqmmfsrc camera=0 \
  ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 \
  ! qtic2venc ! h264parse ! mp4mux ! filesink location=/tmp/video.mp4
  1. 此命令以 720p 30 FPS 配置启动相机,并在 h264 视频编码后将其另存为视频文件。如果 gst 管道状态更改为 “PLAYING”,则表示摄像头正在运行

  2. MP4文件保存在/tmp/目录下

  3. 如果要停止摄像头录制,请按下CTRL+C

  4. 可以输入以下命令播放视频文件

gst-launch-1.0 filesrc location=/tmp/video.mp4 ! qtdemux name=demux demux.video_0 ! h264parse ! avdec_h264 ! videoconvert ! waylandsink

拍照

  1. 在设备终端运行以下命令:

timeout 2 gst-launch-1.0 -e qtiqmmfsrc camera=0 \
  ! video/x-raw,format=NV12,width=1920,height=1080 \
  ! jpegenc ! multifilesink location=/tmp/photo_%d.jpg max-files=1
  1. 此命令以 1080p 30 FPS 配置启动相机,延时2秒后拍摄,并在 JPEG 视频编码后将其另存为图像文件。如果 gst 管道状态更改为 “PLAYING”,则表示摄像头正在运行

  2. 图像文件保存在/tmp/目录下

  3. 可以输入以下命令查看图片文件

gst-launch-1.0 filesrc location=/tmp/photo_20.jpg ! jpegdec ! imagefreeze ! waylandsink

双摄使用

如果接入了两个camera并且想同时使用,可参考下面的方式

  1. 在设备终端运行以下命令:

gst-launch-1.0 \
  compositor name=comp \
    sink_0::xpos=0 sink_0::ypos=0 \
    sink_1::xpos=0 sink_1::ypos=720 \
  ! video/x-raw,width=1280,height=1440 ! waylandsink \
  qtiqmmfsrc camera=0 ! video/x-raw,format=NV12,width=1280,height=720 ! comp.sink_0 \
  qtiqmmfsrc camera=1 ! video/x-raw,format=NV12,width=1280,height=720 ! comp.sink_1
  1. 此命令以720p 30 FPS 配置启动相机,可以同时预览两个相机画面

  2. 如果想使用画中画模式,可以在终端运行以下命令:

gst-launch-1.0 \
  compositor name=mix \
    sink_0::xpos=0   sink_0::ypos=0 \
    sink_1::xpos=640 sink_1::ypos=240 \
  ! queue max-size-buffers=3 ! videoconvert ! waylandsink sync=false \
  qtiqmmfsrc camera=0 ! 'video/x-raw,format=NV12,width=1280,height=720,framerate=15/1' ! queue ! mix.sink_0 \
  qtiqmmfsrc camera=1 ! 'video/x-raw,format=NV12,width=640,height=480,framerate=10/1' ! queue ! mix.sink_1
  1. 如果要停止摄像头录制,请按下CTRL+C

M1/L1 功能使用(weston)

前提条件:

摄像头功能运行前需在终端输入以下命令

bash

a=`find /run/user -maxdepth 2 -name 'wayland-?' 2>/dev/null`;
export XDG_RUNTIME_DIR=`dirname $a`
export WAYLAND_DISPLAY=`basename $a`
export LD_PRELOAD=/opt/qcom/lib/libgbm.so:$LD_PRELOAD

预览

  1. 在设备终端运行以下命令

gst-launch-1.0 -e qtiqmmfsrc name=camsrc ! 'video/x-raw,format=NV12,width=1280,height=720,framerate=30/1' ! waylandsink
  1. 此命令以 720p 30 FPS 配置启动相机,分辨率根据自己需求调整,并将图像传到显示屏预览。如果 gst 管道状态更改为 “PLAYING”,则表示摄像头正在运行

  2. 如果 2 个 CSI 卡槽同时插入 2 个摄像头,则用 camera=0/1 来区分,camera=0 代表第一个CSI 卡槽,camera=1 代表第二个 CSI 卡槽,例如打开第二个 CSI 卡槽摄像头,可输入以下命令:

gst-launch-1.0 qtiqmmfsrc camera=0 ! 'video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1' ! waylandsink
  1. 如果要停止摄像头流,请按下CTRL+C

../../../_images/image_Jf6TbQiMoo01mqxQjItcOO8ynsl.webp
weston桌面摄像头界面

视频录制

  1. 在设备终端运行以下命令:

gst-launch-1.0 -e qtiqmmfsrc camera=0 \
  ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 \
  ! qtic2venc ! h264parse ! mp4mux ! filesink location=/tmp/video.mp4
  1. 此命令以 720p 30 FPS 配置启动相机,并在 h264 视频编码后将其另存为视频文件。如果 gst 管道状态更改为 “PLAYING”,则表示摄像头正在运行

  2. MP4文件保存在/tmp/目录下

  3. 如果要停止摄像头录制,请按下CTRL+C

  4. 可以输入以下命令播放视频文件

gst-launch-1.0 filesrc location=/tmp/video.mp4 ! qtdemux name=demux demux.video_0 ! h264parse ! avdec_h264 ! videoconvert ! waylandsink

拍照

  1. 在设备终端运行以下命令:

timeout 2 gst-launch-1.0 -e qtiqmmfsrc camera=0 \
  ! video/x-raw,format=NV12,width=1920,height=1080 \
  ! jpegenc ! multifilesink location=/tmp/photo_%d.jpg max-files=1
  1. 此命令以 1080p 30 FPS 配置启动相机,延时2秒后拍摄,并在 JPEG 视频编码后将其另存为图像文件。如果 gst 管道状态更改为 “PLAYING”,则表示摄像头正在运行

  2. 图像文件保存在/tmp/目录下

  3. 可以输入以下命令查看刚刚生成的图片文件,例如示例生成的图像名为photo_20.jpg

gst-launch-1.0 filesrc location=/tmp/photo_20.jpg ! jpegdec ! imagefreeze ! waylandsink

双摄使用

如果接入了两个camera并且想同时使用,可参考下面的方式

  1. 在设备终端运行以下命令:

gst-launch-1.0 \
  compositor name=comp \
    sink_0::xpos=0 sink_0::ypos=0 \
    sink_1::xpos=0 sink_1::ypos=720 \
  ! video/x-raw,width=1280,height=1440 ! waylandsink \
  qtiqmmfsrc camera=0 ! video/x-raw,format=NV12,width=1280,height=720 ! comp.sink_0 \
  qtiqmmfsrc camera=1 ! video/x-raw,format=NV12,width=1280,height=720 ! comp.sink_1
  1. 此命令以720p 30 FPS 配置启动相机,可以同时预览两个相机画面

  2. 如果想使用画中画模式,可以在终端运行以下命令:

gst-launch-1.0 \
  compositor name=mix \
    sink_0::xpos=0   sink_0::ypos=0 \
    sink_1::xpos=640 sink_1::ypos=240 \
  ! queue max-size-buffers=3 ! videoconvert ! waylandsink sync=false \
  qtiqmmfsrc camera=0 ! 'video/x-raw,format=NV12,width=1280,height=720,framerate=15/1' ! queue ! mix.sink_0 \
  qtiqmmfsrc camera=1 ! 'video/x-raw,format=NV12,width=640,height=480,framerate=10/1' ! queue ! mix.sink_1
  1. 如果要停止摄像头录制,请按下CTRL+C