This repository builds and packages native audio dependencies used by
react-native-audio-api.
Library versions are configured in configs.json.
- FFmpeg (LGPLv3): lgplv3.txt
- OpenSSL (Apache-2.0): apache2.txt
- LibOpus (BSD): bsd3opus.txt
- LibOgg (BSD): bsd3ogg.txt
- LibVorbis (BSD): bsd3ogg.txt
- macOS + Xcode command line tools (required for Apple builds)
yarnzip(for export packaging)ANDROID_NDK_ROOT(orANDROID_NDK) for Android builds
All scripts are in scripts/.
yarn build:opus: builds Ogg/Opus/Opusfile static libsyarn build:vorbis: builds Ogg/Vorbis static libsyarn build:ffmpeg: builds FFmpeg (+OpenSSL dependencies) and XCFrameworksyarn build: runsclean+ all build scriptsyarn export: zips built outputs intoexport/yarn clean: removesoutputs/*,sources/*,build/*
scripts/bundle_opus.shscripts/bundle_vorbis.shscripts/ffmpeg_setup.shscripts/create_xcframework.sh(invoked byffmpeg_setup.sh)scripts/pack_outputs.sh
Build artifacts are written to outputs/:
outputs/include/- public headers for
ogg,opus,opusfile,vorbis,openssl
- public headers for
outputs/include_ffmpeg/- FFmpeg headers
outputs/android/<abi>/- static libs from opus/vorbis scripts
- OpenSSL static libs copied by FFmpeg script
outputs/iphoneos/- fat Apple static libs for device (
.a) - OpenSSL
libcrypto.a,libssl.a
- fat Apple static libs for device (
outputs/iphonesimulator/- fat Apple static libs for simulator (
.a) - OpenSSL
libcrypto.a,libssl.a
- fat Apple static libs for simulator (
outputs/macosx/- fat Apple static libs for Catalyst/macOSX target (
.a) - OpenSSL
libcrypto.a,libssl.a
- fat Apple static libs for Catalyst/macOSX target (
outputs/jniLibs/<abi>/- FFmpeg Android shared libs (
.so)
- FFmpeg Android shared libs (
outputs/ffmpeg_ios/- FFmpeg XCFrameworks (device + simulator + catalyst slices)
- Intermediate data is kept under
build/intermediate/. - Build scripts do not purge
build/intermediateautomatically.
Run:
yarn exportThis creates export/*.zip, one archive per top-level directory in outputs/,
excluding include and include_ffmpeg.