Recipe

VHS Overlay

ffmpeg filtergraph

The full ffmpeg VHS chain — chroma shift + sine tape-wobble + temporal grain + vignette + slight desat — in one filtergraph. The whole-clip analog look behind the choose-path series.

4 units use it

What it is

## What it is The complete tape-deck look in one `-vf` chain: an `rgbashift` chroma split, a 0.6 Hz sine `crop` wobble for slow horizontal drift, temporal `noise` grain, a `vignette`, and a small `eq` desaturate/contrast nudge (a VHS deck never produced pristine corners or full saturation). Toggle any layer by zeroing its knob. ## When to use it - A whole clip you want to read as a found-tape / 1990s home-video / analog-horror register. - For a single momentary "PAUSE"-style freeze overlay inside HyperFrames, use `vhs-pause-freeze` instead (this one bakes the whole clip). ## Knobs - `chroma` = R/B horizontal shift in px (the rgbashift offsets). 0 = off. - `drift` = sine-wobble amplitude in px. 0 = off. - `grain` = noise strength 0..100. 0 = off.

How to use it standalone

ffmpeg filtergraph
# Verbatim from cli/lib/ffmpeg-recipes.ts buildVhsFilter({drift,grain,chroma}) with the defaults
# (chroma=3, drift=2, grain=8). The vignette + eq tail are always appended.
ffmpeg -i in.mp4 -vf "rgbashift=rh=3:bh=-3,crop=in_w-4:in_h:2+2*sin(2*PI*0.6*t):0,noise=alls=8:allf=t,vignette=PI/5,eq=saturation=0.92:contrast=1.05" -c:v libx264 -preset fast -crf 20 -c:a copy out.mp4
ParamValue
drift2
grain8
chroma3
contrast1.05
vignettePI/5
saturation0.92

Units that use this recipe

4 units

Every finished unit with VHS Overlay in its recipe. Open one to see the full ingredient list, or remix straight from a tile.