# 摄像头

Source: [https://docs.qualcomm.com/doc/80-70014-50Y/topic/camera.html](https://docs.qualcomm.com/doc/80-70014-50Y/topic/camera.html)

QIM SDK 摄像头插件 camsrc 充当 Qualcomm 摄像头服务的客户端。摄像头用例显示了来自实时源的 1080p YUV 流的执行和显示。

有关摄像头插件的更多信息，请参阅[摄像头架构](https://docs.qualcomm.com/doc/80-70014-50Y/topic/camera-arch.html)。

## 前提条件

确保满足 [多媒体用例](https://docs.qualcomm.com/doc/80-70014-50Y/topic/multimedia-use-cases.html) 中提到的前提条件。

运行以下命令：

    mount -o remount,rw /Copy to clipboard

    export XDG_RUNTIME_DIR=/dev/socket/westonCopy to clipboard

    export WAYLAND_DISPLAY=wayland-1Copy to clipboard

## 来自实时源的单个 1080p YUV 流

运行以下命令以执行 pipeline：

    gst-launch-1.0 qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink fullscreen=true async=true sync=false
    Copy to clipboard

应在显示器上看到来自摄像头流的内容。

如需停止用例，请按下 CTRL + C。

此 pipeline 显示从摄像头获取并发送到显示器的单个 1080p 流。

![](data:image/png;base64,UklGRhwEAABXRUJQVlA4TBAEAAAvLwIuAN+gKJIUxwEowP+XwhJ/uJyDDcWRJCUhHPIm/yDIxt31h6JIkppZA6cgoAM7aD8D8I3zH///823rYF/sK+tgPeyDuTCPzIHe0RpqlhIQrAQFE8K0QTDEHIAx3okdVJbYJxUl9QUUbNtu21Y+KAQhEiROepn/SEnRUhIz+ZUR/Z+Al8v/l/8v/1/+v/z/D9B3J/3te3fOfxWe8jPgGb/8d/nv8t/lv8t/Z6HBD9HgNZX8qkz9V4lH/kvQLUGsfXPLQJ42mdoSlG5LhNI3bQDyTW3QC6jzAKGsvyUrNLXDonZoestAntRM3anke0uJEMuqNrBGQumbXiOhTDu9RohlUStZG1gjofQDS2A6MT2xm7pm9sedxDZPbLM6sV92EpvCblhO1pdvP4SJqk5Q1Zmgmf1RJ+JOZLrT2A/rTmKb1J64qz2xG5YjiW26twQmT0whTN2WqM6EqdtH2GFYnYBhdYJFI7XrDXZisztBXV0H8sn6+u7Dtx/hRlYHSOpIcSZM3T6C9sCiLoR+JzEs2iJ1h9ptMGshNPsUNxNx0TVRj1C7Dea9JTB5Yjo01ZloZXQLbTOoJgbVRFOY3e2bVTVRVTusZ+vduw/fnreAGkJk1cRsZXQLTQujOlK8A121knea6kC1Q1Ntm0pytx9pqgN1Zwlh8cw0ove76tranbrJ1E3mpolQ5u62gVtYNz/xm/bu3YdvzzLSbAwjkx20q66t7TSiGml3utvWyh23lWojeWCGdFvcvee27g2ByVNTyQfsY2L3IVWXDJBu/UADf+5P7976j5+fNFIdmRqDM4Pax8RuUyOLC9E7Og+B7asq+Yg1AKG0hwGxn6YlACnnx+lSM5D6r8N3L2/015333z+/PGkmG+kGHJl0CUDKea8yOlIPFCDkHJ9ln0oEpkeFJTOemkY8kBkW1WeofQrc7gnreXv//fPLy7MMrCQtzIlVM8OiurcSjaz3GmHqan3dTDq2XQbCo6ortDPToW1motD8ATRTDyTqpsN6tt5///yyfVZhoOpEIanQPGJmInuvkt0+YIV1cztig8dZif3EWAhTtyWqgbLa5/ywhTCrc2A+MEFdXQey5+rL988v+8+agEU7UNVAWe1zvjMB04EbYdalhteZSc11ZDNQVl0L6QkmxjPTE7upO3H/QWb2iwcs7IblZB19VoeommFRJ+7v9EDoB3ri7uvWwDZsGvtheUaDdmL0liDWrs4JYlke5y0DafKQ8wChrP6mmCmbG9HtnCCW5Y6F4gF7CZBv9QGuJRDrvHEpEUJZfYYjsZ+Zt/38PHtk3nlz/8KJwb9XNMrfKvoaaX+rALJ/s8j97xVv+eW/y3+X/y7/XQo76SfgnP8iLv9f/r/8f/n/8v/l///RCQ==)

## 来自实时源的三个 1080p YUV 流

运行以下命令以执行用例：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink x=0 y=0 width=500 height=400 async=true sync=false camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink x=510 y=0 width=500 height=400 async=true sync=false camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink x=0 y=410 width=500 height=400 async=true sync=falseCopy to clipboard

应在显示器上看到来自摄像头流的内容。

如需停止用例，请按下 CTRL + C。

此 pipeline 显示从摄像头中获取的三个 1080p 流并发送到显示器，每个流显示在屏幕上的不同位置。

![](data:image/png;base64,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)

## 从摄像头请求具有不同 FPS 的多个流

运行命令以执行以下用例：

- 采集请求模式为 30 fps/15 fps 的两个流：

        gst-launch-1.0 -e --gst-debug=fpsdisplaysink:6 qtiqmmfsrc name=qmmf frc-mode=capture-request video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! fpsdisplaysink name=disp1 signal-fps-measurements=true text-overlay=false video-sink="fakesink" qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=15/1,compression=ubwc ! fpsdisplaysink name=disp2 signal-fps-measurements=true text-overlay=false video-sink="fakesink"Copy to clipboard
- 采集请求模式为 17 fps/10 fps 的两个流：

        gst-launch-1.0 -e --gst-debug=fpsdisplaysink:6 qtiqmmfsrc name=qmmf frc-mode=capture-request video_0::type=preview qmmf.video_0 ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=17/1,compression=ubwc ! fpsdisplaysink name=disp1 signal-fps-measurements=true text-overlay=false video-sink="fakesink" qmmf.video_1 ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=10/1,compression=ubwc ! fpsdisplaysink name=disp2 signal-fps-measurements=true text-overlay=false video-sink="fakesink"Copy to clipboard
- 采集请求模式为 5 fps/25 fps 的两个流：
首先处理较小的帧速率，然后摄像头在第二个流上更新帧速率。

        gst-launch-1.0 -e --gst-debug=fpsdisplaysink:6 qtiqmmfsrc name=qmmf frc-mode=capture-request video_0::type=preview qmmf.video_0 ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=5/1,compression=ubwc ! fpsdisplaysink name=disp1 signal-fps-measurements=true text-overlay=false video-sink="fakesink" qmmf.video_1 ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=25/1,compression=ubwc ! fpsdisplaysink name=disp2 signal-fps-measurements=true text-overlay=false video-sink="fakesink"Copy to clipboard

## 设置传感器模式

使用以下命令在 camsrc 插件中设置传感器模式：

    export GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0 && gst-launch-1.0 qtiqmmfsrc camera=0 name=camsrc sensor-mode=<option> ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! multifilesink enable-last-sample=false location="/opt/frame%d.yuv" max-files=5Copy to clipboard

在`sensor-mode=<option>`，为传感器模式添加适当的数字。

例如，对于 imx766\_preview\_1080p30fps\_streaming\_sensor\_mode\_1 用例，运行以下命令将传感器模式设置为 0：

    export GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0 && gst-launch-1.0 qtiqmmfsrc camera=0 name=camsrc sensor-mode=0 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! multifilesink enable-last-sample=false location="/opt/frame%d.yuv" max-files=5Copy to clipboard

**Parent Topic:** [多媒体用例](https://docs.qualcomm.com/doc/80-70014-50Y/topic/multimedia-use-cases.html)

Last Published: Nov 11, 2025

[Previous Topic
多媒体用例](https://docs.qualcomm.com/bundle/publicresource/80-70014-50Y/topics/multimedia-use-cases.md) [Next Topic
摄像头和视频编码](https://docs.qualcomm.com/bundle/publicresource/80-70014-50Y/topics/camera-and-video-encode.md)