Originally published at ffmpeg-micro.com
You're editing together clips from three different recording sessions, and every cut brings a jarring volume shift. One speaker whispers, the next shouts, and the background noise floor jumps around. You could run a two-pass loudnorm workflow targeting EBU R128, but that's designed for broadcast compliance, not general-purpose volume leveling.
FFmpeg's dynaudnorm filter solves this specific problem. It applies dynamic audio normalization frame-by-frame, adjusting gain in real time without requiring two-pass processing. You pass a single command, and it smooths out volume differences across your entire file.
How dynaudnorm Works
The dynaudnorm filter divides your audio into short frames, calculates the peak or RMS level of each frame, and applies a gain factor to bring that frame closer to a target level. A Gaussian-weighted smoothing window prevents abrupt gain changes between frames, so transitions sound natural rather than pumpy.







