---
name: vhs-deck
description: True VHS tape simulator — chroma bleed, RF interference snow, head-switching noise lines, time-base wobble, tape-stretch warble, scanline interlace artifacts, generation loss. Drop-in over any clip with intensity 0-3. Stronger than film-grain — emulates the actual physics of consumer VHS playback. Use when the user wants VHS, tape look, generation loss, head-switch noise, or full analog tape damage.
---


# vhs-deck

Real VHS pipeline. Not just grain + scanlines — chroma bleeding, head-switching, time-base errors.

## Run

```bash
python3 ~/.claude/skills/vhs-deck/scripts/vhs_deck.py \
  --input clip.mp4 --out clip_vhs.mp4 --intensity 2
```

## Intensity

- `0` — clean reference (still desaturated)
- `1` — broadcast-tape, mild damage
- `2` — consumer SP-mode, default
- `3` — EP-mode triple-recorded, heavy generation loss

## What it actually does

- **Chroma bleed**: subsample chroma to 1/4 res then upscale. The classic blurry red bleed.
- **Head-switching**: bottom 2-6 rows of frame get noise/displacement, randomly per frame.
- **Time-base wobble**: per-line horizontal offset oscillating slowly.
- **RF interference**: salt-and-pepper noise on luma + occasional white-line dropouts.
- **Scanlines + interlace**: drawgrid + slight vertical motion blur between fields.
- **Generation loss**: progressive contrast crush + saturation pull on higher intensities.
- **Color shift**: slight magenta cast common to old NTSC tapes.

## Notes

- Pure ffmpeg — no extra deps.
- Source can be any resolution; output is 720p NTSC-shape (854x480 letterboxed if 16:9).
- Add `--ntsc` for NTSC field rate (29.97), `--pal` for PAL (25fps).
