第一个硬件项目

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


本章节以Quectel Pi开发套件支持的配件IMX219 摄像头作为例子,带您快速熟悉Quectel Pi的外设调试。


用 IMX219 摄像头拍第一张照片

如果您没有IMX219摄像头模块,可跳过此章节。更详细使用摄像头教程:MIPI摄像头

安装摄像头

  1. 关闭开发板电源。

  2. 找到板上标注为 CAM1CAM2 的 MIPI CSI 排线接口。

  3. 将 IMX219 摄像头的排线金手指朝下,插入接口并扣紧卡扣。

  4. 重新上电启动。

注意:排线方向不可插反,金手指面朝电路板方向(朝下)。安装和拆卸排线时务必先断电。

../../_images/image_Uu6AbKjepopq96xUKOFczVocnne.webp ../../_images/image_K9QCbhFwxoZ6CPxsqLpcyyEZnnf.webp

GStreamer 管道命令简介

本章节使用 gst-launch-1.0 命令来控制摄像头的拍照、录像和预览。您只需复制后续章节中的命令即可完成操作,无需深入了解其原理。

这里简单介绍一下命令的结构,方便您理解每条命令在做什么:

gst-launch-1.0 是 GStreamer 多媒体框架的命令行工具,通过 ! 符号将多个处理步骤串联成一条 管道,数据从左到右依次流过。例如:

gst-launch-1.0 摄像头采集 ! 编码 ! 保存文件

本章中的命令都遵循这个模式:

  • 拍照:从摄像头采集画面 → 编码为 JPEG 图片 → 保存到文件

  • 录像:从摄像头采集画面 → 编码为 H.264 视频 → 封装为 MP4 → 保存到文件

  • 查看图片/播放视频:读取文件 → 解码 → 在屏幕上显示

选择您的桌面环境

Quectel Pi 的 Debian 系统支持 GnomeWeston 两种桌面环境。不同桌面环境下,摄像头的环境变量配置略有差异。请先阅读 操作系统 章节,了解您当前使用的桌面环境,然后根据以下对应的小节进行操作:

控制摄像头(Gnome)

摄像头可以拍照/录制成文件查看,也可以直接在显示屏桌面预览:

设置桌面环境变量

M1的Debian系统默认桌面是Gnome,复制下方命令行代码,在adb终端执行即可:

#如不在桌面上预览则不需要
#gnome桌面
export XDG_RUNTIME_DIR=/run/user/1007
export WAYLAND_DISPLAY=wayland-0

#weston
export XDG_RUNTIME_DIR=/run/user/root
export WAYLAND_DISPLAY=wayland-1

拍照

用 camera=0/1 来区分CSI卡槽所插入的摄像头,camera=0 代表第一个CSI 卡槽,camera=1 代表第二个 CSI 卡槽

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

timeout 2 gst-launch-1.0 -e qtiqmmfsrc camera=1 \
  ! 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=photo_%d.jpg ! jpegdec ! imagefreeze ! waylandsink

录像

  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

控制摄像头(Weston)

设置桌面环境变量

摄像头功能运行前需在终端输入以下命令,复制下方命令行代码,在adb终端执行即可:

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

拍照

用 camera=0/1 来区分CSI卡槽所插入的摄像头,camera=0 代表第一个CSI 卡槽,camera=1 代表第二个 CSI 卡槽

  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
../../_images/image_PS3obHC36oaqBHxT3iCcR9bqnsf.webp

录像

  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