Audio and video · Edition No. 13 · 7 Sep 2026

slhck/ffmpeg-normalize

Normalises every video to the EBU R128 loudness YouTube expects — ten minutes, and viewers stop reaching for the volume.

← Audio and videoRead the whole edition →
04

slhck/ffmpeg-normalize

💎 hidden gem

1.5k stars · MIT · v1.42.0 (2026-09-02)

Normalises every video to the EBU R128 loudness YouTube expects — ten minutes, and viewers stop reaching for the volume.

Repo detailsthe review · specs · pros & cons · install

What it is

A small program that measures how loud a file is, using the EBU R128 standard, then rewrites it to a level you choose. That is the same measurement YouTube uses when it quietly turns your upload up or down.

Why it matters

This is the biggest difference between an amateur video and a professional one, and almost nobody outside audio work knows it exists. If one tutorial is recorded quiet and the next one loud, a viewer reaches for the volume twice in a row. They form an opinion about your channel and they never put it into words. Setting everything to the same level makes twelve videos sound like one channel. It becomes even more important if you take #1 and #2. Your own recorded voice, a copied voice and a Piper draft will all arrive at different levels. This is the step that makes them one video instead of three different sources.

Stars1.5k
LicenceMIT
Latestv1.42.0 (2026-09-02)checked 7 Sep 2026
Written inHTML
NeedsDocker, Python 3 and ffmpeg
Setup effort
1 / 5
Payoff
4 / 5
Good
  • You can run it over a whole folder at once. Your entire back catalogue in one pass.
  • Ten minutes to learn, and nothing to remember afterwards.
  • MIT licence, and uvx can run it without installing anything permanently.
Watch for
  • It needs ffmpeg on the machine. Recordings with one speaker usually need the --dual-mono flag. That is the one detail everyone gets wrong the first time.
  • It fixes loudness only. It does not fix noise, hum or room echo. Those are still your problem. See the note above about why.
  • Making a quiet part louder also makes the hiss under it louder. Listen to the result, do not just trust the number.
Replaces

This is the step that makes them one video instead of three different sources.

Install
brew install ffmpeg
uvx ffmpeg-normalize lesson.mp4 -c:a aac -b:a 192k -t -14 --dual-mono -o lesson-normalized.mp4
Screenshots
slhck/ffmpeg-normalize: GitHub preview cardslhck/ffmpeg-normalize: Screenshot 1slhck/ffmpeg-normalize: Screenshot 2slhck/ffmpeg-normalize: Screenshot 3slhck/ffmpeg-normalize: Screenshot 4

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.