Recipe

Chroma Split

ffmpeg filtergraph

RGB-channel offset (red/cyan fringe) for VHS / glitch / death-hit accents. Two flavors: an ffmpeg rgbashift bake for whole clips, and a zero-cost CSS text-shadow split for overlay text.

12 units use it

What it is

## What it is A red/cyan (RGB-channel) split that fakes the chromatic aberration of a worn VHS head or a CRT. It reads as "signal damage" and is the cheapest way to make a clean AI frame feel analog or to punch a death/jump-scare beat. ## When to use it - Whole-clip VHS / analog-horror grade: bake the ffmpeg `rgbashift` over the master. - A single overlay word (DEAD, WARNING) where you do NOT want to re-encode the video: use the CSS text-shadow variant instead (free, GPU-composited, seek-deterministic in HyperFrames). ## Knobs - ffmpeg: `rh` / `bh` = horizontal pixel offset of the Red and Blue planes (push them opposite ways: `rh=N`, `bh=-N`). 2-4 px reads as VHS; 7+ px reads as a hard glitch hit. - CSS: the `7px 0` red + `-7px 0` cyan text-shadow pair — bump the px to widen the fringe.

How to use it standalone

ffmpeg filtergraph
# ffmpeg bake over a whole clip (verbatim from cli/lib/ffmpeg-recipes.ts buildVhsFilter chroma layer):
ffmpeg -i in.mp4 -vf "rgbashift=rh=3:bh=-3" -c:v libx264 -preset fast -crf 20 -c:a copy out.mp4

/* CSS overlay-text variant (verbatim from the choose-path index.html #death rule) */
#death {
  color: #ff2a2a;
  text-shadow:
    7px 0 0 rgba(255,0,46,0.55),
    -7px 0 0 rgba(0,200,255,0.45),
    0 0 40px rgba(255,40,40,0.7),
    0 6px 16px rgba(0,0,0,0.95);
}
ParamValue
bh-3
rh3
css_offset_px7
rh_glitch_hit7

Units that use this recipe

12 units

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