DART-MX8M CSI: Difference between revisions
No edit summary |
No edit summary |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<!-- Set release according to "release" parameter in URL and use | <!-- Set release according to "release" parameter in URL and use RELEASE_SUMO_V1.0_DART-MX8M as default | ||
--> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!-- | --> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!-- | ||
--> {{#lst:Yocto_Platform_Customization|{{#var:RELEASE_PARAM| | --> {{#lst:Yocto_Platform_Customization|{{#var:RELEASE_PARAM|RELEASE_SUMO_V1.0_DART-MX8M}}}} <!-- | ||
--> {{PageHeader| | --> {{PageHeader|{{#var:HARDWARE_NAME}} Camera}} {{DocImage|category1=Yocto|category2={{#var:HARDWARE_NAME}}}} __toc__ | ||
= Testing MIPI-CSI2 cameras = | = Testing MIPI-CSI2 cameras = | ||
Line 14: | Line 14: | ||
This should produce the following output | This should produce the following output | ||
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M | | |||
<pre> | <pre> | ||
# v4l2-ctl --list-devices | # v4l2-ctl --list-devices | ||
i.MX6S_CSI (platform:30a90000.csi1_bridge): | i.MX6S_CSI (platform:30a90000.csi1_bridge): | ||
/dev/video0 | |||
i.MX6S_CSI (platform:30b80000.csi2_bridge): | i.MX6S_CSI (platform:30b80000.csi2_bridge): | ||
/dev/video1 | |||
</pre> | </pre> | ||
As you can see above there are 2 cameras accessible as /dev/video0 and /dev/video1 | As you can see above there are 2 cameras accessible as /dev/video0 and /dev/video1 | ||
| | |||
<pre> | |||
# v4l2-ctl --list-devices | |||
i.MX6S_CSI (platform:32e20000.csi1_bridge): | |||
/dev/video0 | |||
</pre> | |||
As you can see above there is 1 camera accessible as /dev/video0 | |||
}} | |||
== Testing Camera Preview on Display == | == Testing Camera Preview on Display == | ||
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M | | |||
In the examples below /dev/videoX is either /dev/video0 or /dev/video1 | In the examples below /dev/videoX is either /dev/video0 or /dev/video1 | ||
* 480P 640x480@30fps: | * 480P 640x480@30fps: | ||
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=640,height=480 ! | # gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=640,height=480 ! autovideosink sync=false | ||
* NTSC 720x480@30fps: | * NTSC 720x480@30fps: | ||
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=720,height=480 ! | # gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=720,height=480 ! autovideosink sync=false | ||
* 720P 1280x720@30fps: | * 720P 1280x720@30fps: | ||
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=1280,height=720 ! | # gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=1280,height=720 ! autovideosink sync=false | ||
* 1080P: 1920x1080@30fps: | * 1080P: 1920x1080@30fps: | ||
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=1920,height=1080 ! | # gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=1920,height=1080 ! autovideosink sync=false | ||
* QSXGA 2592x1944@15fps: | * QSXGA 2592x1944@15fps: | ||
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=2592,height=1944 ! | # gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=2592,height=1944 ! autovideosink sync=false | ||
| | |||
* 480P 640x480@30fps: | |||
# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480 ! autovideosink sync=false | |||
* NTSC 720x480@30fps: | |||
# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=720,height=480 ! autovideosink sync=false | |||
* 720P 1280x720@30fps: | |||
# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720 ! autovideosink sync=false | |||
* 1080P: 1920x1080@30fps: | |||
# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1920,height=1080 ! autovideosink sync=false | |||
* QSXGA 2592x1944@15fps: | |||
# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=2592,height=1944 ! autovideosink sync=false | |||
}} | |||
== Testing Camera JPEG Snapshot == | == Testing Camera JPEG Snapshot == | ||
To capture JPEG snapshot run one of the pipelines below depending upon the required picture resolution. | To capture JPEG snapshot run one of the pipelines below depending upon the required picture resolution. | ||
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M | | |||
<br>In the examples below /dev/videoX is either /dev/video0 or /dev/video1 | |||
* 480P 640x480: | * 480P 640x480: | ||
Line 61: | Line 88: | ||
* QSXGA 2592x1944: | * QSXGA 2592x1944: | ||
# gst-launch-1.0 v4l2src device=/dev/videoX num-buffers=1 ! video/x-raw,width=2592,height=1944 ! jpegenc ! filesink location=/tmp/test.jpg | # gst-launch-1.0 v4l2src device=/dev/videoX num-buffers=1 ! video/x-raw,width=2592,height=1944 ! jpegenc ! filesink location=/tmp/test.jpg | ||
| | |||
* 480P 640x480: | |||
# gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! video/x-raw,width=640,height=480 ! jpegenc ! 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 ! jpegenc ! 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 ! jpegenc ! 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 ! jpegenc ! 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 ! jpegenc ! filesink location=/tmp/test.jpg | |||
}} | |||
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M | | |||
== Using both cameras simultaneously == | == Using both cameras simultaneously == | ||
Line 69: | Line 112: | ||
# gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=100 ! video/x-raw,width=1920,height=1080 ! jpegenc ! avimux ! filesink location=./test0.avi \ | # gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=100 ! video/x-raw,width=1920,height=1080 ! jpegenc ! avimux ! filesink location=./test0.avi \ | ||
v4l2src device=/dev/video1 num-buffers=100 ! video/x-raw,width=1920,height=1080 ! jpegenc ! avimux ! filesink location=./test1.avi | v4l2src device=/dev/video1 num-buffers=100 ! video/x-raw,width=1920,height=1080 ! jpegenc ! avimux ! filesink location=./test1.avi | ||
| | |||
}} |
Revision as of 15:03, 23 December 2019
Testing MIPI-CSI2 cameras
Before running any of the pipelines below make sure you have camera(s) connected. i.MX family of processors uses gstreamer as multimedia framework. Please refer to https://gstreamer.freedesktop.org/
Camera Probe
Run the following command to see if you have the camera(s) detected
# v4l2-ctl --list-devices
This should produce the following output
# v4l2-ctl --list-devices i.MX6S_CSI (platform:30a90000.csi1_bridge): /dev/video0 i.MX6S_CSI (platform:30b80000.csi2_bridge): /dev/video1
As you can see above there are 2 cameras accessible as /dev/video0 and /dev/video1
Testing Camera Preview on Display
In the examples below /dev/videoX is either /dev/video0 or /dev/video1
- 480P 640x480@30fps:
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=640,height=480 ! autovideosink sync=false
- NTSC 720x480@30fps:
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=720,height=480 ! autovideosink sync=false
- 720P 1280x720@30fps:
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=1280,height=720 ! autovideosink sync=false
- 1080P: 1920x1080@30fps:
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=1920,height=1080 ! autovideosink sync=false
- QSXGA 2592x1944@15fps:
# gst-launch-1.0 v4l2src device=/dev/videoX ! video/x-raw,width=2592,height=1944 ! autovideosink sync=false
Testing Camera JPEG Snapshot
To capture JPEG snapshot run one of the pipelines below depending upon the required picture resolution.
In the examples below /dev/videoX is either /dev/video0 or /dev/video1
- 480P 640x480:
# gst-launch-1.0 v4l2src device=/dev/videoX num-buffers=1 ! video/x-raw,width=640,height=480 ! jpegenc ! filesink location=/tmp/test.jpg
- NTSC 720x480:
# gst-launch-1.0 v4l2src device=/dev/videoX num-buffers=1 ! video/x-raw,width=720,height=480 ! jpegenc ! filesink location=/tmp/test.jpg
- 720P 1280x720:
# gst-launch-1.0 v4l2src device=/dev/videoX num-buffers=1 ! video/x-raw,width=1280,height=720 ! jpegenc ! filesink location=/tmp/test.jpg
- 1080P 1920x1080:
# gst-launch-1.0 v4l2src device=/dev/videoX num-buffers=1 ! video/x-raw,width=1920,height=1080 ! jpegenc ! filesink location=/tmp/test.jpg
- QSXGA 2592x1944:
# gst-launch-1.0 v4l2src device=/dev/videoX num-buffers=1 ! video/x-raw,width=2592,height=1944 ! jpegenc ! filesink location=/tmp/test.jpg
Using both cameras simultaneously
The following pipeline is an example of using both cameras simultaneously.
In this example a short video stream from each camera is saved as an MJPEG-encoded AVI file.
# gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=100 ! video/x-raw,width=1920,height=1080 ! jpegenc ! avimux ! filesink location=./test0.avi \ v4l2src device=/dev/video1 num-buffers=100 ! video/x-raw,width=1920,height=1080 ! jpegenc ! avimux ! filesink location=./test1.avi