multimedia framework
FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line … Wikipedia
Factsheet
Original authors Fabrice Bellard
Bobby Bingham (libavfilter)
Developer FFmpeg team
Initial release December 20, 2000; 25 years ago (2000-12-20)
Factsheet
Original authors Fabrice Bellard
Bobby Bingham (libavfilter)
Developer FFmpeg team
Initial release December 20, 2000; 25 years ago (2000-12-20)
🌐
FFmpeg
ffmpeg.org › download.html
Download FFmpeg
Static builds for macOS 64-bit · Download Snapshot Download PGP Signing Key · You can retrieve the source code through Git by using the command: git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg · Snapshot Browse Cannot access Git or wish to speed up the cloning and reduce the bandwidth usage?
🌐
GitHub
github.com › zimbatm › ffmpeg-static
GitHub - zimbatm/ffmpeg-static: Scripts to build ffmpeg with all the deps statically (webm + h264 included) · GitHub
Three scripts to make a static build of ffmpeg with all the latest codecs (webm + h264).
Starred by 539 users
Forked by 259 users
Languages   Shell 71.2% | Perl 24.9% | Dockerfile 3.9%
Discussions

linux - How to compile FFmpeg as static (single file) - Stack Overflow
I would like to compile FFmpeg 4.1.3 as static or single file, After compiled. It's shared binary. Here is what I do Install the dependencies apt-get -y install build-essential autoconf automake... More on stackoverflow.com
🌐 stackoverflow.com
Can anyone tell me how you compile ffmpeg from a GitHub version, preferably into a static build?
ffmpeg has the option to build in quite a few dependencies / external libraries, so it's rather complex. Last time I did it I used https://github.com/rdp/ffmpeg-windows-build-helpers but there are other build scripts on GitHub that also seem like they'd be good More on reddit.com
🌐 r/ffmpeg
19
4
September 26, 2022
Compiling Static FFMPEG Binary - Stack Overflow
I cannot seem to compile a static build of FFMPEG. All of my attempts result with a ffmpeg binary that looks for libraries outside of the binary. Does anything stand out in my configure options? ... More on stackoverflow.com
🌐 stackoverflow.com
FFmpeg Windows static builds
These are very complete builds. Much appreciated, thanks. More on reddit.com
🌐 r/ffmpeg
8
38
September 16, 2020
🌐
Johnvansickle
johnvansickle.com › ffmpeg
John Van Sickle - FFmpeg Static Builds
Here you'll find the latest versions of FFmpeg for Linux kernels 3.2.0 and up. For installation instructions please read the FAQ. Note: it's highly recommended to use git master builds, because bug fixes and other improvements are added daily. All static builds available here are licensed under ...
🌐
GitHub
github.com › eugeneware › ffmpeg-static
GitHub - eugeneware/ffmpeg-static: ffmpeg static binaries for Mac OSX and Linux and Windows · GitHub
Static ffmpeg/ffprobe binaries for macOS, Linux, Windows. Supports macOS (64-bit and arm64), Linux (32 and 64-bit, armhf, arm64), Windows (32 and 64-bit). The ffmpeg version currently used is 6.1.1. The binaries download script downloads binaries from these locations: ... The script extracts build ...
Starred by 1.3K users
Forked by 201 users
Languages   JavaScript 65.5% | Shell 34.5%
🌐
npm
npmjs.com › package › ffmpeg-static
ffmpeg-static - npm
November 14, 2025 - ffmpeg binaries for macOS, Linux and Windows. Latest version: 5.3.0, last published: 5 months ago. Start using ffmpeg-static in your project by running `npm i ffmpeg-static`. There are 617 other projects in the npm registry using ffmpeg-static.
      » npm install ffmpeg-static
    
Published   Nov 14, 2025
Version   5.3.0
🌐
Stack Overflow
stackoverflow.com › questions › 56338654 › how-to-compile-ffmpeg-as-static-single-file
linux - How to compile FFmpeg as static (single file) - Stack Overflow
./configure --disable-shared --enable-static --enable-pthreads --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-filters --enable-openssl --enable-runtime-cpudetect --extra-version=Patrickz
🌐
Vultr
docs.vultr.com › how-to-install-the-latest-static-build-of-ffmpeg
How to Install the Latest Static Build of FFmpeg Guide | Vultr Docs
April 1, 2025 - $ sudo wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz $ sudo wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz.md5 $ md5sum -c ffmpeg-git-amd64-static.tar.xz.md5
Find elsewhere
🌐
Reddit
reddit.com › r/ffmpeg › can anyone tell me how you compile ffmpeg from a github version, preferably into a static build?
r/ffmpeg on Reddit: Can anyone tell me how you compile ffmpeg from a GitHub version, preferably into a static build?
September 26, 2022 - Compiling ffmpeg all alone is easy-ish, if you only need libav and no filters, but then for instance x264 is a whole separate project, and used to be I think on svn. x265 is another separate project, originally unconnected to x264. Et cetera et cetera. I think when I was trying to do it myself I got lost somewhere in the text rendering libraries ... Building FFmpeg (at least on Linux) is fairly simple since you can follow the wiki compilation guide and you're willing to use distro-provided versions of external libraries.
🌐
Stack Overflow
stackoverflow.com › questions › 33007139 › compiling-static-ffmpeg-binary
Compiling Static FFMPEG Binary - Stack Overflow
./configure --prefix=/usr/local/Cellar/ffmpeg/2.8/ -enable-gpl --enable- pthreads --disable-libfaac --disable-libfdk-aac --enable-ffplay --enable-fontconfig --enable-libfreetype --enable-frei0r --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libquvi --enable-libsoxr --enable-libssh --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libopenjpeg --enable-openssl --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-videotoolbox --enable-libwebp --enable-libx265 --en
🌐
FFmpeg
ffmpeg.org › pipermail › ffmpeg-user › 2018-July › 040443.html
[FFmpeg-user] how to build ffmpeg into one static program without any dependent dynamic library
I use the following command to build static ffmpeg without any dependent dynamic library: ./configure --disable-ffplay \ --extra-libs='-static -L/usr/lib' --extra-cflags='--static' \ --enable-version3 --enable-asm --enable-x86asm --enable-avfilter \ --enable-static --disable-shared --enable-gpl ...
🌐
Evermeet
evermeet.cx › ffmpeg
static FFmpeg binaries for macOS 64-bit Intel
Download static FFmpeg binaries for macOS 64-bit Intel. snapshots and release binaries are available. FFmpeg developers strongly encourage all users to use a current snapshot build instead of a release build.
🌐
GitHub
github.com › BtbN › FFmpeg-Builds
GitHub - BtbN/FFmpeg-Builds · GitHub
Static Windows (x86_64) and Linux (x86_64) Builds of ffmpeg master and latest release branch.
Starred by 10.7K users
Forked by 1.4K users
Languages   Shell 83.4% | Dockerfile 14.0% | CMake 2.6%
🌐
Martin-riedl
ffmpeg.martin-riedl.de
Martin-Riedl.de - FFmpeg
This project provides static builds of FFmpeg, FFprobe and FFplay.
🌐
CODEX FFMPEG
gyan.dev › ffmpeg › builds
Builds - CODEX FFMPEG @ gyan.dev
changed to static links to mirrors on Github · 014 · 2020-10-28 · added OpenCL support to full builds · 013 · 2020-10-28 · added zmqsend to tools package · 012 · 2020-10-25 · Github mirror added; also added link to issue tracker under discussions · 011 · 2020-10-18 · added frei0r plugins to full builds · 010 · 2020-10-14 · added web query API · 009 · 2020-10-14 · added FFmpeg tools ·
🌐
FFmpeg
ffmpeg-user.ffmpeg.narkive.com › k8KJATt3 › how-to-build-ffmpeg-into-one-static-program-without-any-dependent-dynamic-library
[FFmpeg-user] how to build ffmpeg into one static program without any dependent dynamic library
All those dynamic/shared dependant libraries you see above: You need to provide static versions of them when linking ffmpeg. Those are the ones named "*.a" If your system is built up from some distribution or package manager (such as Linux Ubuntu or the likes), you need to find those static library packages. If that system/distribution does not provide them, you actually need to build them yourself.
🌐
Reddit
reddit.com › r/ffmpeg › ffmpeg windows static builds
r/ffmpeg on Reddit: FFmpeg Windows static builds
September 16, 2020 - https://github.com/88keyz/Zeranoe/releases/download/4.3.1-w32-shared/ffmpeg-4.3.1-win32-shared.zip · https://github.com/88keyz/Zeranoe/releases/download/4.3.1-w32-static/ffmpeg-4.3.1-win32-static.zip
Top answer
1 of 2
5

In my CentOS 5.11 and FFmpeg 3.0, I have to use options

--pkg-config-flags="--static"
--extra-cflags="-I$HOME/ffmpeg/include -static"
--extra-ldflags="-L$HOME/ffmpeg/lib -static"

--enable-static tell a complier to create the "static libraries" (libav*.a). We can be combine FFmpeg API in the other standalone (static) application.

--disable-shared tell a complier not to create the "dynamically linked shared object libraries" (libav*.so). These type of libraries can be load and use FFmpeg API by the other application.

These 2 options doesn't complie FFmpeg as standalone static executable.

2 of 2
11

Thanks for stib's suggestion. I leave my answer here.

FFmepg build process take higher priority to use dynamic library even if static libraries are ready. Therefore, I first removed some external libraries support from build configuration and make sure all external libraries are only static (remove *.dylib from prefix /usr/local/lib). Then rebuild it with the following command:

./configure --pkg-config-flags="--static" --libdir=/usr/local/lib --extra-version=ntd_20150128 --disable-shared --enable-static --enable-gpl --enable-pthreads --enable-nonfree  --enable-libass --enable-libfdk-aac  --enable-libmp3lame  --enable-libx264 --enable-filters --enable-runtime-cpudetect

Remember to define --pkg-config-flags="--static", asking build process to use static library. Then, we will get a single executable FFmpeg binary!

P.S.: I removed the libass support from the configuration, because libass depends on Fontconfig lib which I only have dynamic library available. I'll put the libass support back once I figured out how to make a static library of fontconfig.

Thanks.

🌐
GitHub
github.com › toorop › ffmpeg-static-builder
GitHub - toorop/ffmpeg-static-builder: A comprehensive bash script to build a fully static FFmpeg binary on Ubuntu-based systems with support for modern codecs including x264, x265, VP8/VP9, AV1, MP3, Opus, and NVENC hardware acceleration.
A comprehensive bash script to build a fully static FFmpeg binary on Ubuntu-based systems with support for modern codecs including x264, x265, VP8/VP9, AV1, MP3, Opus, and NVENC hardware acceleration. - toorop/ffmpeg-static-builder
Author   toorop
🌐
GitHub
github.com › ffbuilds › static-ffmpeg-minimal
GitHub - ffbuilds/static-ffmpeg-minimal: Static build of ffmpeg
# syntax=docker/dockerfile:1 # Select from the Support Matrix ARG ALPINE_VERSION=3.16.2 FROM ghcr.io/ffbuilds/static-ffmpeg-minimal-alpine_${ALPINE_VERSION}:main AS ffmpeg FROM alpine:${ALPINE_VERSION} AS myimage COPY --from=ffmpeg /ff* /usr/local/bin/ RUN ffmpeg -version
Author   ffbuilds