media-ffmpeg-normalize

Installation
SKILL.md

Media Ffmpeg Normalize

Context: $ARGUMENTS

ffmpeg-normalize is a Python wrapper around ffmpeg's loudnorm filter that automates proper 2-pass EBU R128 normalization, batch directories, and preserves non-audio streams. Raw loudnorm is 1-pass by default (dynamic, inaccurate); this tool does the measure-then-apply pass automatically.

Quick start

  • Normalize one file (EBU R128 -23 LUFS default): ffmpeg-normalize in.mp3 -o out.mp3 → Step 3
  • Streaming target (-14 LUFS YouTube/Spotify): ffmpeg-normalize in.wav -t -14 -o out.wav → Step 2
  • Batch a podcast folder: ffmpeg-normalize episodes/*.mp3 -of out/ -t -16 -tp -1.5 -lrt 11 → Step 3
  • Video (keep video stream, re-encode audio only): ffmpeg-normalize in.mp4 -c:a aac -b:a 192k -o out.mp4 → Step 3

When to use

  • Batch-normalizing many files to one target loudness (podcast archive, music library, course videos).
  • You want proper 2-pass EBU R128 without wiring the loudnorm JSON round-trip yourself (see ffmpeg-audio-filter skill if you need manual control).
  • Delivering to broadcast, streaming platforms, or archives with an LUFS spec.
  • Don't use for cross-file consistency (e.g., album-gain style). Each file is normalized independently. For consistent relative levels across a set, use a single manual 2-pass loudnorm with a shared measurement, per the ffmpeg-audio-filter skill.
Installs
5
GitHub Stars
17
First Seen
May 27, 2026
media-ffmpeg-normalize — damionrashford/media-os