Libraries - tanersener/ffmpeg-kit GitHub Wiki
The following table shows the types of the libraries created by FFmpegKit build scripts and published in the FFmpegKit releases.
Notes:
- On
Appleplatforms, the primary bundle format isxcframeworks/frameworks. Library types listed below are used to create them - On
Linux,FFmpegis linked with two types of External Libraries. First, with static external libraries that are downloaded and built byFFmpegKitbuild scripts. And secondly, with shared external libraries that are installed manually on the host system. The table below shows only the former - Supplementary Libraries are libraries that are required to build External Libraries
| FFmpegKit | FFmpeg | External Libraries | Supplementary Libraries | |||
|---|---|---|---|---|---|---|
| Android | shared (.so) | shared (.so) | static (.a) | static (.a) | ||
| Apple (iOS, macOS, tvOS) |
>= v4.5.1 | shared (.dylib) | >= v4.5.1 | shared (.dylib) | static (.a) | static (.a) |
| < v4.5.1 | static (.a) | < v4.5.1 | static (.a) | |||
| Linux | shared (.so) | shared (.so) | static (.a) | static (.a) | ||
Below you can see how they are linked.
| FFmpegKit | FFmpeg | External Libraries | External Libraries On The Host | Supplementary Libraries | |||
|---|---|---|---|---|---|---|---|
| Android | Dynamically linked to FFmpeg | Statically linked to External Libraries | Statically linked to Supplementary Libraries | - | - | ||
| Apple (iOS, macOS, tvOS) |
>= v4.5.1 | Dynamically linked to FFmpeg | >= v4.5.1 | Dynamically linked to External Libraries | Statically linked to Supplementary Libraries | - | - |
| < v4.5.1 | Statically linked to FFmpeg | < v4.5.1 | Statically linked to External Libraries | ||||
| Linux | Dynamically linked to FFmpeg | Statically linked to External Libraries | Statically linked to Supplementary Libraries | - | - | ||
| Dynamically linked to External Libraries on the Host | |||||||
And, the following table shows the library files included in FFmpegKit bundles.
Notice that when FFmpeg is built as shared libraries, External and Supplementary Libraries are not put inside the bundles. Because, on all platforms except Linux, they are statically linked and their object code is already inside the FFmpeg libraries. And, on Linux, the source code of libraries that are statically linked is already inside FFmpeg libraries. And the ones that are dynamically linked are installed manually. Thus, we do not include them in FFmpegKit bundles on Linux.
| FFmpegKit | FFmpeg | External Libraries | Supplementary Libraries | |||
|---|---|---|---|---|---|---|
| Android | x | x | - | - | ||
| Apple (iOS, macOS, tvOS) |
x | x | >= v4.5.1 | - | >= v4.5.1 | - |
| < v4.5.1 | x | < v4.5.1 | x | |||
| Linux | x | x | - | - | ||