Skip to content

Repository files navigation

FFmpeg Audio Encoder v5

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.

Download

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 infoRun 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.

What it does

  • 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.

Development

uv sync --group dev
uv run ffmpeg-audio-encoder
uv run ruff format --check .
uv run ruff check .
uv run basedpyright
uv run pytest
uv run ffmpeg-audio-encoder --diagnostics

Build 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.

Legacy v4

The original program depends on working-directory-relative paths:

cd legacy_v4
uv sync
uv run python FFMPEGAudioEncoder.py

About

An audio encoder that supports major codecs via FFMPEG, Opusenc, DeeZy (DEE), FDK-AAC, and QAAC

Topics

Resources

Stars

81 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages