-
Notifications
You must be signed in to change notification settings - Fork 25
Project Layout
Files in this project are organised according to the layout below.
ffmpeg-kit-next/
├── .tmp/
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── android/
│ ├── ffmpeg-kit-next-android-lib/
│ └── jni/
├── apple/
│ └── src/
├── docs/
├── flutter/
├── linux/
│ └── src/
├── nix-android.sh
├── nix-apple.sh
├── nix-ios.sh
├── nix-linux.sh
├── nix-macos.sh
├── nix-tvos.sh
├── nix-visionos.sh
├── nix-web.sh
├── prebuilt/
├── react-native/
├── scripts/
│ ├── android/
│ ├── apple/
│ ├── linux/
│ └── web/
├── src/
└── tools/
The project root includes platform directories, top-level build scripts (nix-android.sh, nix-ios.sh, nix-linux.sh, nix-macos.sh, nix-tvos.sh, nix-visionos.sh and nix-web.sh), one combining script (nix-apple.sh) for Apple platforms, one LICENSE file and three markdown files (README.md, CONTRIBUTING.md and CODE_OF_CONDUCT.md).
-
The
androidfolder contains the files necessary to build theFFmpegKitNextAndroid library. These files are:- Configuration files required by
gradle - A documentation configuration file for
doxygen - The library source code inside the
ffmpeg-kit-next-android-libfolder - NDK build files under the
jnifolder - A
README.mdfile
- Configuration files required by
-
The
appledirectory includes the files necessary to build theFFmpegKitNextObjective-C library for iOS, macOS, iPadOS, tvOS and visionOS. They are:- Configuration files required by
Autotools - A documentation configuration for
doxygen - The library source code inside the
srcfolder - A
README.mdfile
- Configuration files required by
-
The
docsfolder contains the documentation and digital assets. -
The
flutterfolder contains the files of theflutterplugin, which supports theAndroid,iOS,macOSandLinuxplatforms. -
The
linuxdirectory includes the files necessary to build theFFmpegKitNextC++ library for Linux. These files are:- Configuration files required by
Autotools - A documentation configuration for
doxygen - The library source code inside the
srcfolder - A
README.mdfile
- Configuration files required by
-
The
react-nativefolder contains the files of thereact-nativeplugin, which supports theAndroidandiOSplatforms. -
The
webdirectory includes the files necessary to build theFFmpegKitNextJavaScript/WebAssembly package for browsers. These files are:- Configuration files required by
Autotools - The C++ wrapper source code inside the
srcfolder - The JavaScript API, worker runtime and TypeScript definitions inside the
jsfolder - A
README.mdfile
- Configuration files required by
-
The
scriptsdirectory includes all the scripts called by the top-level build scripts.- Scripts responsible for compiling external libraries are grouped by platform name and can be found under the
android,apple,linuxandwebfolders - The
functionscripts contain platform-specific bash functions - The
mainscripts are responsible for building an architecture for a platform - The
runscripts execute the compilation scripts under theandroid,apple,linuxandwebfolders - The
startscripts (start-android.sh,start-ios.sh,start-linux.sh,start-macos.sh,start-tvos.sh,start-visionos.sh,start-web.shandstart-apple.sh) are the per-platform build entry points. The top-levelnix-<platform>.shwrappers only prepare aNixenvironment and then invoke them, so these scripts can be run directly to build withoutNix, as long as the required toolchain is already available on the system - The
source.shscript contains external library repository URLs and their versions - The
variable.shscript includes common variables used by all platforms
- Scripts responsible for compiling external libraries are grouped by platform name and can be found under the
-
The
srcdirectory is empty by default. The source code of the enabled external libraries is downloaded into this directory by the top-level build scripts. -
The
toolsdirectory includes patch files and release scripts. -
A temporary folder named
.tmpis created at the start of the build to store temporary files needed by the scripts, such as thegas-preprocessor.plscript and thegnu-configproject. -
After compilation, all compiled objects (libraries, frameworks, xcframeworks, Android archives, etc.) are created as bundles under the
prebuiltdirectory.- The
Androidarchive (.aar) in localMavenformat is located under thebundle-android-aar-${API}-mavenfolder - The
iOS/iPadOSframeworksare located under thebundle-apple-framework-ios-${IOS_MIN_VERSION}folder - The
iOS/iPadOSxcframeworkis located under thebundle-apple-xcframework-ios-${IOS_MIN_VERSION}folder - The
macOSframeworksare located under thebundle-apple-framework-macos-${MACOS_MIN_VERSION}folder - The
macOSxcframeworkis located under thebundle-apple-xcframework-macos-${MACOS_MIN_VERSION}folder - The
tvOSframeworksare located under thebundle-apple-framework-tvos-${TVOS_MIN_VERSION}folder - The
tvOSxcframeworkis located under thebundle-apple-xcframework-tvos-${TVOS_MIN_VERSION}folder - The
visionOSframeworksare located under thebundle-apple-framework-visionos-${VISIONOS_MIN_VERSION}folder - The
visionOSxcframeworkis located under thebundle-apple-xcframework-visionos-${VISIONOS_MIN_VERSION}folder - The
Linuxheaders and libraries are located under thebundle-linuxfolder - The
Webnpm package is located under thebundle-web-wasm32folder
- The
Copyright (c) 2026 FFmpegKitNext
- Status
- Versions
- Changelog
- Project Layout
- Using
- Building
- External Libraries
- Patents
- License