How Does a VHS Filter Actually Work? The Real Tape Artifacts It's Faking

How Does a VHS Filter Actually Work? The Real Tape Artifacts It's Faking

Most "VHS filters" get one specific thing backwards

Look closely at a lot of VHS-effect tools and you'll spot the same tell: dropouts rendered as bright white flashes streaking across the frame. It looks dramatic, and it's wrong. A dropout on a real tape is a spot where the magnetic oxide has flaked off or the head simply loses contact for a frame — which means the deck reads back nothing, not something bright. The correct artifact is a dark, desaturated streak, because missing signal isn't the same thing as a burst of light. It's a small detail, but it's the kind of small detail that separates an effect built by actually studying how a VCR works from one built by eyeballing a few YouTube clips and guessing.

That distinction is the whole point of this post. A VHS filter isn't one effect — it's a stack of maybe a dozen separate simulations, each one standing in for a specific piece of 1970s-to-1990s analog hardware or a specific limitation of the NTSC broadcast signal. Understanding what each piece is actually modeling is what makes the difference between "looks like scanlines" and "looks like a tape."

Why tapes looked the way they did in the first place

Before getting into how a shader fakes any of this, it's worth knowing what it's faking. None of these artifacts were creative choices — they were physical consequences of how analog video and magnetic tape actually worked.

Color had way less bandwidth than brightness. NTSC composite video didn't send brightness (luma) and color (chroma) as equal signals. Chroma was squeezed onto a narrow subcarrier riding on top of the luma signal, with a fraction of the bandwidth — brightness detail could be sharp while color detail was inherently blurry. That's not a flaw introduced by VHS specifically; it's baked into how the broadcast color signal itself was encoded, and it's why colored edges in old footage smear sideways while the underlying shapes stay crisp. On top of that, running a chroma signal through consumer electronics with any timing wobble produces visible dot-crawl and fringing artifacts at color boundaries.

Two spinning heads read the tape, and the handoff between them shows up on screen. A VHS deck doesn't have one playback head — it has (at least) two, mounted on a spinning drum, each responsible for part of the frame as the tape wraps around it. The moment playback switches from one head to the other happens at a fixed point in the frame, and on consumer decks that handoff wasn't hidden — it showed up as a torn band of static, always in the same place (the bottom edge). This is a well-documented, named artifact in the video archiving world — head-switching noise — not a random glitch.

Real interlaced video is two half-frames, not one. Broadcast and tape video didn't draw a full frame at once — it drew all the odd-numbered lines, then a fraction of a second later, all the even ones, and relied on your eye to merge them. That works fine on a still frame; on anything moving, the two time-offset half-images don't quite agree, which is what produces the faint combing/shimmer along moving edges that reads as "old video" even in a still screenshot.

The tape itself couldn't resolve much detail, and it degraded with every pass. Consumer VHS tape resolved something like 240 horizontal lines of real detail — visibly softer than the source it was recording. Add a worn tape or a mistracking deck reading a slightly different path than where it recorded, and you get horizontal jitter, occasional vertical roll, and physical dropouts where oxide is simply gone.

None of this is nostalgia trivia — it's the spec sheet a shader has to satisfy if the result is going to read as "this came off a tape" instead of "this had a preset clicked on it."

How each artifact actually gets faked, one at a time

A real-time filter can't simulate analog tape physics — there's no oxide, no spinning drum, no subcarrier. What it can do is reproduce the visual signature each of those physical processes leaves behind, cheaply enough to run every frame. Here's what's actually happening under a handful of the effects in a VHS-style filter:

Chromatic aberration / color fringing

The red and blue channels get sampled a few pixels apart in opposite directions, while green stays put — a literal channel split, which is exactly the kind of misalignment a real chroma subcarrier riding on a separate signal path produces. A second, independent version of this grows stronger toward the frame edges specifically, mimicking cheap lens glass rather than tape electronics — the two reasons color fringes at all are genuinely different, so a convincing filter fakes them separately instead of turning one slider up.

Color bleed

Only the color information gets horizontally smeared (a weighted blur across several pixels); brightness stays completely sharp. That split is deliberate — it's a direct simulation of chroma having far less bandwidth than luma on the original composite signal, which is also why color bleed and sharp detail can coexist in the same frame on a real tape.

Tracking glitches and jitter

A band drifts slowly down the frame over time; rows inside that band get thrown sideways hard, rows outside it get a much smaller wobble. That's a direct model of a playback head reading a slightly wrong path across the tape — the band represents where the mistracking is currently worst, not a uniform effect across the whole picture.

Interlacing shimmer

Every other scanline gets nudged a fraction of a pixel sideways from its neighbor. It's a cheap stand-in for what two genuinely time-offset half-frames being woven together actually looks like, without needing to render two separate temporal fields.

Dropouts

Short, randomly-placed streaks on scattered lines get pulled dark and desaturated — not bright. Since a dropout is signal the head failed to read at all, dark and colorless is the physically correct direction; a bright flash is a common effect that gets this exact detail backwards.

Head-switching noise

A fixed band of static sits at the very bottom of the frame, not drifting or random in position. That fixed location matters — on a real deck the switch between spinning heads happens at a consistent point in the frame, so the noise band showing up in the same place every frame is what actually reads as authentic rather than arbitrary.

A few more layers exist purely to sell the *feel* of tape and film rather than any single named defect: a soft, warm-tinted glow specifically around bright highlights (halation, distinct from a plain neutral bloom), a slow warm light-leak streak drifting across the frame, a cool-shadows/warm-highlights split-tone grade, and a horizontal-only softness pass that mimics a tape's genuinely limited resolution without touching color sharpness at all. None of these existed as named "VHS artifacts" the way dropouts or head-switching noise did — they're cinematic finishing touches layered on top of the tape simulation, closer to a film-grade pass than a fault.

Why "VHS filter" is really six different filters

Here's the part that's easy to miss if you've only ever seen a single generic "VHS" toggle: a convincing tape effect isn't one look with an intensity slider. A camcorder from 1983, a consumer deck from 1994, a worn rental tape, and a CCTV security monitor are four different pieces of equipment with different physical failure modes — and a filter that treats them all as "VHS, but stronger" misses what actually makes each one recognizable.

Classic

The balanced, generic "old tape" default — moderate scanlines, moderate color bleed, a light warm tint. Nothing pushed to an extreme in either direction.

Camcorder '80s

Heavily washed out and warm, saturation pulled down hard, a strong vignette, and — critically — an amber burned-in timecode, matching the actual on-screen displays those early handheld decks stamped onto the recording.

Camcorder '90s

The same family of artifacts as the '80s preset but noticeably cleaner: less jitter, less tracking instability, higher saturation, and a white-and-green timecode instead of amber — reflecting genuinely less-degraded consumer decks a decade later.

Damaged

Every tape-wear artifact turned up far past any of the other presets — jitter roughly three times stronger than the classic default, aggressive tracking glitches, and the heaviest dropout rate of any preset. No timecode here on purpose: a worn, unlabeled tape wouldn't have a clean overlay either.

Security

Nearly desaturated, cold rather than warm, heavy scanlines and vignette — but zero dropouts and zero tape roll. That's not an oversight: a CCTV monitor feed isn't a spinning tape head reading a physical strip, so it has none of the artifacts that come specifically from tape wear.

Broadcast

The single heaviest color bleed of any preset, plus a slow signal roll — but again, no dropouts. This one models over-the-air or cable signal interference rather than a physical medium, which is exactly why it shares tape-style color problems but skips every artifact that requires an actual reel of tape to produce.

The security and broadcast presets are the clearest example of why this distinction matters: both are visibly "degraded," but neither one has dropouts, because dropouts require a physical tape shedding oxide — something neither a live camera feed nor a broadcast signal has. Getting that right is what separates six genuinely different-feeling looks from one filter re-skinned six times with a different color tint.

Why it can run live, on a slider, in your browser

None of this is doing anything a computer historically found hard — it's arithmetic on pixel colors. What makes it interesting is that it has to run fast enough to redraw as you drag a slider, on a full video, without uploading a single frame anywhere. That's a job for a GPU fragment shader rather than a JavaScript loop: every pixel on screen gets this same stack of small calculations applied to it completely independently, which is exactly the kind of workload a GPU is built to chew through in parallel rather than one pixel at a time. If the "why a GPU and not the CPU" part is interesting, this breakdown of how WebGL shaders actually work goes into the mechanics of why a full-frame effect like this one is cheap for a GPU and would visibly chug on a CPU doing the same math in a loop.

The practical upshot: the frame decodes locally, the shader runs locally on your own graphics hardware, and the result gets re-encoded locally — nothing about your footage ever has to leave the browser tab for any of this to happen.

Frequently asked questions

Is a VHS filter just scanlines?

No — scanlines are one of roughly a dozen separate effects layered together, including color bleed, chromatic aberration, tracking jitter, interlacing shimmer, dropouts, head-switching noise, and a color grade. Scanlines alone read as "lines on a video," not as tape.

Why do VHS effects tint everything warm?

Partly a genuine warmth/tint shift modeling tape color response, and partly a separate split-tone grade that pushes warm color into highlights and cool color into shadows — the same filmic grading trick used well beyond VHS emulation, layered on top of the tape simulation rather than replacing it.

Why do some VHS presets have no dropouts at all?

Dropouts specifically model physical tape wear — oxide missing from the tape surface. A preset modeling a live camera feed or a broadcast signal (rather than a played-back cassette) has no tape to wear out, so it leaves that artifact turned off entirely rather than faking it at a lower strength.

Does a VHS filter need a powerful computer?

It needs basic GPU acceleration, which is standard on essentially any modern laptop or phone, including integrated graphics — the effect is designed as a lightweight per-pixel shader pass specifically so it can preview live while you adjust it, rather than requiring a render-and-wait cycle.

Why does the burned-in timestamp look different between presets?

It's matching real on-screen displays from different eras of consumer equipment — amber digits on early-80s camcorders, white-and-green on later-90s decks, plain white on security/CCTV monitors — rather than using one generic overlay style for every preset.

Try it

The best way to see any of this is against your own footage rather than a description of it — our video filter tool runs all six analog presets (plus four unrelated artistic styles: pencil sketch, cross-hatch, thermal and neon) as a live preview entirely in your browser, so you can compare classic against damaged against security on the same clip before rendering anything. Nothing gets uploaded to a server at any point — the whole point of building it as a shader was so it could run locally, instantly, and stay that way.

Sources

Further reading on the real analog artifacts this effect is modeling:

← Back to all posts