Project Layout - tanersener/ffmpeg-kit GitHub Wiki
Files in this project are organised according to the layout below.
ffmpeg-kit/
├── LICENSE.LGPLv3
├── LICENSE.GPLv3
├── README.md
├── android/
│ ├── ffmpeg-kit-android-lib/
│ └── jni/
├── android.sh
├── apple/
│ └── src/
├── apple.sh
├── docs/
├── flutter/
├── ios.sh
├── macos.sh
├── prebuilt/
├── react-native/
├── scripts/
│ ├── android/
│ └── apple/
├── src/
├── tools/
├── tvos.sh
└── .tmp/
Project root includes eight directories, four top level build scripts (android.sh, ios.sh, macos.sh and tvos.sh), one combine script (apple.sh) for Apple platforms, two LICENSE files, and a README.md
file.
-
androidfolder contains files necessary to buildFFmpegKitAndroid library. These files are;- Configuration files required by
gradle - Documentation configuration file for
doxygen - Library source code inside the
ffmpeg-kit-android-libfolder - NDK build files under
jnifolder - README.md file
- Configuration files required by
-
appledirectory includes files necessary to buildFFmpegKitObjective-C library for iOS, macOS and tvOS. They are;- Configuration files required by
Autotools - Documentation configuration for
doxygen - Library source code inside the
srcfolder - README.md file
- Configuration files required by
-
docsfolder contains documentation files and digital assets. -
flutterfolder contains the files of theflutterplugin that supportsAndroid,iOSandmacOSplatforms. -
react-nativefolder contains the files of thereact-nativeplugin that supportsAndroidandiOSplatforms. -
scriptsdirectory includes all scripts called by the top-level build scripts.- Scripts responsible for cross-compiling external libraries are grouped according to the platform name; they can be found under the
androidandapplefolders respectively functionscripts contain platform specific bash functionsmainscripts are responsible for building an architecture for a platformrunscripts execute cross compilation scripts underandroidandapplefolderssource.shcontains external library repository urls and their versionsvariable.shincludes common variables used by all platforms
- Scripts responsible for cross-compiling external libraries are grouped according to the platform name; they can be found under the
-
srcdirectory is empty by default. The source code of enabled external libraries is downloaded into this directory by the top level build scripts. -
toolsdirectory includes patch files and release scripts. -
A temporary folder named
.tmpis created at the beginning to save temporary files needed by the scripts, e.g.gas-preprocessor.pl,gnu-configproject. -
After the compilation, all compiled objects (libraries, universal binaries, frameworks, xcframeworks, android archives, etc.) are created under the
prebuiltdirectory.Androidarchive (.aar file) forMainbuilds is located under thebundle-android-aarfolderAndroidarchive (.aar file) forLTSbuilds is located under thebundle-android-aar-ltsfolderiOSxcframeworksforMainbuilds are located under thebundle-apple-xcframework-iosfoldermacOSxcframeworksforMainbuilds are located under thebundle-apple-xcframework-macosfoldertvOSxcframeworksforMainbuilds are located under thebundle-apple-xcframework-tvosfolderiOSframeworksforMainbuilds are located under thebundle-apple-framework-iosfolderiOSframeworksforLTSbuilds are located under thebundle-apple-framework-ios-ltsfoldermacOSframeworksforMainbuilds are located under thebundle-apple-framework-macosfoldermacOSframeworksforLTSbuilds are located under thebundle-apple-framework-macos-ltsfoldertvOSframeworksforMainbuilds are located under thebundle-apple-framework-tvosfoldertvOSframeworksforLTSbuilds are located under thebundle-apple-framework-tvos-ltsfolder