
ffmpeg-normalize
Audio Normalization for Python/ffmpeg
The Lens
ffmpeg-normalize fixes audio that is too loud, too quiet, or all over the place from clip to clip. Point it at a file or a whole folder and it normalizes loudness to broadcast-style targets (EBU R128) or simple peak and RMS levels, using FFmpeg under the hood. If you have ever stitched together video where one clip blows out your speakers and the next is a whisper, this is the tool that makes them match. It is free, MIT-licensed, and it is both a command-line tool and a Python module.
There is almost nothing to set up beyond having FFmpeg installed; it is a pip install or a Docker image, and it is maintained by Werner Robitza, who is steady and responsive about it. The one thing to understand is that loudness normalization is opinionated: EBU R128 targets a standard that is right for spoken-word and broadcast but can feel flat for music, so the defaults will not suit every job. The flags to override that are all there once you read the docs.
For anyone doing podcasts, video editing, or batch audio cleanup, this belongs in your toolbox. There is no paid version and no reason for one. The alternatives are doing it by hand in an audio editor, which is slower, or wiring up raw FFmpeg loudnorm filters yourself, which this tool exists to save you from.
Free vs Self-Hosted vs Paid
fully freeFree: All of it. MIT license, the CLI and the Python module, every normalization mode (EBU R128, peak, RMS).
Self-hosted: Not really a concept here. It runs locally wherever FFmpeg runs; install via pip or Docker.
Paid: None, and none needed. It is a focused utility, not a product with a business model.
Free and MIT-licensed. A focused FFmpeg wrapper with no paid tier and no reason for one.
Get tools like this every Wednesday
One featured tool, three on the radar. No fluff.
License: Other
Review license manually.
Commercial use: ✗ Restricted
About
- Owner
- Werner Robitza (User)
- Stars
- 1,511
- Forks
- 127