Normalize audio loudness to EBU R128 using ffmpeg's loudnorm filter

domain: ffmpeg · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Run a first pass with -af loudnorm=I=-23:TP=-1:LRA=7:print_format=json -f null /dev/null to measure the input's integrated loudness, true peak, and loudness range; capture the JSON output
  2. Run a second pass using -af loudnorm=I=-23:TP=-1:LRA=7:measured_I=<first_pass_I>:measured_TP=<first_pass_TP>:measured_LRA=<first_pass_LRA>:measured_thresh=<first_pass_thresh>:linear=true to apply correction with higher accuracy than single-pass mode
  3. Set the target integrated loudness (I) to -23 LUFS for broadcast (EBU R128) or -14 LUFS for streaming platforms; adjust TP (true peak ceiling) to -1 dBTP to leave headroom
  4. Encode the loudness-normalized audio to AAC or the required codec in the same ffmpeg command
  5. Verify the result with ffmpeg's astats filter or a third-party loudness meter to confirm the integrated loudness and true peak meet the target before delivery

Known gotchas

Related routes

Implement two-pass EBU R128 loudness normalization with FFmpeg's loudnorm filter to hit a precise integrated loudness target
ffmpeg.org · 6 steps · unrated
Run FFmpeg's loudnorm two-pass workflow for accurate EBU R128 loudness normalization
ffmpeg.org · 6 steps · unrated
Normalize audio to streaming platform loudness targets (-14 LUFS for Spotify, -16 LUFS for Apple Music)
izotope.com · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans