Loudness Normalization Standards in video-use for Social Media Uploads
video-use normalizes audio to -14 LUFS integrated loudness with a -1 dBTP true-peak ceiling and 11 LU loudness range, matching the social media standards used by YouTube, Instagram, TikTok, X, and LinkedIn.
The browser-use/video-use repository is an open-source video processing tool that automatically handles audio normalization for social media platforms. Understanding the specific loudness normalization standards it enforces ensures your content meets platform requirements without manual adjustment. These standards are hardcoded in the rendering pipeline to guarantee compatibility across major social networks.
Social Media Loudness Targets Defined in helpers/render.py
The video-use tool defines its social media audio targets as module-level constants in helpers/render.py. According to the source code at lines 90–95, the implementation uses the following FFmpeg loudnorm filter parameters:
LOUDNORM_I: Set to -14.0 LUFS (integrated loudness target)LOUDNORM_TP: Set to -1.0 dBTP (true-peak ceiling to prevent clipping)LOUDNORM_LRA: Set to 11.0 LU (allowed loudness range)
The comment above these constants in helpers/render.py explicitly states these values match the normalization targets for YouTube, Instagram, TikTok, X/Twitter, and LinkedIn. This ensures any video rendered with default settings conforms to the industry standard for social media uploads.
Two-Pass Loudness Normalization Implementation
The normalization workflow relies on the apply_loudnorm_two_pass function implemented at lines 97–130 of helpers/render.py. This function executes a measurement phase followed by a correction phase:
- First Pass (Measurement): The function analyzes the source audio using the target constants to calculate the current offset from the -14 LUFS standard.
- Second Pass (Application): It applies the measured offsets using FFmpeg's
loudnormfilter to achieve the exact target loudness specified by the constants.
This two-pass approach ensures accurate loudness normalization while preserving the dynamic range constraints defined by the 11 LU loudness range parameter.
Controlling Normalization via CLI and Python API
By default, video-use automatically applies loudness normalization to every render. You can control this behavior through both the command line and the Python API.
Command Line Usage:
# Render with social media loudness normalization (default)
video-use render path/to/edl.json -o final.mp4
# Skip normalization (e.g., for already-normalized audio)
video-use render path/to/edl.json -o final.mp4 --no-loudnorm
The --no-loudnorm flag is defined around line 600 in helpers/render.py and disables the normalization step entirely.
Programmatic Usage:
from pathlib import Path
from helpers.render import apply_loudnorm_two_pass
input_video = Path("tmp_prenorm.mp4")
output_video = Path("final.mp4")
# Apply the two-pass normalization using social media targets
apply_loudnorm_two_pass(input_video, output_video, preview=False)
When calling apply_loudnorm_two_pass directly, the function automatically references the LOUDNORM_I, LOUDNORM_TP, and LOUDNORM_LRA constants defined in the same file.
Summary
- video-use targets -14 LUFS integrated loudness with a -1 dBTP true-peak ceiling and 11 LU loudness range for social media compatibility.
- These constants are defined in
helpers/render.pyat lines 90–95. - The
apply_loudnorm_two_passfunction implements the two-pass FFmpeg normalization at lines 97–130. - Normalization is enabled by default; disable it with the
--no-loudnormCLI flag. - The output conforms to standards used by YouTube, Instagram, TikTok, X/Twitter, and LinkedIn.
Frequently Asked Questions
What loudness normalization standards does video-use use by default?
video-use defaults to -14 LUFS integrated loudness with a -1 dBTP true-peak ceiling and 11 LU loudness range. These values are defined as LOUDNORM_I, LOUDNORM_TP, and LOUDNORM_LRA in helpers/render.py and match the requirements for major social media platforms.
Which social media platforms are compatible with video-use audio normalization?
The normalization targets align with the standards used by YouTube, Instagram, TikTok, X/Twitter, and LinkedIn. According to the source code comments in helpers/render.py, the -14 LUFS / -1 dBTP / 11 LU profile ensures your video audio meets the upload requirements for all these platforms simultaneously.
How do I disable loudness normalization in video-use?
Pass the --no-loudnorm flag when using the CLI render command. This argument is parsed in helpers/render.py around line 600 and skips the apply_loudnorm_two_pass function entirely. When using the Python API, simply avoid calling the normalization function if you want to preserve the original audio levels.
Where are the loudness constants defined in the source code?
The loudness normalization constants are declared in helpers/render.py at lines 90–95. You will find LOUDNORM_I (-14.0), LOUDNORM_TP (-1.0), and LOUDNORM_LRA (11.0) defined there, accompanied by a comment explaining their purpose for social media standardization.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →