Get this effect
Switch to Code in your Claude Desktop App
Install the skill (once)
Show the prompt
Install the Recharm video effects skill: download https://recharm-growth-staging.s3.us-east-2.amazonaws.com/website/downloads/recharm-video-effects.zip and unzip it into ~/.claude/skillsAsk for the effect
Add a film grain to input.mp4 Grain strength: 18 Grain size in pixels: 2
Several videos, several effects, one ask
Put your clips in the folder, mention them with @, and ask for everything at once. Claude runs one tested script after another on each clip, then joins them.
Add a film grain to @clip1.mp4, put a sale badge on @clip2.mp4, give @clip3.mp4 a VHS look, then join all three with crossfades.
Settings you can change
Ask Claude to change any of these, or edit them at the top of the command.
| Setting | Default | What it does |
|---|---|---|
GRAIN | 18 | Grain strength. 8 is barely there; 30 looks like fast, pushed film. |
CLUMP | 2 | Grain size in pixels. 1 is digital-fine; 3 looks like 16mm. |
Without the skill
Don’t want to install the skill? Paste this prompt into Claude Code and Claude writes the command itself.
Show the prompt
Add moving film grain to all of input.mp4, from the first frame to the last, without changing its colors. Use ffmpeg: make a mid-gray layer (0x808080) at half the video's size (270x480 for a 540x960 clip) and 30fps, add fresh noise to its brightness channel only on every frame (noise=c0s=18:c0f=t, after format=yuv420p), scale it back up to the video's size with bicubic scaling so each speck is about 2 pixels, and add it to the footage with blend=all_mode=grainmerge:shortest=1 so mid-gray changes nothing. The grain must be gray, not colored, and the overall brightness must stay the same. Keep the size, 30fps, the 6-second length and the audio. Save it as output.mp4.Run it without Claude
This is the exact command we tested. Save it as film-grain.sh and run:
sh film-grain.sh input.mp4 output.mp4Show the command
#!/bin/sh
# Film grain: fine gray grain that changes every frame lies over the whole picture, like footage shot on film stock.
# Usage: sh film-grain.sh input.mp4 output.mp4
# Needs ffmpeg.
set -e
IN="$1"; OUT="$2"
GRAIN=18 # grain strength; 8 is barely there, 30 looks like fast, pushed film
CLUMP=2 # grain size in pixels; 1 is digital-fine, 3 looks like 16mm
SIZE=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "$IN")
W=${SIZE%x*}; H=${SIZE#*x}
# A mid-gray layer at 1/CLUMP size gets fresh noise every frame (allf=t), on brightness only so the
# grain is gray, not colored, and is scaled back up so each speck covers CLUMP pixels. grainmerge adds it
# to the footage centered on mid-gray, so the colors and overall brightness stay where they were.
ffmpeg -y -v error -i "$IN" -f lavfi -i "color=c=0x808080:s=$((W / CLUMP))x$((H / CLUMP)):r=30" -filter_complex \
"[0:v]fps=30,format=yuv420p[v];[1:v]format=yuv420p,noise=c0s=$GRAIN:c0f=t,scale=$W:$H:flags=bicubic[g];\
[v][g]blend=all_mode=grainmerge:shortest=1,format=yuv420p" \
-c:v libx264 -crf 18 -c:a copy "$OUT"





