ffmpeg audio mixing patterns for video production. Use when mixing narration with music, implementing ducking, or balancing volume levels for demos
View on GitHubyonatangross/orchestkit
ork-video
February 4, 2026
Select agents to install to:
npx add-skill https://github.com/yonatangross/orchestkit/blob/main/plugins/ork-video/skills/audio-mixing-patterns/SKILL.md -a claude-code --skill audio-mixing-patternsInstallation paths:
.claude/skills/audio-mixing-patterns/# Audio Mixing Patterns
Comprehensive guide to audio mixing for video production using ffmpeg. Covers narration/music balancing, automatic ducking, timing control, and loudness normalization.
## Core Principle
**Quality Audio = Clear Narration + Supportive Music + Appropriate Levels**
The human voice occupies 85-255 Hz (fundamental) with harmonics up to 8kHz. Music must support, not compete.
## Volume Balancing Formula
```
Standard Video Mix Ratios:
--------------------------
Narration: 100% (reference level)
Music: 15-20% of narration level
SFX: 70-100% of narration level (contextual)
dB Relationships:
-----------------
Narration: -14 dB LUFS (dialogue standard)
Music bed: -30 to -35 dB LUFS (under narration)
Music only: -16 dB LUFS (no narration sections)
SFX: -18 to -20 dB LUFS
```
### Volume Multiplier Quick Reference
| Ratio | Multiplier | Use Case |
|-------|------------|----------|
| 100% | 1.0 | Full volume (narration) |
| 70% | 0.7 | Prominent SFX |
| 50% | 0.5 | Equal blend |
| 30% | 0.3 | Noticeable background |
| 20% | 0.2 | Subtle bed (recommended music) |
| 15% | 0.15 | Minimal presence |
| 10% | 0.1 | Barely audible |
## Basic ffmpeg Mixing Commands
### Two-Track Mix (Narration + Music)
```bash
# Basic mix: narration at full, music at 15%
ffmpeg -i narration.mp3 -i music.mp3 \
-filter_complex "[0:a]volume=1.0[narr];[1:a]volume=0.15[music];[narr][music]amix=inputs=2:duration=first" \
-c:a aac -b:a 192k output.m4a
```
### Three-Track Mix (Narration + Music + SFX)
```bash
ffmpeg -i narration.mp3 -i music.mp3 -i sfx.mp3 \
-filter_complex "\
[0:a]volume=1.0[narr];\
[1:a]volume=0.15[music];\
[2:a]volume=0.7[sfx];\
[narr][music][sfx]amix=inputs=3:duration=first:weights='3 1 2'" \
-c:a aac -b:a 192k output.m4a
```
## Timing with adelay Filter
The `adelay` filter positions audio at precise timestamps.
### Syntax
```bash
adelay=delays[|delays...][,all=1]
# delays: milliseconds or samples (with 'S'