Skip to main content

Normalize audio via ffmpeg / avconv

Project description

ffmpeg script for normalizing audio.

This program normalizes media files to a certain dB level. The default is an RMS-based normalization where the mean is lifted. Peak normalization is possible with the -m option.

It takes any audio or video file as input, and writes the audio part as output WAV file. The normalized audio can also be merged with the original.


  • Python 2.7 (Python 3 is not supported yet)
  • ffmpeg from installed in your $PATH


pip install ffmpeg-normalize


ffmpeg-normalize [options] <input-file>...


  • -f, --force — Force overwriting existing files
  • -l, --level <level> — dB level to normalize to [default: -28]
  • -p, --prefix <prefix> — Normalized file prefix [default: normalized]
  • -t, --threshold <threshold> — dB threshold below which the audio will be not adjusted [default: 0.5]
  • -o, --dir — Create an output folder in stead of prefixing the file
  • -m, --max — Normalize to the maximum (peak) volume instead of RMS
  • -v, --verbose — Enable verbose output
  • -n, --dry-run — Show what would be done, do not convert
  • -d, --debug — Show debug output
  • -u, --merge — Don’t create a separate WAV file but update the original file. Use in combination with -p to create a copy
  • -a, --acodec <acodec> — Set audio codec for ffmpeg (see “ffmpeg -encoders”) when merging. If not set, default from ffmpeg will be used.
  • -e, --extra-options <extra-options> — Set extra options passed to ffmpeg (e.g. “-b:a 192k” to set audio bitrate)


ffmpeg-normalize -v file.mp3
ffmpeg-normalize -v *.avi
ffmpeg-normalize -u -v -o -f -m -l -5 *.mp4
ffmpeg-normalize -u -v -a libfdk_aac -e "-b:v 192k" *.mkv


0.2.1 (2016-02-08)

  • Documentation fixes

0.2.0 (2016-02-08)

  • Support multiple input files
  • Allow merging with input file instead of creating separate WAV
  • Write to directory instead of using prefix
  • Set the audio codec when merging
  • Set additional encoder or ffmpeg options

Note: avconv support is very limited, use the real ffmpeg from instead.

0.1.3 (2015-12-15)

  • Bugfix for detecting ffmpeg or avconv on Windows (as .exe)
  • Add version to Usage message
  • Update year

0.1.2 (2015-11-13)

  • Bugfix for missing ffmpeg or avconv

0.1.0 (2015-08-01)

  • First release, changing name to ffmpeg-normalize

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ffmpeg-normalize, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size ffmpeg-normalize-0.2.1.tar.gz (6.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page