Static Windows (x86_64) and Linux (x86_64) Builds of ffmpeg master and latest release branch.
Windows builds are targetting Windows 7 and newer, provided UCRT is installed. The minimum supported version is Windows 10 22H2, no guarantees on anything older.
Linux builds are targetting RHEL/CentOS 8 (glibc-2.28 + linux-4.18) and anything more recent.
Builds run daily at 12:00 UTC (or GitHubs idea of that time) and are automatically released on success.
Auto-Builds run ONLY for win64 and linux(arm)64. There are no win32/x86 auto-builds, though you can produce win32 builds yourself following the instructions below.
- The last build of each month is kept for two years.
- The last 14 daily builds are kept.
- The special "latest" build floats and provides consistent URLs always pointing to the latest build.
For a list of included dependencies check the scripts.d directory. Every file corresponds to its respective package.
- bash
- docker
./makeimage.sh target variant [addin [addin] [addin] ...]
./build.sh target variant [addin [addin] [addin] ...]
On success, the resulting zip file will be in the artifacts subdir.
FFmpeg itself is cloned from upstream FFmpeg/FFmpeg by default. Any patches in patches/ffmpeg/*.patch are applied with git am in lexical order before configure/build, so CI release builds include the same local FFmpeg patch stack.
CI validates shell scripts and the FFmpeg patch stack on branch pushes. Full FFmpeg builds only run for tags matching ffmpeg-*; pushing such a tag builds and publishes an immutable release for that exact tag, using latest-style asset names so consumers can pin only the release tag in their download URL. Use tags like ffmpeg-8.0.2-copyts-rollover.1 to encode the upstream FFmpeg version plus downstream patch/build revision.
Mutable channels such as stable-8.0, prod-8.0, or latest are updated only by the Promote FFmpeg Build workflow, which copies assets from an immutable ffmpeg-* release without rebuilding.
The release matrix is intentionally LMS-focused: linux64/linuxarm64 nonfree-shared 8.0 only, so LMS can use the same patched FFmpeg build for both command-line executables and libav* shared-library linkage. Unused BtbN kitchen-sink dependencies such as Whisper, AV1/VVC/APV/AVS codec stacks, hardware acceleration stacks, DVD/Bluray, and filter/device/plugin libraries are omitted.
Available targets:
win64(x86_64 Windows)win32(x86 Windows)linux64(x86_64 Linux, glibc>=2.28, linux>=4.18)linuxarm64(arm64 (aarch64) Linux, glibc>=2.28, linux>=4.18)
The linuxarm64 target will not build some dependencies due to lack of arm64 (aarch64) architecture support or cross-compiling restrictions.
davs2andxavs2: aarch64 support is broken.libmfxandlibva: Library for Intel QSV, so there is no aarch64 support.
Available variants:
gplIncludes all dependencies, even those that require full GPL instead of just LGPL.lgplLacking libraries that are GPL-only. Most prominently libx264 and libx265.nonfreeIncludes fdk-aac in addition to all the dependencies of the gpl variant.gpl-sharedSame as gpl, but comes with the libav* family of shared libs instead of pure static executables.lgpl-sharedSame again, but with the lgpl set of dependencies.nonfree-sharedSame again, but with the nonfree set of dependencies.
All of those can be optionally combined with any combination of addins:
4.4/5.0/5.1/6.0/6.1/7.0/7.1to build from the respective release branch instead of master.debugto not strip debug symbols from the binaries. This increases the output size by about 250MB.ltobuild all dependencies and ffmpeg with -flto=auto (HIGHLY EXPERIMENTAL, broken for Windows, sometimes works for Linux)