Claude-skill-registry audio-editing-automation

FFmpeg audio processing, batch editing, normalization, mixing, and automated audio production workflows. Use when processing audio at scale, automating editing tasks, or building audio pipelines.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/audio-editing-automation" ~/.claude/skills/majiayu000-claude-skill-registry-audio-editing-automation && rm -rf "$T"
manifest: skills/data/audio-editing-automation/SKILL.md
source content

Audio Editing Automation

FFmpeg Audio Operations

Extract Audio from Video

ffmpeg -i input.mp4 -vn -acodec copy audio.aac
# -vn: no video
# -acodec copy: no re-encoding

Audio Format Conversion

# WAV to MP3
ffmpeg -i input.wav -c:a libmp3lame -b:a 192k output.mp3

# MP3 to AAC
ffmpeg -i input.mp3 -c:a aac -b:a 192k output.m4a

Volume Normalization

# Increase volume by 10dB
ffmpeg -i input.mp3 -af "volume=10dB" output.mp3

# Normalize using loudnorm filter
ffmpeg -i input.wav -af "loudnorm=I=-16:TP=-1.5:LRA=11" output.wav

Audio Mixing

# Mix two audio files
ffmpeg -i voice.mp3 -i music.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3

# Voice + background music (ducking)
ffmpeg -i voice.mp3 -i music.mp3 -filter_complex \
  "[1:a]volume=0.3[bg];[0:a][bg]amix=inputs=2:duration=first"  output.mp3

Batch Processing

import subprocess
from pathlib import Path

def normalize_audio_batch(input_dir, output_dir):
    for audio in Path(input_dir).glob("*.mp3"):
        output = Path(output_dir) / audio.name

        subprocess.run([
            'ffmpeg', '-i', str(audio),
            '-af', 'loudnorm=I=-16:TP=-1.5',
            str(output)
        ])

Audio Quality Standards

Podcast Export

Format: MP3
Bitrate: 128-192kbps
Sample Rate: 44.1kHz
Loudness: -16 LUFS
Peak: -1dB

Audiobook (ACX)

Format: MP3, 192kbps CBR
Sample Rate: 44.1kHz
Peak: -3dB
RMS: -18dB to -23dB
Noise Floor: -60dB

YouTube/Video

Format: AAC
Bitrate: 192kbps
Sample Rate: 48kHz
Loudness: -14 LUFS

Automation Workflow

def audio_production_pipeline(voice_file, music_file):
    # 1. Normalize voice
    normalize_audio(voice_file, 'voice_normalized.mp3')

    # 2. Mix with music
    mix_audio('voice_normalized.mp3', music_file, 'mixed.mp3')

    # 3. Final loudness normalization
    final_normalize('mixed.mp3', 'final.mp3', target_lufs=-16)

    # 4. Export for platforms
    export_for_podcast('final.mp3')
    export_for_youtube('final.mp3')

Resources

  • FFmpeg Audio Documentation
  • Loudness Standards (LUFS)
  • Audio Mastering Best Practices