# slhck/ffmpeg-normalize

Audio Normalization for Python/ffmpeg

Repository: https://github.com/slhck/ffmpeg-normalize
Canonical: https://ross.abutalabs.com/products/ffmpeg-normalize
Homepage: https://slhck.info/ffmpeg-normalize/
Language: HTML
License: NOASSERTION
License Family: other
Topics: python, ffmpeg, audio
Last push: 2026-07-10T07:42:29+00:00

## Health v2 (maintenance only)
Score: 93/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 91, release rhythm 92, longevity 100
- inputs: {"age_days": 4416, "days_push": 54, "days_rel": 54, "gap_med": 5.0, "n_releases_24m": 21}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1529, forks 129 (observed 2026-08-28T04:04:58.750830+00:00)

## What it is
A Python-based CLI tool and library that batch-normalizes audio in media files using ffmpeg, supporting EBU R128 loudness, RMS, and peak normalization. It can process video files while preserving video streams and is also usable programmatically via a Python API.

## Use cases
- normalize audio loudness of video files to EBU R128
- batch normalize a folder of audio files
- peak-normalize wav files to a target level
- normalize audio without re-encoding the video stream
- write ReplayGain tags to a music collection
- normalize album tracks jointly preserving relative loudness
- skip files already at target loudness in a batch job
- use loudness normalization from a Python script

## When to choose
- you need standards-based EBU R128 loudness normalization with ffmpeg
- you want batch processing of mixed audio/video files
- you need a Python API or Docker image for normalization pipelines
- you want to skip re-encoding files already at target level

## When to avoid
- you need real-time or streaming audio normalization
- you want lossless normalization of a music collection without re-encoding (use --replaygain or a dedicated tagger)
- you cannot install a recent ffmpeg with the loudnorm filter
- you need graphical batch audio editing

## Facets
- artifact type: cli-tool
- maturity: active
- function: audio-processing, cli, video-processing
- domain: media, developer-tools
- platform: windows, python, cli, cross-platform
- tags: ffmpeg, loudness-normalization, ebu-r128, loudnorm, peak-normalization, rms-normalization, replaygain, batch-processing, audio, command-line, linux, macos, docker

## Member repositories
- slhck/ffmpeg-normalize (main) score 93

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:58.750830+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:31:29.000128+00:00, confidence not recorded.
  - readme: https://github.com/slhck/ffmpeg-normalize (fetched 2026-08-28T04:04:58.750830+00:00, sha 019528dc3903)
  - homepage: https://slhck.info/ffmpeg-normalize/ (fetched 2026-08-29T11:33:59.462205+00:00, sha 8a7a52cbdef9)
  - site_page: https://slhck.info/ffmpeg-normalize/getting-started/requirements (fetched 2026-08-29T11:33:59.465506+00:00, sha a435c6e2dee5)
  - site_page: https://slhck.info/ffmpeg-normalize/getting-started/installation (fetched 2026-08-29T11:33:59.467603+00:00, sha cdf47bebbe52)
  - site_page: https://slhck.info/ffmpeg-normalize/getting-started/docker (fetched 2026-08-29T11:33:59.469648+00:00, sha 59d33477d2e4)
  - site_page: https://slhck.info/ffmpeg-normalize/about/changelog (fetched 2026-08-29T11:33:59.472994+00:00, sha 276b7ad41ceb)
  - site_page: https://slhck.info/ffmpeg-normalize/about/contributing (fetched 2026-08-29T11:33:59.474420+00:00, sha e8a45c97faae)
  - site_page: https://slhck.info/ffmpeg-normalize/about/license (fetched 2026-08-29T11:33:59.476045+00:00, sha 3e2990eff79a)
  - site_page: https://slhck.info/ffmpeg-normalize/advanced/faq (fetched 2026-08-29T11:33:59.471333+00:00, sha cf4625810e8c)
- Data as of 2026-08-30T08:39:29.467469+00:00.
