- Based on FFmpeg `v4.5-dev` with optional system and external libraries
- Based on FFmpeg `v4.5-dev`or later with optional system and external libraries
- 8 prebuilt binary packages available at [Github](https://github.com/arthenica/ffmpeg-kit/releases), [Maven Central](https://search.maven.org), [CocoaPods](https://cocoapods.org), [pub](https://pub.dev) and [npm](https://www.npmjs.com)
- Licensed under `LGPL 3.0`, or `GPL v3.0` if GPL licensed libraries are enabled
@ -29,28 +29,32 @@ See [Apple](apple) to use `FFmpegKit` on `Apple` platforms (`iOS`, `macOS`, `tvO
See [Flutter](flutter/flutter) to learn more about `FFmpegKit` for `Flutter`.
### 5. React Native
### 5. Linux
See [Linux](linux) to learn more about `FFmpegKit` for `Linux`.
### 6. React Native
See [React Native](react-native) to learn more about `FFmpegKit` for `React Native`.
### 6. Build Scripts
### 7. Build Scripts
Use `android.sh`, `ios.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each native platform.
Use `android.sh`, `ios.sh`, `linux.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each native platform.
All scripts support additional options to enable optional libraries and disable platform architectures. See
[Building](https://github.com/arthenica/ffmpeg-kit/wiki/Building) wiki page for the details.
### 7. FFmpegKit Library
### 8. FFmpegKit Library
`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.
`Android` library of `FFmpegKit` has a `Java` API, `Apple` libraries (`iOS`, `macOS`, `tvOS`) have an `Objective-C`
API, `Flutter`library comes with a `Dart` API and `React Native` library provides a `JavaScript` API, which are
identical in terms of features and capabilities.
API, `Flutter`library comes with a `Dart` API, `Linux` library has a `C++` API and `React Native` library provides
a `JavaScript` API with `Typescript` definitions, which are identical in terms of features and capabilities.
### 8. Packages
### 9. Packages
There are eight different `ffmpeg-kit` packages distributed on
- Based on FFmpeg `v4.5-dev` with optional system and external libraries
- Based on FFmpeg `v4.5-dev`or later with optional system and external libraries
- 8 prebuilt binary packages available at [Github](https://github.com/arthenica/ffmpeg-kit/releases), [Maven Central](https://search.maven.org), [CocoaPods](https://cocoapods.org), [pub](https://pub.dev) and [npm](https://www.npmjs.com)
- Licensed under `LGPL 3.0`, or `GPL v3.0` if GPL licensed libraries are enabled
@ -32,29 +32,34 @@ See [Apple](https://github.com/arthenica/ffmpeg-kit/tree/development/apple) to u
See [Flutter](https://github.com/arthenica/ffmpeg-kit/tree/main/flutter/flutter) to learn more about `FFmpegKit` for
`Flutter`.
### 5. React Native
### 5. Linux
See [Linux](https://github.com/arthenica/ffmpeg-kit/tree/main/linux) to learn more about `FFmpegKit` for
`Linux`.
### 6. React Native
See [React Native](https://github.com/arthenica/ffmpeg-kit/tree/main/react-native) to learn more about `FFmpegKit` for
`React Native`.
### 6. Build Scripts
### 7. Build Scripts
Use `android.sh`, `ios.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each native platform.
Use `android.sh`, `ios.sh`, `linux.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each native platform.
All scripts support additional options to enable optional libraries and disable platform architectures. See
[Building](https://github.com/arthenica/ffmpeg-kit/wiki/Building) wiki page for the details.
### 7. FFmpegKit Library
### 8. FFmpegKit Library
`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.
`Android` library of `FFmpegKit` has a `Java` API, `Apple` libraries (`iOS`, `macOS`, `tvOS`) have an `Objective-C`
API, `Flutter`library comes with a `Dart` API and `React Native` library provides a `JavaScript` API, which are
identical in terms of features and capabilities.
API, `Flutter`library comes with a `Dart` API, `Linux` library has a `C++` API and `React Native` library provides
a `JavaScript` API with `Typescript` definitions, which are identical in terms of features and capabilities.
### 8. Packages
### 9. Packages
There are eight different `ffmpeg-kit` packages distributed on
std::cout << "FFmpeg process exited with state " <<FFmpegKitConfig::sessionStateToString(state)<<"andrc"<<returnCode<<"."<<session->getFailStackTrace() <<std::endl;
}, [](auto log) {
// CALLED WHEN SESSION PRINTS LOGS
}, [](auto statistics) {
// CALLED WHEN SESSION GENERATES STATISTICS
});
```
4. Execute `FFprobe` commands.
- Synchronous
```C++
#include<FFprobeKit.h>
#include<FFmpegKitConfig.h>
using namespace ffmpegkit;
auto session = FFprobeKit::execute(ffprobeCommand);
if (!ReturnCode::isSuccess(session->getReturnCode())) {
std::cout << "Command failed. Please check output for the details." <<std::endl;