It's a tool to build ffmpeg for almost all platforms.
How: https://github.com/wang-bin/avbuild/wiki
Lite build of FFmpeg master branch (recommended):
Android, Apple, Linux, VS2022 Desktop, VS2022 UWP, Clang Windows Desktop
FFmpeg releases and others: https://sourceforge.net/projects/avbuild/files
Build Details:
Linux, android, macOS, iOS, raspberry pi(legacy OSes), windows build: , CircleCI
- Support single FFmpeg shared library: ffmpeg.dll, libffmpeg.so, libffmpeg.dylib, FFmpeg.xcframework
- modern toolchain support: clang+lld, cross build for almost all platforms on any host OS
- multiple targets build and configure simultaneously
- ssl
- enable all gpu decoders and encoders if possible
- nvidia driver version is not limited(nvcuvid, nvdec, nvenc)
- ffmpeg patches
- Universal binaries for apple platforms, including apple sillicon support
CC/H?X/OS | Linux | Android | macOS | iOS | RPi | Win32 | WinStore | WinPhone |
---|---|---|---|---|---|---|---|---|
Clang | H | C | A+H | A+C | H+C | |||
Clang+LLD | H | C | ? | A+H+C | A+H+C. MINGW or VCRT120+ |
A+H+C | A+C | |
GCC | H | C | H | H+C | H+C | |||
VS2013/15 | H | H | C | |||||
VS2017+ | H | H |
- A: Apple clang
- H: host build. Clang is open source clang
- C: cross build (for example, build win32 from linux/macOS using mingw, build rpi from windows/linux/macOS using gcc and clang)
- ?: in plan
- Empty: won't support
You can request to add your configuration. If not accepted, customize yourself and build by github actions
- Fork the repo
- Set actions variables used by workflows in github repo settings
- FF_VER:
master
, or version, e.g.7.0
,6.1
- LINUX_SYSROOT_ID: any characters, used to update sysroot cache
- LLVM_VER: llvm version, e.g.
20
, used by linux and windows build. Available versions can be found in https://apt.llvm.org - VCVER: msvcrt version, e.g.
14.28.29333
. used by windows clang build - WINSDKVER: windows sdk version, e.g.
10.0.22621.0
. used by windows clang build - VC_LTL_VER: VC-LTL5 version, e.g.
5.1.1
. used by windows build with LTL
- FF_VER:
- Edit workflow files(build.yml, build_gpl.yml). Remove unused jobs, e.g. sourceforge upload
- Download ffmpeg binaries from workflow artifacts
- Azure pipeline/github action: vs2022+WSL