Scripts to build ffmpeg libraries for Android
June 19, 2025 ยท View on GitHub
Helper script to build ffmpeg libraries for Android. The script is intended for use on Linux & Mac OSX. On Windows, building is supported through WSL, or else using the Dockerfile.
build.sh usage :
# Get ffmpeg sources
curl -LO "https://www.ffmpeg.org/releases/ffmpeg-7.1.1.tar.bz2"
tar xf ffmpeg-7.1.1.tar.bz2 -C src && rm ffmpeg-7.1.1.tar.bz2
# Configure NDK path
export ANDROID_SDK=/path/to/android-sdk
export ANDROID_NDK=${ANDROID_SDK}/ndk/27.2.12479018
# Configure build target
export TARGET_ABI=aarch64
export ANDROID_API_LEVEL=35
export AVCODEC_INSTALL_DIR=build/ffmpeg/aarch64
# Build
./build.sh src/ffmpeg-7.1.1
Dockerfile usage :
Linux (x86-64)
docker build -t ffmpeg-builder:27 --build-arg NDK_VERSION=27.2.12479018 .
docker run -v $(pwd)/build/ffmpeg/aarch64:/usr/build/ffmpeg --env TARGET_ABI=aarch64 --env ANDROID_API_LEVEL=35 ffmpeg-builder:27
Windows (x86-64) (with PowerShell)
docker build -t ffmpeg-builder:27 --build-arg NDK_VERSION=27.2.12479018 .
docker run -v ${pwd}/build/ffmpeg/aarch64:/usr/build/ffmpeg --env TARGET_ABI=aarch64 --env ANDROID_API_LEVEL=35 ffmpeg-builder:27
Windows (x86-64) (with Git Bash)
docker build -t ffmpeg-builder:27 --build-arg NDK_VERSION=27.2.12479018 .
docker run -v /$(PWD)/build/ffmpeg/aarch64:/usr/build/ffmpeg --env TARGET_ABI=aarch64 --env ANDROID_API_LEVEL=35 ffmpeg-builder:27
On arm64 hosts, such as Mac OSX on Apple silicon
podman build -t ffmpeg-builder:27 --build-arg NDK_VERSION=27.2.12479018 .
podman run -v ${pwd}/build/ffmpeg/aarch64:/usr/build/ffmpeg --env TARGET_ABI=aarch64 --env ANDROID_API_LEVEL=35 ffmpeg-builder:27
Additional recommendations in relation to the V3C Immersive Platform
Android
Once compiled, the .so libraries from the build artifacts' lib directory can be included into the ./External/avcodec/7.1/Android/arm64-v8a/lib directory of the rt-v3c-unity-player.