How to add a film grain with Claude

A fine gray speckle that shifts every frame sits over the bottle and backdrop, while the purple and the holographic colors stay exactly as they were.

Get this effect

  1. Switch to Code in your Claude Desktop App

  2. 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/skills
  3. Ask 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.

SettingDefaultWhat it does
GRAIN18Grain strength. 8 is barely there; 30 looks like fast, pushed film.
CLUMP2Grain 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.mp4
Show 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"

Find 3x winning ads

Recharm cuts your ad footage into tagged, searchable clips: hooks, testimonials, product shots. Find the shots that win, add the effect with Claude, and ship 3x more ad edits.

Start 14-day free trial