Community support

· 6 min read

FFmpeg for Audacity: which build works, and how to fix 'library not found'

Audacity needs FFmpeg installed separately as a shared library. Here's the right build per OS, and the fix when it says 'library not found'.

You opened Audacity to import an MP4, or export to M4A, AC3, or WMA, and got blocked. The error reads “FFmpeg library not found”, or “Failed to load shared library ‘avformat-XX.dll’”, or those export options are simply greyed out. The fix is rarely in Audacity — it’s a version mismatch between the avformat shared library Audacity is hunting for and the FFmpeg you actually installed.

The short answer: grab a shared LGPL build of FFmpeg for your OS — Windows, macOS Apple Silicon, macOS Intel, or Linux — install it, restart Audacity.

Read on for why shared matters, the version-compatibility table you’ll need if you’re on older Audacity, and what to do when auto-detect still fails.

What “the FFmpeg library” actually is

In Audacity’s UI it’s just a label. Inside the codebase it means a specific runtime dependency: the avformat shared object plus its siblings avcodec, avutil, and swresample. Audacity never links FFmpeg at compile time. At startup it walks a list of expected filenames — avformat-55.dll, avformat-57.dll, …, up through avformat-61.dll on the latest Audacity — and dynamically loads the first one it finds. The function is BuildAVFormatPaths() and the version list is hardcoded (audacity#2388).

This is why “install FFmpeg” alone isn’t the answer — Audacity needs a shared build that exposes those filenames as separate files. A static build compiles all of avformat into the single ffmpeg binary; there’s no avformat-61.dll for Audacity to find. Pick the shared variant or the load fails before anything else has a chance.

Why Audacity doesn’t bundle FFmpeg

The Audacity team’s own answer is short: “software patents prevent direct distribution with Audacity” (support page). The runtime-load design sidesteps the codec-patent picture (AAC, AC3, the rest of the MPEG pool): Audacity is a GPL audio editor that can use FFmpeg if you provide it, but the binary it ships doesn’t contain it.

Which FFmpeg version goes with which Audacity

The avformat names Audacity will accept depend on the Audacity release, because the version list is baked into the binary. The support page documents the cutoffs:

AudacityAccepts avformat-Maps to FFmpeg
3.1 → 3.1.x55, 57, 582.x – 4.x
3.2 → 3.2.x55, 57, 58, 592.x – 5.x
3.3 → 3.4.x55, 57, 58, 59, 602.x – 6.x
3.5+55, 57, 58, 59, 60, 612.x – 7.x

If you’re on Audacity 3.5 or newer, any LGPL FFmpeg from the last decade will load. If you’re stuck on an older Audacity and the latest FFmpeg refuses to load, that’s why: the avformat-61 name your FFmpeg ships isn’t on its allowlist.

One implication worth being explicit about: a lot of older blog posts and even some still-live download mirrors tell you to install a specific FFmpeg 4.x build with avformat-55.dll “because that’s what Audacity wants.” That was only true for Audacity 2.x and 3.0. For Audacity 3.1+, you can use anything in the table above.

Install paths, by OS

Windows

The Windows x86_64 shared LGPL build unpacks into bin\ with avformat-XX.dll, avcodec-XX.dll, avutil-XX.dll, swresample-X.dll (the major-version numbers depend on the FFmpeg release). Put the whole bin\ directory on PATH, restart Audacity, and Edit → Preferences → Libraries will show FFmpeg as detected. Alternatively, drop the four DLLs next to audacity.exe and Audacity will find them at startup.

The Audacity team officially recommends Buanzo’s “FFmpeg for Audacity” Windows installer as a one-click option (support page link). It’s a curated repackage of an older FFmpeg release — functionally equivalent for Audacity’s needs, with a more aged feature set than a current shared build.

macOS

Grab the Apple Silicon build or the Intel build — match the architecture of your Audacity. Audacity → About will tell you which you have. The shared libs land in a directory whose libavformat.XX.dylib you point Audacity at in Edit → Preferences → Libraries; from then on it auto-detects on restart.

The architecture has to match. An arm64 Audacity won’t load an x86_64 libavformat.dylib even if the version number is right. Mixing the two is the most common silent-fail mode on Mac.

The Audacity contributor @dozzzzer recommends Homebrew as a working alternative. The Audacity team officially recommends Buanzo’s .pkg, but the maintainer @kryksyh has confirmed that “the Buanzo build supports OS X 12.0+; it would not work with older versions” — so on older macOS the picker link is the route.

Linux

The Linux x86_64 shared LGPL build ships with libavformat.so.XX in its lib/ directory; point Audacity at it in Edit → Preferences → Libraries, or put lib/ on LD_LIBRARY_PATH.

The system package from your distro is the other common path and works on current Audacity. One caveat worth knowing about: the AppImage releases of Audacity historically ignored system FFmpeg; 3.7.3+ reportedly fixed this (audacity#5687).

When auto-detect doesn’t pick it up

Open Edit → Preferences → Libraries and click Locate (manual). Browse to the exact file:

  • Windows: avformat-61.dll (or whichever number is in your build)
  • macOS: libavformat.61.dylib
  • Linux: libavformat.so.61

The Audacity community contributor @LeoWattenberg classifies the realistic failure modes as: version mismatch, architecture mismatch (arm vs intel on Mac), and missing transitive deps. The Locate dialog tends to fail silently when the right avformat file is there but one of its sibling libs (libavcodec, libavutil, libswresample) is wrong or absent — keep the whole shared-build directory intact rather than copying only one file out.

A still-open frustration on some Linux setups: manually pointing Audacity at /lib/x86_64-linux-gnu/libavformat.so.60 produces no error and no detection (audacity#11104). The workaround is to confirm the avformat version your FFmpeg provides actually matches an entry Audacity is hunting for — i.e. cross-check against the version table above and the Audacity version in your About box.

Summary

Use a shared LGPL build from the picker, restart Audacity, and the Libraries pane should show FFmpeg detected. If it doesn’t, the failure is almost always one of three things: wrong avformat version for your Audacity, wrong architecture on Mac, or a half-copied shared-libs directory. The Libraries preferences plus the version table above will tell you which.

Related Posts

View All Posts →