> For the complete documentation index, see [llms.txt](https://amobile-solutions.gitbook.io/yocto-developer-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://amobile-solutions.gitbook.io/yocto-developer-guide/test-and-use-the-interface/camera/camera-sd510.md).

# Camera - SD510

## V4L2 Device Node

```
# v4l2-ctl --list-devices
MediaTek MDP3 ():
        /dev/video2

mtk-mdp3 (platform:14001000.mdp3-rdma0):
        /dev/media0

MTK-ISP-DIP-V4L2 (platform:15000000.imgsys_fw):
        /dev/video3
...
mtk-v4l2-camera (platform:mtkcam0):
        /dev/video53
        /dev/video54
        /dev/video55
        /dev/media3
...
```

**Finding V4L2 Devices for Streaming**

The `mtk-v4l2-camera` nodes are used for streaming with three V4L2 devices: Preview, Video, and Capture. To find these devices, use the following command:

```
# cat /sys/class/video4linux/video{53,54,55}/name
mtk-v4l2-camera@0-Preview
mtk-v4l2-camera@0-Video
mtk-v4l2-camera@0-Capture
```

{% hint style="info" %}
Numbers 53, 54, and 55 are not fixed numbers.
{% endhint %}

Efficiently locate the desired node and set the environment variable:

```
# declare -a VIDEO_DEV=(`v4l2-ctl --list-devices | grep mtk-v4l2-camera -A 3 | grep video | tr -d "\n"`)
# printf "Preview Node\t= ${VIDEO_DEV[0]}\nVideo Node\t= ${VIDEO_DEV[1]}\nCapture Node\t= ${VIDEO_DEV[2]}\n"
Preview Node    = /dev/video53
Video Node      = /dev/video54
Capture Node    = /dev/video55
```

To list available formats using the `v4l2-ctl` utility, run the following command:

```
v4l2-ctl --list-formats
```

```
# v4l2-ctl -d ${VIDEO_DEV[0]} --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture Multiplanar

        [0]: 'NM12' (Y/CbCr 4:2:0 (N-C))
                Size: Discrete 3264x2448
                        Interval: Discrete 0.033s (30.000 fps)
        [1]: 'YU12' (Planar YUV 4:2:0)
                Size: Discrete 3264x2448
                        Interval: Discrete 0.033s (30.000 fps)
        [2]: 'YM21' (Planar YVU 4:2:0 (N-C))
                Size: Discrete 3264x2448
                        Interval: Discrete 0.033s (30.000 fps)

```

To show streaming using `gst-launch-1.0`, use the following command:

```
# gst-launch-1.0 v4l2src device=${VIDEO_DEV[0]} ! videoconvert ! videoscale ! video/x-raw,width=640,height=480 ! waylandsink sync=false &
# gst-launch-1.0 v4l2src device=${VIDEO_DEV[1]} ! videoconvert ! videoscale ! video/x-raw,width=640,height=480 ! waylandsink sync=false &
# gst-launch-1.0 v4l2src device=${VIDEO_DEV[2]} ! image/jpeg,width=640,height=480,format=JPEG ! jpegdec ! waylandsink sync=false &
```

<figure><img src="https://3619554908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmAO6HInc2Typbuq3W42l%2Fuploads%2FQvzeS5CflkHpXpLPRP4f%2Fwayland-screenshot-2025-03-04_10-24-52.png?alt=media&amp;token=dab8446f-0c35-4a2e-b59b-c980bcc8f152" alt=""><figcaption></figcaption></figure>
