Loudness Normalization Targets in video-use: -14 LUFS, -1 dBTP, and LRA 11

video-use applies industry-standard loudness normalization targets of -14 LUFS integrated loudness, -1 dBTP true peak, and 11 LU loudness range to ensure social-media-ready audio output.

The video-use repository automatically normalizes audio to platform-compliant loudness standards during the rendering pipeline. These loudness normalization targets match the specifications used by YouTube, Instagram, TikTok, X, and LinkedIn, ensuring your exported videos meet broadcast requirements without manual audio mastering.

The Three Loudness Normalization Targets

Integrated Loudness (-14 LUFS)

The integrated loudness target is set to -14.0 LUFS (Loudness Units relative to Full Scale). This value represents the average perceived loudness of the entire program, calibrated to match the standard used by major streaming platforms.

True Peak (-1 dBTP)

The true peak limit is -1.0 dBTP (dB True Peak). This prevents inter-sample peaks that can cause distortion when the audio is converted to analog or transcoded by social platforms.

Loudness Range (LRA 11)

The loudness range target is 11.0 LU (Loudness Units). This controls the variation between loud and quiet sections, ensuring dialogue remains intelligible while preserving dynamic content.

Implementation in helpers/render.py

These constants are defined in helpers/render.py as module-level variables:


# helpers/render.py – loudness normalisation targets

LOUDNORM_I = -14.0          # integrated LUFS

LOUDNORM_TP = -1.0          # true‑peak dBTP

LOUDNORM_LRA = 11.0         # loudness range LU

The apply_loudnorm_two_pass function constructs an FFmpeg filter string using these values:

filter_str = (
    f"loudnorm=I={LOUDNORM_I}:TP={LOUDNORM_TP}:LRA={LOUDNORM_LRA}"
    # … additional measured‑input parameters for the two‑pass pass …

)

This implementation performs a two-pass normalization process. The first pass analyzes the audio to determine input loudness characteristics, and the second pass applies the correction to reach the target values.

Rendering with Loudness Normalization

By default, video-use applies loudness normalization automatically during export. You can control this behavior through command-line flags.

Default Two-Pass Normalization

Run a standard render to apply the -14 LUFS normalization automatically:

python helpers/render.py my_edl.json -o final.mp4

This command:

  1. Extracts and concatenates video segments
  2. Composites overlays and subtitles
  3. Performs two-pass loudness normalization to -14 LUFS / -1 dBTP / LRA 11

Skip Normalization

To bypass loudness normalization when working with pre-mastered audio, use the --no-loudnorm flag:

python helpers/render.py my_edl.json -o final.mp4 --no-loudnorm

This copies the audio stream unchanged without applying the loudnorm filter.

Preview Mode

For faster preview builds, the --preview flag runs a single-pass approximation using the same target values:

python helpers/render.py my_edl.json -o preview.mp4 --preview

Note that preview mode sacrifices accuracy for speed while maintaining the same target parameters.

Summary

  • video-use enforces -14 LUFS integrated loudness, -1 dBTP true peak, and 11 LU loudness range as default targets.
  • These constants are defined in helpers/render.py as LOUDNORM_I, LOUDNORM_TP, and LOUDNORM_LRA.
  • The apply_loudnorm_two_pass function implements a two-pass FFmpeg loudnorm filter process to achieve these targets.
  • Use --no-loudnorm to skip normalization or --preview for faster single-pass processing.

Frequently Asked Questions

What do -14 LUFS, -1 dBTP, and LRA 11 mean?

-14 LUFS measures the average perceived loudness of the entire track, ensuring consistent volume across platforms. -1 dBTP is the maximum true peak level that prevents digital clipping during conversion. LRA 11 (Loudness Range) specifies the acceptable variation between loud and quiet sections, keeping content accessible while preserving artistic dynamics.

Where are the loudness normalization targets defined in video-use?

The targets are hardcoded in helpers/render.py as the constants LOUDNORM_I = -14.0, LOUDNORM_TP = -1.0, and LOUDNORM_LRA = 11.0. These values are passed to FFmpeg's loudnorm filter during the rendering process implemented in the apply_loudnorm_two_pass function.

Can I customize the loudness normalization targets?

The current implementation in helpers/render.py uses fixed constants. To modify the targets, you would need to edit the LOUDNORM_I, LOUDNORM_TP, and LOUDNORM_LRA variables in the source code directly, as there are no command-line arguments exposed for adjusting these values.

Why does video-use use two-pass loudness normalization?

The two-pass approach allows the apply_loudnorm_two_pass function to first analyze the input audio's existing loudness characteristics, then apply precise gain adjustments to meet the -14 LUFS target without causing clipping or unnatural compression. This produces higher-quality results than single-pass normalization, though the --preview flag offers a faster single-pass alternative when quality is less critical.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →