A cross-platform PySide6 front end for FFmpeg and the audio encoders around it. Drag files in, inspect their audio streams, configure an encoder, and queue the work.
Documentation · Install · Encoder reference · Changelog
A clean successor to the original Tkinter application. The maintained legacy source remains
available in legacy_v4.
Grab the bundle for your platform from the latest release:
| Platform | Archive |
|---|---|
| Windows (x64) | FFMPEGAudioEncoder-<version>-windows-x64.zip |
| macOS (Intel) | FFMPEGAudioEncoder-<version>-macos-x64.zip |
| macOS (Apple silicon) | FFMPEGAudioEncoder-<version>-macos-arm64.zip |
| Linux (x64) | FFMPEGAudioEncoder-<version>-linux-x64.tar.gz |
Unpack the archive anywhere and run FFMPEGAudioEncoder from inside it. Nothing is
installed system-wide and no runtime is required.
The bundles are unsigned. macOS Gatekeeper blocks them on first launch, so open the app once with right-click ▸ Open and confirm; Windows SmartScreen needs More info ▸ Run anyway.
FFmpeg and ffprobe are not bundled. Install them and leave them on PATH, or point at
the executables in Settings. opusenc, qaac, fdkaac, and DeeZy are optional and discovered
the same way; the encoders you have not installed are shown as unavailable rather than
failing at encode time. Help ▸ Copy diagnostics reports exactly what was found. See
Required and optional tools.
- Drag-and-drop input, stream inspection, and per-stream encoding.
- Sixteen encoders in three families - eight built into FFmpeg, three standalone command-line encoders (opusenc, qaac, fdkaac), and five DeeZy adapters for licensed Dolby formats. Every option is in the encoder reference.
- Presets, plus automatic restoration of the last encoder configuration.
- Sample-rate, channel-layout, gain, and per-track delay controls, plus time modification
with named framerate conversions (
24 → 23.976,23.976 → 25) and speed multipliers. - A durable queue with selected-job starts, stop-after-current, retry, cancellation, and crash-safe temporary outputs.
- Live per-job progress, command and error details, bounded session logs, and output-folder actions.
- Asynchronous tool detection, bounded media probing, rotating application logs, and single-instance protection.
uv sync --group dev
uv run ffmpeg-audio-encoderuv run ruff format --check .
uv run ruff check .
uv run basedpyright
uv run pytest
uv run ffmpeg-audio-encoder --diagnosticsBuild a native one-folder application bundle with uv sync --group build followed by
uv run python build.py.
Preview the documentation site with uv sync --group docs and
uv run zensical serve --open.
More detail: development setup, architecture, adding an encoder, building bundles.
The original program depends on working-directory-relative paths:
cd legacy_v4
uv sync
uv run python FFMPEGAudioEncoder.py