Video-Use Loudness Normalization Targets: -14 LUFS, -1 dBTP, and LRA 11 Explained

The video-use library normalizes audio to -14 LUFS integrated loudness, -1 dBTP true-peak, and 11 LU loudness range using FFmpeg's loudnorm filter.

These targets align with the industry-standard "social-ready" loudness curve used by major platforms including YouTube, Instagram, TikTok, X, and LinkedIn. The browser-use/video-use repository hardcodes these values in its rendering pipeline to ensure consistent audio levels across all exported videos.

Default Loudness Targets in video-use

The repository enforces a three-parameter loudness standard during the final render stage. These constants are defined in helpers/render.py and passed directly to FFmpeg's loudnorm filter.

Integrated Loudness (-14 LUFS)

Integrated loudness measures the average perceived loudness over the entire duration of the audio. The LOUDNORM_I constant is set to -14.0 LUFS (Loudness Units relative to Full Scale), matching the delivery specifications recommended for streaming platforms to ensure comfortable listening levels on mobile devices.

True Peak (-1 dBTP)

True peak represents the maximum level of the audio signal after digital-to-analog conversion. The LOUDNORM_TP constant targets -1.0 dBTP (decibels True Peak), preventing inter-sample clipping and distortion while maximizing headroom for platform transcoding.

Loudness Range (11 LU)

Loudness range (LRA) quantifies the variation in loudness throughout the content. The LOUDNORM_LRA constant is set to 11.0 LU, preserving natural dynamics for dialogue-driven content while compressing extreme variations that could fatigue listeners.

Where the Targets Are Defined in the Source Code

The normalization parameters are explicitly declared as module-level constants in the rendering pipeline. In helpers/render.py (lines 892-894), you will find:


# 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

These values are immutable defaults that ensure every rendered video meets broadcast-ready specifications without requiring manual configuration.

How the Normalization Pipeline Works

The apply_loudnorm_two_pass function (implemented in helpers/render.py, lines 70-78) constructs the FFmpeg filter string using these constants. The function performs a two-pass analysis: first measuring the input audio characteristics, then applying the corrective gain to hit the targets.

The filter construction follows this pattern:

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

)

This approach ensures frame-accurate loudness correction while maintaining the original audio quality, utilizing FFmpeg's EBU R128-compliant loudness normalization algorithm.

Command-Line Usage Examples

You can control the loudness normalization behavior when running the render script from the terminal.

Standard Render with Default Normalization

To process an EDL (Edit Decision List) file with the default -14 LUFS / -1 dBTP targets:

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

The script automatically executes:

  1. Video segment extraction and concatenation
  2. Overlay and subtitle compositing
  3. Two-pass loudness normalization to the standard targets

Skip Normalization for Pre-Mastered Audio

If your source audio is already mastered to specification, bypass the loudnorm step to prevent double-processing:

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

This flag copies the audio stream unchanged, preserving your existing loudness processing.

Fast Preview with Single-Pass Normalization

For quick dailies or preview builds where processing speed matters more than precision:

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

Preview mode runs a single-pass approximation using the same target values (-14 LUFS, -1 dBTP, LRA 11), significantly reducing render time while maintaining roughly consistent loudness levels.

Summary

  • video-use targets -14 LUFS integrated loudness, -1 dBTP true peak, and 11 LU loudness range as defined in helpers/render.py.
  • These constants (LOUDNORM_I, LOUDNORM_TP, LOUDNORM_LRA) are applied via FFmpeg's loudnorm filter in the apply_loudnorm_two_pass function.
  • The two-pass process ensures accurate loudness correction for social media delivery standards.
  • Users can disable normalization with --no-loudnorm or use single-pass preview mode with --preview.

Frequently Asked Questions

What is the default integrated loudness target in video-use?

The default integrated loudness target is -14.0 LUFS, defined by the LOUDNORM_I constant in helpers/render.py. This value aligns with the loudness standards used by YouTube, Spotify, and other major streaming platforms to ensure consistent playback volume across different content types.

Can I disable loudness normalization in video-use?

Yes. Pass the --no-loudnorm flag when running helpers/render.py to bypass the audio processing step entirely. This preserves the original audio levels, which is useful when working with pre-mastered tracks or when you need to maintain specific dynamic range characteristics for theatrical delivery.

Why does video-use use -14 LUFS specifically?

The -14 LUFS target represents the modern consumer streaming standard that balances audibility on mobile devices with dynamic preservation. According to the video-use source code, this value ensures "social-ready" output compatible with platform-specific loudness normalization algorithms, preventing additional gain changes during upload to YouTube, Instagram, or TikTok.

What is the difference between LUFS and dBTP?

LUFS (Loudness Units relative to Full Scale) measures perceived loudness over time using the EBU R128 algorithm, accounting for human hearing sensitivity. dBTP (decibels True Peak) measures the absolute maximum signal level including inter-sample peaks that may occur during digital-to-analog conversion. video-use targets -14 LUFS for average loudness and -1 dBTP for peak limiting to prevent distortion.

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 →