- Licensed under `LGPL 3.0`, or `GPL v3.0` if GPL licensed libraries are enabled
- Licensed under `LGPL 3.0`, or `GPL v3.0` if GPL licensed libraries are enabled
#### 1.1 Android
### 2. Android
See [Android](https://github.com/tanersener/ffmpeg-kit/tree/development/android).
See [Android](https://github.com/tanersener/ffmpeg-kit/tree/development/android) to learn more about `FFmpegKit` for
`Android`.
#### 1.2 iOS, macOS, tvOS
### 3. iOS, macOS, tvOS
See [Apple](https://github.com/tanersener/ffmpeg-kit/tree/development/apple).
See [Apple](https://github.com/tanersener/ffmpeg-kit/tree/development/apple) to use `FFmpegKit` on `Apple` platforms
(`iOS`, `macOS`, `tvOS`).
### 2. Build Scripts
### 4. Build Scripts
Use `android.sh`, `ios.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each platform.
All four scripts support additional options to enable external libraries or disable platform architectures.
Use `android.sh`, `ios.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each platform.
Refer to [Android](https://github.com/tanersener/ffmpeg-kit/tree/development/android) page for `Android` devices and
All scripts support additional options to enable libraries and disable platform architectures.
[Apple](https://github.com/tanersener/ffmpeg-kit/tree/development/apple) page for `iOS`, `macOS`, `tvOS` devices to see
the prerequisites for each platform.
### 3. FFmpegKit Library
### 5. FFmpegKit Library
`FFmpegKit` is a wrapper library that allows you to easily run `FFmpeg`/`FFprobe` commands in applications. It
`FFmpegKit` is a wrapper library that allows you to easily run `FFmpeg`/`FFprobe` commands in applications. It
provides additional features on top of `FFmpeg` to enable platform specific resources, control how commands are executed and how the results are handled.
provides additional features on top of `FFmpeg` to enable platform specific resources, control how commands are
executed and how the results are handled.
`Android` library has a `Java` API and `Apple` libraries (`iOS`, `macOS`, `tvOS`) have an `Objective-C` API,
`Android` library has a `Java` API and `Apple` libraries (`iOS`, `macOS`, `tvOS`) have an `Objective-C` API,
which are identical.
which are identical in terms of features and capabilities.
See [Android](https://github.com/tanersener/ffmpeg-kit/tree/development/android) page to learn how the `Java` API
can be used on `Android` devices and [Apple](https://github.com/tanersener/ffmpeg-kit/tree/development/apple) page to
learn more about `Objective-C` API for `iOS`, `macOS`, `tvOS` devices.
### 4. Binary Packages
### 6. Binary Packages
There are eight different `ffmpeg-kit` packages distributed on
There are eight different `ffmpeg-kit` packages distributed on
NSLog(@"Command failed with state %@ and rc %@.%@", [FFmpegKitConfig sessionStateToString:[session getState]], returnCode, [session getFailStackTrace]);
NSLog(@"Command failed with state %@ and rc %@.%@", [FFmpegKitConfig sessionStateToString:[session getState]], returnCode, [session getFailStackTrace]);
}
}
```
```
3. Execute asynchronous FFmpeg commands by providing session specific execute/log/session callbacks.
3. Each `execute` call (sync or async) creates a new session. Access every detail about your execution from the