Pre-compiled FFmpeg binaries. Ideally meant to be used as a gitmodule
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-12 16:09:31 +01:00
linux Add readme and release.txt 2026-09-12 16:09:31 +01:00
osx Add readme and release.txt 2026-09-12 16:09:31 +01:00
windows Add precompiled binaries for 8.1.2 2026-09-12 13:28:44 +01:00
.gitattributes Add precompiled binaries for 8.1.2 2026-09-12 13:28:44 +01:00
README.md Add readme and release.txt 2026-09-12 16:09:31 +01:00
release.txt Add readme and release.txt 2026-09-12 16:09:31 +01:00

FFmpeg binaries

This repository contains pre-compiled FFmpeg binaries sourced from Tyrrrz/FFmpegBin. It is intended to be consumed by other repositories as a Git submodule rather than built from source here.

Platform layout

Executables are organized by operating system and architecture:

linux/{arm64,x64,x86}/
osx/{arm64,x64}/
windows/{arm64,x64,x86}/

Each architecture directory contains the ffmpeg, ffplay, and ffprobe executables available for that platform. Windows executables have the .exe extension. osx is the directory name for macOS.

Git LFS setup

Binary files are stored with Git LFS. Install Git and Git LFS before cloning or adding this repository, then enable LFS for your user account:

git lfs install

If a binary is a small text file beginning with version https://git-lfs.github.com/spec/v1, its LFS content has not been downloaded. From the consuming repository root, download the binaries for the checked-out submodule commit:

git -C path/to/ffmpeg-bin lfs pull

For a standalone clone, run git lfs pull inside this repository instead. CI environments also need Git LFS installed and the binary content downloaded before running FFmpeg.

Versions and upstream source

release.txt records the bundled release version

Add as a tagged Git submodule

Run these commands in the project that will use the binaries (the parent repository). Replace path/to/ffmpeg-bin with your desired submodule directory. Replace <version> with a tag listed by git tag --list; do not type the angle brackets literally.

git submodule add https://git.zephyrbash.dev/zephnx/ffmpeg-bins.git path/to/ffmpeg-bin
git -C path/to/ffmpeg-bin fetch --tags
git -C path/to/ffmpeg-bin tag --list
git -C path/to/ffmpeg-bin checkout --detach tags/<version>
git -C path/to/ffmpeg-bin lfs pull
git add .gitmodules path/to/ffmpeg-bin
git commit -m "Add FFmpeg binaries <version>"

If no suitable tag exists, replace tags/<version> with the desired commit ID and use that ID in the commit message. A detached HEAD is expected when pinning a submodule to a tag or commit.

Initialize an existing submodule

The parent repository records the commit for the selected tag, so collaborators can initialize the same binary version with:

git clone --recurse-submodules <parent-repository-url>

For an existing checkout:

git submodule update --init --recursive

After either cloning or initializing, ensure the binaries are downloaded:

git -C path/to/ffmpeg-bin lfs pull

Update the pinned version

To update the submodule to a later tagged release, run the following from the parent repository root to select the new tag and commit the updated submodule pointer:

git -C path/to/ffmpeg-bin fetch --tags
git -C path/to/ffmpeg-bin checkout --detach tags/<version>
git -C path/to/ffmpeg-bin lfs pull
git add path/to/ffmpeg-bin
git commit -m "Update FFmpeg binaries to <version>"

Provenance, integrity, and licensing

For licensing information, the pre-built binaries from the upstream project are licensed under the MIT license, but you should consult FFmpeg's licensing information

Update script and issues

The script that updates this repo automatically can be found on GitHub

If there's any issues with this, go to the GitHub repo for this