- Home
- Claude video editing
- Audio cleanup
On this page
What you need
- Claude Code in a terminal, pointed at a folder with your footage.
- ffmpeg and ffprobe on your PATH.
- A local Whisper model for word-level transcripts.
- Python with numpy, soundfile and OpenCV for the checks.
The dialogue chain, in order
High-pass at 80 Hz, a soft expander per mic, automix, breath reduction, light denoise and de-click, EQ, 3:1 compression, de-esser, limiter. Order matters.
| Step | Setting | Why |
|---|---|---|
| High-pass | 80 Hz | Rumble and handling noise out. |
| Soft expander, per mic | 1:3 below a threshold halfway between room and speech, 18 dB max, 4 ms attack, 80 ms hold, 250 ms release | Room and bleed down without chopping word onsets. |
| Automix | Gain sharing between mics | Kills bleed and comb filtering on two-person shows. |
| Breath reduction | Stretches 24 dB under speech pulled down 12 dB | Breaths softened, never removed. Never dead silence. |
| Denoise and de-click | Light | Hiss and mouth clicks. |
| EQ | -2 dB at 200 Hz, +2.5 dB at 4.2 kHz, +1 dB at 9 kHz | Mud out, presence and air in. |
| Compressor | 3:1, 10 ms attack, 160 ms release | Even level. |
| De-esser | Sibilant peaks only | Harsh "s" sounds. |
| Limiter | True peak below -1 dBTP | No clipping after encoding. |
ffmpeg -i mix.wav -af "highpass=f=80,afftdn=nr=10:nf=-50:tn=1,adeclick,\
equalizer=f=200:t=q:w=1:g=-2,equalizer=f=4200:t=q:w=1:g=2.5,equalizer=f=9000:t=q:w=1:g=1,\
acompressor=threshold=0.125:ratio=3:attack=10:release=160:makeup=1.4,\
deesser=i=0.4:m=0.5:f=0.55:s=o" work/voice.wavNormalize to -14 LUFS, then measure again
-14 LUFS integrated with true peak below -1 dBTP for social video; -16 LUFS for podcast apps. Measure the finished mix and move the fader, because single-pass loudnorm lands about 2 LU off on a voice-and-music mix.
ffmpeg -i work/voice.wav -af loudnorm=I=-14:TP=-1:print_format=json -f null - 2>&1 | tail -12
# if it reads input_i -17.6, the gain is -14 - (-17.6) = +3.6 dB
ffmpeg -i work/voice.wav -af "volume=3.6dB,alimiter=limit=0.79:level=disabled" work/voice_-14.wavffmpeg -i out/clip.mp4 -af ebur128=peak=true -f null - 2>&1 | grep -A12 SummaryEvery Claude video editing guide
Frequently asked questions
How do I normalize audio to -14 LUFS?
Measure integrated loudness with ffmpeg loudnorm or ebur128, apply the difference to -14 as gain, limit true peak below -1 dBTP, and re-measure the encoded file.
What LUFS should a podcast be?
-16 LUFS for podcast apps and -14 LUFS for social video, both with true peak below -1 dBTP.
Can AI clean up podcast audio?
Yes. Claude Code runs a full dialogue chain in ffmpeg (high-pass, expander, denoise, EQ, compression, de-esser, limiter) and checks the speech level is unchanged while the noise between words drops 8 to 12 dB.
Want finished ads, not editing sessions?
Director by Sprites is a full creative team for your startup. Every Monday you get finished, on-brand video ads, reviewed by a human. Strategy, hooks, scripts, shooting and editing, end to end. You never write a prompt. You pick the winners. Sprites ships the campaigns. In private beta.