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.
-
android
folder contains files necessary to buildFFmpegKit
Android library. These files are;- Configuration files required by
gradle
- Documentation configuration file for
doxygen
- Library source code inside the
ffmpeg-kit-android-lib
folder - NDK build files under
jni
folder - README.md file
- Configuration files required by
-
apple
directory includes files necessary to buildFFmpegKit
Objective-C library for iOS, macOS and tvOS. They are;- Configuration files required by
Autotools
- Documentation configuration for
doxygen
- Library source code inside the
src
folder - README.md file
- Configuration files required by
-
docs
folder contains documentation files and digital assets. -
flutter
folder contains the files of theflutter
plugin that supportsAndroid
,iOS
andmacOS
platforms. -
react-native
folder contains the files of thereact-native
plugin that supportsAndroid
andiOS
platforms. -
scripts
directory 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
android
andapple
folders respectively function
scripts contain platform specific bash functionsmain
scripts are responsible for building an architecture for a platformrun
scripts execute cross compilation scripts underandroid
andapple
folderssource.sh
contains external library repository urls and their versionsvariable.sh
includes 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
-
src
directory is empty by default. The source code of enabled external libraries is downloaded into this directory by the top level build scripts. -
tools
directory includes patch files and release scripts. -
A temporary folder named
.tmp
is created at the beginning to save temporary files needed by the scripts, e.g.gas-preprocessor.pl
,gnu-config
project. -
After the compilation, all compiled objects (libraries, universal binaries, frameworks, xcframeworks, android archives, etc.) are created under the
prebuilt
directory.Android
archive (.aar file) forMain
builds is located under thebundle-android-aar
folderAndroid
archive (.aar file) forLTS
builds is located under thebundle-android-aar-lts
folderiOS
xcframeworks
forMain
builds are located under thebundle-apple-xcframework-ios
foldermacOS
xcframeworks
forMain
builds are located under thebundle-apple-xcframework-macos
foldertvOS
xcframeworks
forMain
builds are located under thebundle-apple-xcframework-tvos
folderiOS
frameworks
forMain
builds are located under thebundle-apple-framework-ios
folderiOS
frameworks
forLTS
builds are located under thebundle-apple-framework-ios-lts
foldermacOS
frameworks
forMain
builds are located under thebundle-apple-framework-macos
foldermacOS
frameworks
forLTS
builds are located under thebundle-apple-framework-macos-lts
foldertvOS
frameworks
forMain
builds are located under thebundle-apple-framework-tvos
foldertvOS
frameworks
forLTS
builds are located under thebundle-apple-framework-tvos-lts
folder