Camera¶
Testing MIPI-CSI2 and parallel CSI cameras¶
Make sure you have the camera(s) connected to the board before booting it and running any of the pipelines below. The i.MX family of SoCs uses GStreamer as a multimedia framework. Please refer to https://gstreamer.freedesktop.org/
Camera Probe¶
Run the following command to list the detected camera devices:
This should produce the following output:
v4l2-ctl --list-devices
vpu B0 (platform:):
/dev/video12
/dev/video13
mxc-isi (platform:58100000.isi.0):
/dev/video0
/dev/video2
mxc-isi (platform:58140000.isi.4):
/dev/video1
mxc-jpeg decoder (platform:58400000.jpegdec):
/dev/video3
mxc-jpeg decoder (platform:58450000.jpegenc):
/dev/video4
There are two cameras accessible as /dev/video0 and /dev/video1. The first one is a MIPI-CSI2 camera attached to the VAR-EXT-CB8 expansion board, and the second one is a parallel CSI camera attached to the VCAM-5640P expansion board.
Testing Camera Preview on Display¶
In the examples below /dev/video1 can be used instead of /dev/video0 on boards with 2 cameras.
- 480p (640x480):
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480 ! autovideosink sync=false
- NTSC (720x480):
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=720,height=480 ! autovideosink sync=false
- 720p (1280x720):
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720 ! autovideosink sync=false
- 1080p (1920x1080):
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1920,height=1080 ! autovideosink sync=false
- QSXGA (2592x1944):
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=2592,height=1944 ! autovideosink sync=false
Note: The parallel camera maximal frame rate at the 1920x1080 and 2592x1944 resolutions is 7.5fps
Testing Camera JPEG Snapshot¶
To capture a JPEG snapshot run one of the pipelines below, depending upon the required picture resolution. In the examples below /dev/video1 can be used instead of /dev/video0 on boards with 2 cameras.
- 480p (640x480):
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! video/x-raw,width=640,height=480 ! v4l2jpegenc ! filesink location=/tmp/test.jpg
- NTSC (720x480):
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! video/x-raw,width=720,height=480 ! v4l2jpegenc ! filesink location=/tmp/test.jpg
- 720p (1280x720):
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! video/x-raw,width=1280,height=720 ! v4l2jpegenc ! filesink location=/tmp/test.jpg
- 1080p (1920x1080):
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! video/x-raw,width=1920,height=1080 ! v4l2jpegenc ! filesink location=/tmp/test.jpg
- QSXGA (2592x1944):
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! video/x-raw,width=2592,height=1944 ! v4l2jpegenc ! filesink location=/tmp/test.jpg
Using 2 cameras simultaneously¶
The following pipeline is an example of using 2 cameras simultaneously. In this example a short video stream from each camera is saved as an MJPEG-encoded AVI file.