---
name: "qvidcap"
section: "1"
platform: "linux"
package: "v4l-utils"
version: "1.32.0-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/qvidcap"
---

# qvidcap(1)

A v4l2 video capture viewer

## NAME

qvidcap - A v4l2 video capture viewer

## SYNOPSIS

**qvidcap** \[*\<options\>*\]

## DESCRIPTION

The qvidcap tool is used to test video4linux capture devices, either using a video device, a file, or over network. This application can also serve as a generic video/TV viewer application.

It does not (yet) support compressed video streams other than MJPEG

## OPTIONS

- **-d**, **--device**=*\<dev\>*

  Use device \<dev\> as the video device if \<dev\> is a number, then /dev/video\<dev\> is used

- **-f**, **--file**=*\<file\>*

  Read from the file \<file\> for the raw frame data

- **-p**, **--port***\[=\<port\>\]*

  Listen for a network connection on the given port. The default port is 8362

- **-T**, **--tpg**

  Use the test pattern generator. If neither -d, -f nor -T is specified then use /dev/video0.

- **-c**, **--count**=*\<cnt\>*

  Stop after \<cnt\> captured frames

- **-b**, **--buffers**=*\<bufs\>*

  Request \<bufs\> buffers (default 4) when streaming from a video device.

- **-s**, **--single-step***\[=\<frm\>\]*

  Starting with frame \<frm\> (default 0), pause after displaying each frame until Space is pressed.

- **-C**, **--colorspace**=*\<c\>*

  Override colorspace. \<c\> can be one of the following colorspaces: smpte170m, smpte240m, rec709, 470m, 470bg, jpeg, srgb, oprgb, bt2020, dcip3

- **-X**, **--xfer-func**=*\<x\>*

  Override transfer function. \<x\> can be one of the following transfer functions: default, 709, srgb, oprgb, smpte240m, smpte2084, dcip3, none

- **-Y**, **--ycbcr-enc**=*\<y\>*

  Override Y'CbCr encoding. \<y\> can be one of the following Y'CbCr encodings: default, 601, 709, xv601, xv709, bt2020, bt2020c, smpte240m

- **-Q**, **--quant**=*\<q\>*

  Override quantization. \<q\> can be one of the following quantization methods: default, full-range, lim-range

- **-P**, **--pixelformat**=*\<p\>*

  For video devices: set the format to this pixel format. For reading from a file: interpret the data using this pixel format setting. Ignored for other modes. Use -l to see the list of supported pixel formats.

- **-l**, **--list-formats**

  Display all supported formats

- **-h**, **--help**

  Display this help message

- **-t**, **--timing**s

  Report frame render timings

- **-v**, **--verbose**

  Be more verbose

- **-R**, **--raw**

  Open device in raw mode

- **--opengl**

  Force openGL to display the video

- **--opengles**

  Force openGL ES to display the video

- The following options are ignored when capturing from a video device:

  - **-W,--width**=*\<width\>*

  Set width

- **-H,--height**=*\<height\>*

  Set frame (not field!) height

- **-A,--padding**=*\<bytes\>*

  set additional horizontal padding (after width)

- **--fps**=*\<fps\>*

  Set frames-per-second (default is 30)

- The following options are only valid when reading from a file:

  - **-F**, **--field**=*\<f\>*

  Override field setting. \<f\> can be one of the following field layouts: any, none, top, bottom, interlaced, seq\_tb, seq\_bt, alternate, interlaced\_tb, interlaced\_bt

- **--no-loop**

  Stop at the end of the file, don't loop back to the beginning.

- **--from-frame**=*\<frame\>*

  Start playing back the file at the given frame number (the first frame is frame 0).

- The following options are specific to the test pattern generator:

  - **--list-patterns**

  List available patterns for use with --pattern

- **--pattern**=*\<pat\>*

  Choose output test pattern, the default is 0

- **--square**

  Show a square in the middle of the output test pattern

- **--border**

  Show a border around the pillar/letterboxed video

- **--sav**

  Insert an SAV code in every line

- **--eav**

  Insert an EAV code in every line

- **--pixel-aspect**=*\<aspect\>*

  Select a pixel aspect ratio, the default is to autodetect. \<aspect\> can be one of: square, ntsc, pal

- **--video-aspect**=*\<aspect\>*

  Select a video aspect ratio, the default is to use the frame ratio. \<aspect\> can be one of: 4  x3, 14x9, 16x9, anamorphic

- **--alpha**=*\<alpha-value\>*

  Value to use for the alpha component, range 0-255, the default is 0

- **--alpha-red-only**

  Only use the --alpha value for the red colors, for all others use 0

- **--rgb-lim-range**

  Encode RGB values as limited \[16-235\] instead of full range

- **--hor-speed**=*\<speed\>*

  Choose speed for horizontal movement, the default is 0 and the range is \[-3...3\]

- **--vert-speed**=*\<speed\>*

  Choose speed for vertical movement, the default is 0 and the range is \[-3...3\]

- **--perc-fill**=*\<percentage\>*

  Percentage of the frame to actually fill. the default is 100%

- These options use the test pattern generator to test the OpenGL backend:

  - **--test**=*\<count\>*

  Test all formats, each test generates \<count\> frames.

- **--test-mask**=*\<mask\>*

  Mask which tests are performed. \<mask\> is a bit mask with these values:\
   0x01: Mask iterating over pixel formats\
   0x02: Mask iterating over fields\
   0x04: Mask iterating over colorspaces\
   0x08: Mask iterating over transfer functions\
   0x10: Mask iterating over Y'CbCr encodings\
   0x20: Mask iterating over quantization ranges

## HOTKEYS

- *Q*

  Quit application.

- *P*

  Cycle forwards through all the supported pixel formats. With Shift pressed: cycle backwards. With Ctrl pressed: restore the original pixel format. Only available with --file.

- *I*

  Cycle forwards through all the supported interlaced field settings. With Shift pressed: cycle backwards. With Ctrl pressed: restore the original interlaced field setting. Only available with --file.

- *C*

  Cycle forwards through all the supported colorspaces. With Shift pressed: cycle backwards. With Ctrl pressed: restore the original colorspace.

- *X*

  Cycle forwards through all the supported transfer functions. With Shift pressed: cycle backwards. With Ctrl pressed: restore the original transfer function.

- *Y*

  Cycle forwards through all the supported Y'CbCr encodings. With Shift pressed: cycle backwards. With Ctrl pressed: restore the original Y'CbCr encoding.

- *H*

  Cycle forwards through all the supported HSV encodings. With Shift pressed: cycle backwards. With Ctrl pressed: restore the original HSV encoding.

- *R*

  Cycle forwards through all the supported quantization ranges. With Shift pressed: cycle backwards. With Ctrl pressed: restore the original quantization range.

- *Right-Click*

  Open menu.

- *Double left-click*

  Toggle fullscreen on and off.

- *F*

  Toggle fullscreen on and off.

- *ESC*

  Exit fullscreen.

- *Space*

  When in test mode (**--test**) pressing Space will skip to the next test. When single-stepping, continue to the next frame. When reading from a file, pause playback until the next press of Space.

- *Backspace*

  When single-stepping, go back to the previous frame.

- *Up*

  Reduce the resolution by two pixels in height. Only available when "Override resolution" is enabled.

- *Down*

  Increase the resolution by two pixels in height. Only available when "Override resolution" is enabled.

- *Left*

  Reduce the resolution by two pixels in width. Only available when "Override resolution" is enabled.

- *Right*

  Increase the resolution by two pixels in width. Only available when "Override resolution" is enabled.

## EXIT STATUS

On success, it returns 0. Otherwise, it will return the number of errors.

## BUGS

Report bugs to Hans Verkuil \<hverkuil@kernel.org\>
