CapView

A low-latency viewer and recorder for DirectShow capture cards on Windows. Built to be played on, not just watched.

One file, about 2 MB. No installer, nothing written to the registry.

~1 msfrom card to screen at 1080p60
1 fileno installer, no dependencies
MITfree and open source
CapView in fullscreen showing a console at 1080p60, with the statistics overlay reading a frame age of 1.2 ms
The viewer in fullscreen. The overlay is not a mock-up — it is CapView's own statistics panel reporting the source format, the measured rate and, at the bottom, the age of the frame being drawn.

01Why it exists

A capture card's picture normally arrives too late to play on. CapView takes the queue out of the path so the console on your desk behaves like a console on a television — while still recording, screenshotting and feeding a virtual camera.

No queue in the capture path

Frames are copied into a triple buffer and the filter returns at once. Anything arriving faster than it can be shown is dropped, never buffered, so delay cannot accumulate.

No graph clock

The DirectShow graph runs without a reference clock, so nothing is held back waiting for a presentation time.

Tearing allowed

A flip-model swap chain with one frame of queue and VSync off by default — the single biggest lever there is.

Conversion on the GPU

YUY2, UYVY, NV12, planar 4:2:0, RGB and P010 are unpacked in a pixel shader. Nothing touches the CPU between arrival and drawing.

02It cleans up composite

Composite carries colour and brightness on one wire and they leak into each other. Most viewers leave that alone. CapView removes it in real time, and the numbers behind every setting were measured on real hardware rather than guessed.

The same GameCube frame over composite: filter off on the left with dot crawl on the gold laurel and the chequered flag, filter on and clean on the right
A PAL-60 GameCube over composite, filter off and on. The crop was not chosen by eye — it is the region where the measured difference between the two frames is largest.
HalfWhat it doesWhat it costs
Four-frame averageCancels dot crawl wherever the picture stands still. Four, because the subcarrier walks a four-frame cycle — measured 1.91, 2.62, 1.90 and 0.78 at lags of one to four.Nothing at all.
Synchronous demodulatorReconstructs the subcarrier out of the brightness and subtracts it, so moving content is covered too. Removes 81 % of the pattern at a window of nine samples.17 % of horizontal sharpness.
The two are told about each other: the averaging reports how much of the job it did, and the demodulator only handles the rest. Turning both up used to make the picture worse than either alone.

03Five deinterlacers, and it measures which you need

Whether a source is interlaced is measured from the picture, not read from the media type — a media type is entitled to say so and frequently does not.

Left: a 480i GameCube frame woven, showing combing on the moving item boxes. Right: the same source through YADIF, clean
480i from a GameCube. Left, weaving: combing on everything that moves. Right, YADIF. A 240p or 288p console whose fields hold the same lines is detected separately and handled without interpolation at all.

04Everything else

Recording

H.264, H.265 or AV1 through NVENC, Quick Sync, AMF, x264 or x265. The audio is the master clock, so the output is constant frame rate and does not drift — measured at 1 ms over 15 seconds.

Encoder controls

Rate control, preset, tuning, look-ahead, adaptive quantisation and multipass, under one set of names translated into each vendor's own.

Virtual camera

Offer the picture to OBS, Discord or a browser at the source's own resolution and frame rate — and to anything that cannot take that, at whatever it asks for instead.

High dynamic range

PQ and HLG are decoded to linear light, tone mapped with BT.2390 for an ordinary screen or passed through as scRGB for an HDR one.

Screenshots

PNG or JPEG at source resolution through Windows Imaging Component, so no ffmpeg is needed. JPEG XR keeps the HDR range and needs none either; AVIF does. A switch grabs the finished window instead, interface and all.

Profiles

Device, input, capture format and every picture and audio setting, one per source, on Ctrl+1 to Ctrl+9.

05What it is not

Scenes, overlays, compositing and streaming are not here and are not planned. For those, use OBS — and note that a card grants its capture pin to one process at a time, so the two cannot hold the same card at once.

Requirement
Windows 10 or laterthe virtual camera installs with one UAC prompt
A DirectShow capture devicealmost every card, including USB ones
ffmpegfor recording and AVIF screenshots, fetched by a button