Forrest logo
back to the v4l2-ctl tool

v4l2-ctl:tldr:958fa

v4l2-ctl: Capture a JPEG photo with a specific resolution from video device.
$ v4l2-ctl --device ${path-to-video_device} --set-fmt-video=width=${width},height=${height},pixelformat=MJPG --stream-mmap --stream-to=${path-to-output-jpg} --stream-count=1
try on your machine

This command is using the v4l2-ctl tool to control a video device. Here is a breakdown of the various options and arguments used in the command:

  • v4l2-ctl: This is the command itself, used to interact with V4L2 (Video for Linux Two) devices.
  • --device ${path-to-video_device}: This option specifies the path to the video device that you want to control. You need to replace ${path-to-video_device} with the actual path to your video device (e.g., /dev/video0).
  • --set-fmt-video=width=${width},height=${height},pixelformat=MJPG: This option sets the format of the video captured by the device. ${width} and ${height} should be replaced with the desired width and height dimensions, respectively. pixelformat=MJPG sets the pixel format to MJPG (Motion-JPEG), which is a common video format.
  • --stream-mmap: This option enables memory map streaming mode for capturing video frames.
  • --stream-to=${path-to-output-jpg}: This option specifies the path where the captured video frame should be saved. You should replace ${path-to-output-jpg} with the desired path and filename for the output JPEG image (e.g., /path/to/output.jpg).
  • --stream-count=1: This option sets the number of frames to be captured. In this case, it is set to 1, meaning it will capture a single frame and then stop.

In summary, this command configures a video device with specific width, height, and pixel format settings, captures a single video frame using memory map streaming mode, and saves it as a JPEG image.

This explanation was created by an AI. In most cases those are correct. But please always be careful and never run a command you are not sure if it is safe.
back to the v4l2-ctl tool