English | 中文
This repository builds a pinned FFmpeg revision into static libraries for reuse in prpr/Phira-related projects (for example, the main repo can extract to prpr-avc/static-lib/<target>).
FFmpeg source is pinned as the FFmpeg/ git submodule, and CI checks it out automatically.
- Multi-target builds (targets use Rust-style triples)
- Per-target
./configureflags, compiler setup, and optimizations - CI matrix builds for each target
- Unified
{target}.tar.gzartifacts uploaded to Release
- To update FFmpeg, move the
FFmpegsubmodule to a new commit - Adjust common options in
config/ffmpeg.toml - Configure targets in
config/targets.toml - If you want a local build, initialize the submodule first:
git submodule update --init FFmpeg- Build:
python3 scripts/build-ffmpeg.py <target>Artifacts are written to dist/<target>.tar.gz.
Default layout is a flat list of static libraries (package_layout = "flat"):
libavcodec.alibavformat.alibavutil.alibswresample.alibswscale.a
If you need <target>/lib*.a, set package_layout to target-dir in config/ffmpeg.toml.
- Only targets with
enabled = trueinconfig/targets.tomlenter the matrix - CI checkout automatically initializes the
FFmpegsubmodule - Pushing any tag triggers builds and uploads
{target}.tar.gzto the Release
- Python 3.11+ (for TOML support)
- Linux targets need
gcc/g++,make,pkg-config,nasm,yasm,libvorbis-dev - macOS targets need
brew install pkg-config libvorbis - macOS/iOS targets require Xcode (Command Line Tools) with
xcrunavailable - iOS targets disable
libvorbisby default (built-in Vorbis decoder only); enable it only if you provide an iOS libvorbis build - iOS targets use Xcode SDK paths by default; update
IOS_SDK/IOS_SIM_SDKif needed - HarmonyOS targets require the OpenHarmony SDK; set
OHOS_SDKif needed