DEV Community

Cover image for I built ffmpeg.download because installing FFmpeg shouldn't take six decisions
Peter Naftaliev
Peter Naftaliev

Posted on

I built ffmpeg.download because installing FFmpeg shouldn't take six decisions

I worked with FFmpeg on several large projects, which means I spent more time than is healthy answering "which FFmpeg do I install?" for myself and for other users.

Installing FFmpeg should be one decision: download. In practice, it's a stack:

  1. Which build to pick? Or, should I build it myself?
  2. Which license variant (GPL vs LGPL, with or without --enable-nonfree)
  3. Which codecs and accelerators (x264, x265, NVENC, QSV, VA-API, libfdk_aac, AV1)
  4. Shared or static
  5. Which OS and arch (Windows x64, Linux x86_64/ARM64, Apple Silicon, musl)
  6. Whether you can legally redistribute it inside your own app

Most pages cover one slice and assume you already know the rest. So it turns into tab-hopping across release notes, comparing build matrices, and guessing whether the binary you grabbed will hit nvenc not found at runtime.

So I built ffmpeg.download. Answer a few questions — OS, what you need to encode/decode, whether you're shipping it inside something — get a direct link to a specific build with its checksum and source.

Cases I built it for first:

  1. ffmpeg: command not found on a server — static Linux build, no apt/yum dance
  2. NVENC on Windows — a build that actually has the encoder compiled in
  3. Embedding in a commercial app — LGPL build, redistribution-safe
  4. Apple Silicon native — not Rosetta, not a generic universal binary
  5. Reproducible CI — pinned versions with checksums
  6. Managing your production enviroment with consistent ffmpeg versions

It's a simple-to-use index of the trusted providers, filtered by what you actually need.

Top comments (0)