QVIDCAP(1)

πŸ“¦
version 1.32.0 Β· 5 versions
, in alpine 3.24, arch rolling, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu resolute, ubuntu stonking

✨ QVIDCAP ✨

okay bestie, gather round, because this is the manual page for qvidcap β€” a v4l2 video capture viewer, and it's literally the moment πŸ’–


🌸 SYNOPSIS 🌸

qvidcap [<options>]

πŸ’« DESCRIPTION πŸ’«

so the qvidcap tool is what you use to test video4linux capture devices β€” and she's flexible, because you can do it with a video device, a file, or over the network 🌈. This application can also serve as a generic video/TV viewer application, no big deal, just casually being a whole media player πŸ’…

ngl it does NOT (yet) support compressed video streams other than MJPEG 😭 so keep that in mind bestie, that's a real limitation, fr fr

πŸŽ€ OPTIONS πŸŽ€

  • -d, --device=<dev> β€” use device <dev> as the video device. And plot twist: 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. And if neither -d, -f nor -T is specified then use /dev/video0. so that's the fallback vibe πŸ’œ
  • -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. one frame at a time, main character energy πŸ‘‘
  • -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, --timings β€” report frame render timings ⏱️
  • -v, --verbose β€” be more verbose. she talks more πŸ’¬
  • -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 ⚠️ note it's the FRAME height, not the field, don't get it twisted
  • -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. no infinite loop for you πŸ™ˆ
  • --from-frame=<frame> β€” start playing back the file at the given frame number (the first frame is frame 0). yes bestie, the first frame is frame 0, we're zero-indexed in this house πŸ’…

πŸ’œ 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 πŸ”₯

keyboard shortcuts, the whole point of existing tbh, let's go 🎹

  • Q β€” quit application. bye bestie πŸ‘‹
  • 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. so if she returns 3 that's three whole errors bestie, count them 😭


πŸ› BUGS πŸ›

Report bugs to Hans Verkuil <hverkuil@kernel.org> πŸ“§


and that's the whole thing, you ate that πŸ’–

this gorgeous page came to you from v4l-utils 1.32.0, dated way back in June 2016 πŸŽ€ and yeah she's serving QVIDCAP(1) energy, no cap, periodt πŸ’…βœ¨

πŸ“¦ where this page comes from