danielrosehill/claude-video-editor-plugin/normalize-audio
Claude Code and agent skill by danielrosehill/claude-video-editor-plugin
- community
Checking that the SKILL.md file is still in the repository.
Apply ffmpeg loudnorm (two-pass EBU R128) to a video or audio file, hitting the user's preferred LUFS / true-peak target (or one specified inline). Use when the user says "normalize this", "fix the levels", "make this -14 LUFS", "loudnorm this", "normalize for YouTube/podcast/broadcast". Pairs with audio-analysis (analyze recommends, this skill applies). Re-muxes video stream-copy when the input is video.
Install
npx vskill@latest install danielrosehill/claude-video-editor-plugin/normalize-audioSKILL.md
Normalize Audio
Two-pass loudnorm to hit a precise integrated LUFS + true-peak target. Reads the user's default target from preferences.json if present; otherwise accepts an inline target.
This is the apply step that pairs with the read-only audio-analysis skill.
Procedure
1. Inputs
| Field | Default | |
|---|---|---|
| Source | required (video or audio) | |
| Target | from preferences.json (loudness.target); else ask. Choices: youtube (-14/-1), spotify (-14/-1), apple-music (-16/-1), podcast (-16/-1), broadcast (-23/-2) | |
| Output | sibling <basename>.normalized.<ext> (or project's working/ if inside an index project) |
Resolve target → I (integrated LUFS), TP (true peak), LRA (default 11).
2. Pass 1 — measure
Sanity-check: if any of these are "-inf" or null, the source has silence-only or non-finite measurements. Fall back to single-pass loudnorm and warn.
3. Pass 2 — apply with measured values
If source is video
Stream-copy video, re-encode audio only:
If the source has multiple audio tracks, normalize only a:0 and stream-copy the rest unless the user asked otherwise.
If source is audio-only
Pick the output codec from the input extension; default to wav for lossless intermediates, mp3/aac for delivery:
4. Verify
Re-run a quick ebur128 pass on the output and confirm integrated is within ±0.5 LU of target and true-peak is at or below the ceiling:
5. Report
Print a one-table summary:
Notes
linear=truekeeps dynamics intact when the source already fits within the target LRA. Drop it (or omit) if you want loudnorm to compress to fit.- For batch normalization (folder), iterate this same two-pass over each file. Don't try to share Pass-1 measurements across files — each clip is measured independently.
- This skill never overwrites the source. Output goes to a sibling file or the project's
working/directory.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/normalize-audio/SKILL.md
Popularity
- Repository stars
- 6
- 7-day trend score
- 10
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/danielrosehill/claude-video-editor-plugin/normalize-audio)