A native macOS drag-and-drop app that fixes quiet video audio without introducing clipping or distortion. The video stream is copied losslessly when the codec is MP4-compatible; only the audio is reprocessed and normalized to one of three loudness presets (YouTube -14 LUFS, Podcast -16 LUFS, Broadcast/EBU R128 -23 LUFS).
Supports .mp4, .mov, .mkv, and .webm input. Output is always MP4.
- macOS 11 or later
- FFmpeg (install with Homebrew:
brew install ffmpeg)
FFmpeg is not bundled with the app. AudioBoost detects it on PATH or at the standard
Homebrew locations (/opt/homebrew/bin/ffmpeg, /usr/local/bin/ffmpeg) and shows an
install prompt if it's missing.
- Download
AudioBoost.app(or build it — see below). - Drag it into
/Applications. - The first time you launch it, right-click → Open to bypass Gatekeeper's "unidentified developer" warning. This is a one-time click; subsequent launches work normally.
- Launch AudioBoost.
- (Optional) pick a loudness target: YouTube -14, Podcast -16, or Broadcast -23.
- Drag one or more
.mp4/.mov/.mkv/.webmfiles onto the drop zone (or click to choose). Files stack into a queue with per-file status (pending → processing → done / failed). - Click Boost Audio.
- Each output lands next to its source as
<name>_boosted.mp4. If that name is taken the app appends_2,_3, etc.
If a single file in the batch fails, the rest still process. Cancel stops after the current file. Click Show in Finder to reveal the first output, or Process another to clear the queue.
AudioBoost can process files without opening a window — useful for scripts, cron jobs, or the Finder Quick Action below. Invoke the bundled binary directly:
/Applications/AudioBoost.app/Contents/MacOS/AudioBoost \
--cli --target podcast path/to/video.mp4Flags:
--cli— no GUI; process the given files and exit.--target {youtube,podcast,broadcast}— loudness preset (defaultyoutube).- positional
FILEs — any number of input videos. Each produces<name>_boosted.mp4next to the source.
A macOS notification is posted when processing starts and again when it finishes. The process prints per-file progress to stdout and exits 0 on success, non-zero on any failure.
Install the Quick Action once to get a Boost Audio with AudioBoost item in Finder's right-click menu:
./quick_action/install.shThen right-click any .mp4 / .mov / .mkv / .webm file → Quick
Actions → Boost Audio with AudioBoost. The workflow wraps the CLI
above, so notifications appear and the output lands next to the source.
Uninstall with ./quick_action/install.sh --uninstall.
AudioBoost runs a three-stage audio filter chain:
highpass=f=80— strips sub-80 Hz rumble (mic handling, AC hum) before amplification.acompressor=threshold=-24dB:ratio=3:attack=20:release=250— a gentle speech-friendly compressor that tames peaks so the loudness boost won't clip.loudnorm=I=<target>:TP=<peak>:LRA=<range>— EBU R128 loudness normalization. Run as a two-pass normalization: pass 1 measures the input, pass 2 applies linear (non-pumpy) correction using the measurements. True-peak ceiling (-1.5 dBTP for YouTube/Podcast, -1.0 for Broadcast) guarantees no digital clipping in the output.
Video: if the source codec can live in an MP4 container (H.264, H.265/HEVC,
AV1, MPEG-4), the video stream is passed through with -c:v copy — no
re-encoding, no quality loss. For codecs that can't (VP8, VP9, ProRes, DNxHD,
etc. — typical in WebM and some MOV/MKV files) AudioBoost re-encodes to H.264
at CRF 18 with the slow preset, which is visually near-lossless but slower
than passthrough. The status line indicates which path is running.
The MP4 moov atom is moved to the front (-movflags +faststart) for instant
playback.
Requires Python 3.11+ with working tkinter. Homebrew's python@3.12 and
python@3.13 ship without Tk support — install the matching formula:
brew install python-tk@3.12 # or python-tk@3.13macOS system Python 3.9 at /usr/bin/python3 already bundles tkinter and also
works.
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python src/main.pyThe Tkinter window opens immediately — that's the UI. Drag any .mp4 onto it.
If you don't have a quiet MP4 handy, generate one with FFmpeg and drop it on the running window:
ffmpeg -f lavfi -i "sine=frequency=440:duration=5" \
-f lavfi -i "color=c=black:s=320x240:d=5" \
-map 1:v -map 0:a -filter:a "volume=0.05" \
-c:v libx264 -pix_fmt yuv420p -preset ultrafast \
-c:a aac -b:a 128k -shortest /tmp/quiet.mp4Drag /tmp/quiet.mp4 onto the app, click Boost Audio, and
/tmp/quiet_boosted.mp4 appears next to it. Verify the loudness landed near
-14 LUFS:
ffmpeg -i /tmp/quiet_boosted.mp4 \
-af loudnorm=I=-14:TP=-1.5:LRA=11:print_format=json -f null -Look for "input_i" : "-14.0x" in the JSON block — that's the measured
integrated loudness of the output.
./build_app.shThis creates a virtualenv, installs dependencies, and produces
dist/AudioBoost.app. Override the interpreter with
PYTHON_BIN=python3.12 ./build_app.sh.
See CONTRIBUTING.md. Bug reports and focused PRs welcome.
MIT © 2026 Idris Olubisi
- ML-based noise removal (RNNoise / Demucs)
- Waveform preview before/after
- Bundled FFmpeg for zero-dependency install