Main Content

V4L2 Video Capture

Capture video from USB camera using V4L2


Capture live video from a USB video camera, using the V4L2 (Video for Linux Two API) driver framework. The output is in row major format. During simulation, the model outputs a moving colorbar image.

The Ubuntu Linux image used on the target hardware supports video capture from USB cameras listed as Universal Video Class (UVC). In addition to being a UVC class camera, the camera itself must support data acquisition in YUYV mode.

The following cameras have been tested:

  • Logitech QuickCam Pro 9000

  • Logitech QuickCam Pro 3000

  • Logitech Webcam C600

  • Logitech HD Webcam C310

To capture video from the Raspberry Pi Camera Board, search Help for “Add Support for Raspberry Pi Camera Board”.

  • V4L2 Video Capture block


Device Configuration

Device name

Enter the path and name of the video device. This parameter value defaults to '/dev/video0'.

The Linux kernel creates a video device file when you connect a supported USB video camera to the board. By default, the Linux kernel supports all USB video class (UVC) devices.

To see the list of video device files, open a command line session with the board and enter: ls -al /dev/video*.

Image size ([width, height])

Specify the width in pixels and height in lines of the image to capture.

This parameter value defaults to [640, 480].

Pixel format

Select the video format of the video device, RGB or YCbCr 4:2:2.

RGB represents the red, green, and blue components of a pixel using an 8-bit value. RGB color space is device-dependent.

YCbCr 4:2:2 uses three channels to represent color image data for each pixel:

  • Y is the luma component (essentially a grayscale signal).

  • Cb is the blue-difference chroma component.

  • Cr is the red-difference chroma component.

The Cb and Cr components are sampled at half the sample rate of Y. See

This parameter value defaults to YCbCr 4:2:2.

Sample time

Select the sample time of the video device. This parameter value defaults to 1/10

Smaller values require the processor to complete the same number of instructions in less time, which can cause task overrun.