Skip to content
This repository was archived by the owner on Apr 21, 2025. It is now read-only.

Commit 5ad7a33

Browse files
committed
update documentation
1 parent cc0c81e commit 5ad7a33

File tree

7 files changed

+410
-91
lines changed

7 files changed

+410
-91
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ Post logs here or paste them to [Ghostbin](https://ghostbin.co) and insert the l
2727

2828
**Environment**
2929

30-
- Platform: `Android`/`Flutter`/`iOS`/`macOS`/`ReactNative`/`tvOS`
30+
- Platform: `Android`/`Flutter`/`iOS`/`Linux`/`macOS`/`ReactNative`/`tvOS`
3131
- Architecture: `arm-v7a`, `arm-v7a-neon`, `arm64-v8a`, `x86`, `x86_64`, `armv7`, `armv7s`, `arm64`, `arm64-mac-catalyst`, `arm64-simulator`, `arm64e`, `i386`, `x86-64`, `x86-64-mac-catalyst`
32-
- Version: `v4.5`/`v4.5.LTS`
32+
- Version: `v5.1`/`v5.1.LTS`
3333
- Source branch: `main`, `development`
34-
- Xcode version: `12.4.1`
35-
- Cocoapods version: `1.10.1`
34+
- Xcode version: `13.4.1`
35+
- Cocoapods version: `1.10.3`
3636
- Android Studio version: `4.0`
37-
- Android NDK version: `r22b`
37+
- Android NDK version: `r25b`
3838
- flutter doctor: ` `
3939
- react-native info: ` `
4040

.github/pull_request_template.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Please also include the context and motivation about the changes introduced.
88
- Documentation
99

1010
## Checks
11-
- [ ] Changes support all platforms (`Android`, `iOS`, `macOS`, `tvOS`)
11+
- [ ] Changes support all platforms (`Android`, `iOS`, `Linux`, macOS`, `tvOS`)
1212
- [ ] Breaks existing functionality
1313
- [ ] Implementation is completed, not half-done
1414
- [ ] Is there another PR already created for this feature/bug fix

README.md

+57-42
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# FFmpegKit ![GitHub release](https://img.shields.io/badge/release-v4.5.1-blue.svg) ![Maven Central](https://img.shields.io/maven-central/v/com.arthenica/ffmpeg-kit-min) ![CocoaPods](https://img.shields.io/cocoapods/v/ffmpeg-kit-ios-min) ![pub](https://img.shields.io/pub/v/ffmpeg_kit_flutter.svg) ![npm](https://img.shields.io/npm/v/ffmpeg-kit-react-native.svg)
1+
# FFmpegKit ![GitHub release](https://img.shields.io/badge/release-v5.1-blue.svg) ![Maven Central](https://img.shields.io/maven-central/v/com.arthenica/ffmpeg-kit-min) ![CocoaPods](https://img.shields.io/cocoapods/v/ffmpeg-kit-ios-min) ![pub](https://img.shields.io/pub/v/ffmpeg_kit_flutter.svg) ![npm](https://img.shields.io/npm/v/ffmpeg-kit-react-native.svg)
22

33
<img src="https://github.com/arthenica/ffmpeg-kit/blob/main/docs/assets/ffmpeg-kit-icon-v9.png" width="240">
44

5-
`FFmpegKit` is a collection of tools to use `FFmpeg` in `Android`, `iOS`, `macOS`, `tvOS`, `Flutter` and `React Native` applications.
5+
`FFmpegKit` is a collection of tools to use `FFmpeg` in `Android`, `iOS`, `Linux`, `macOS`, `tvOS`, `Flutter` and `React Native` applications.
66

77
It includes scripts to build `FFmpeg` native libraries, a wrapper library to run `FFmpeg`/`FFprobe` commands in
88
applications and 8 prebuilt binary packages available at [Github](https://github.com/arthenica/ffmpeg-kit/releases),
@@ -11,9 +11,9 @@ It includes scripts to build `FFmpeg` native libraries, a wrapper library to run
1111
### 1. Features
1212
- Scripts to build FFmpeg native libraries
1313
- `FFmpegKit` wrapper library to run `FFmpeg`/`FFprobe` commands in applications
14-
- Supports native platforms: Android, iOS, macOS and tvOS
14+
- Supports native platforms: Android, iOS, Linux, macOS and tvOS
1515
- Supports hybrid platforms: Flutter, React Native
16-
- Based on FFmpeg `v4.5-dev` with optional system and external libraries
16+
- Based on FFmpeg `v4.5-dev` or later with optional system and external libraries
1717
- 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)
1818
- Licensed under `LGPL 3.0`, or `GPL v3.0` if GPL licensed libraries are enabled
1919

@@ -29,28 +29,32 @@ See [Apple](apple) to use `FFmpegKit` on `Apple` platforms (`iOS`, `macOS`, `tvO
2929

3030
See [Flutter](flutter/flutter) to learn more about `FFmpegKit` for `Flutter`.
3131

32-
### 5. React Native
32+
### 5. Linux
33+
34+
See [Linux](linux) to learn more about `FFmpegKit` for `Linux`.
35+
36+
### 6. React Native
3337

3438
See [React Native](react-native) to learn more about `FFmpegKit` for `React Native`.
3539

36-
### 6. Build Scripts
40+
### 7. Build Scripts
3741

38-
Use `android.sh`, `ios.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each native platform.
42+
Use `android.sh`, `ios.sh`, `linux.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each native platform.
3943

4044
All scripts support additional options to enable optional libraries and disable platform architectures. See
4145
[Building](https://github.com/arthenica/ffmpeg-kit/wiki/Building) wiki page for the details.
4246

43-
### 7. FFmpegKit Library
47+
### 8. FFmpegKit Library
4448

4549
`FFmpegKit` is a wrapper library that allows you to easily run `FFmpeg`/`FFprobe` commands in applications. It
4650
provides additional features on top of `FFmpeg` to enable platform specific resources, control how commands are
4751
executed and how the results are handled.
4852

4953
`Android` library of `FFmpegKit` has a `Java` API, `Apple` libraries (`iOS`, `macOS`, `tvOS`) have an `Objective-C`
50-
API, `Flutter`library comes with a `Dart` API and `React Native` library provides a `JavaScript` API, which are
51-
identical in terms of features and capabilities.
54+
API, `Flutter` library comes with a `Dart` API, `Linux` library has a `C++` API and `React Native` library provides
55+
a `JavaScript` API with `Typescript` definitions, which are identical in terms of features and capabilities.
5256

53-
### 8. Packages
57+
### 9. Packages
5458

5559
There are eight different `ffmpeg-kit` packages distributed on
5660
[Github](https://github.com/arthenica/ffmpeg-kit/releases),
@@ -111,26 +115,30 @@ include them.
111115
- `VideoToolbox` is not available on LTS releases of `iOS` and `tvOS`
112116
- `zimg` is supported since `v4.5.1`
113117

114-
### 9. Versions
118+
### 10. Versions
115119

116-
`FFmpegKit` binaries generated use the same major and minor version numbers as the upstream `FFmpeg` project.
120+
`FFmpegKit` binaries generated use the same major and minor version numbers as the upstream `FFmpeg` project. The
121+
third and last number in the version string, if exists, is specific to `FFmpegKit`. It shows different releases from
122+
the same `FFmpeg` release branch.
117123

118-
The exact version number of `FFmpeg` is obtained using `git describe --tags`. `dev` part in the version string
119-
indicates that `FFmpeg` source code is cloned from the `FFmpeg` `master` branch.
124+
`dev` part in the version string indicates that `FFmpeg` source code is cloned from the `FFmpeg` `master` branch and
125+
the exact version number of `FFmpeg` is obtained using the `git describe --tags` command.
120126

121127
| Platforms | FFmpegKit Version | FFmpeg Version | Release Date |
122-
|:----------------:|:----------------------------------------------------------------------------------:| :------------: |:------------:|
123-
| React Native | [4.5.2](https://github.com/tanersener/ffmpeg-kit/releases/tag/react.native.v4.5.2) | 4.5-dev-3393 | May 25, 2022 |
124-
| Flutter | [4.5.1](https://github.com/tanersener/ffmpeg-kit/releases/tag/flutter.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
125-
| React Native | [4.5.1](https://github.com/tanersener/ffmpeg-kit/releases/tag/react.native.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
126-
| Android | [4.5.1](https://github.com/tanersener/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Jan 01, 2022 |
127-
| Apple | [4.5.1](https://github.com/tanersener/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Dec 30, 2021 |
128-
| Flutter | [4.5.0](https://github.com/tanersener/ffmpeg-kit/releases/tag/flutter.v4.5.0) | 4.5-dev-2008 | Oct 05, 2021 |
129-
| React Native | [4.5.0](https://github.com/tanersener/ffmpeg-kit/releases/tag/react.native.v4.5.0) | 4.5-dev-2008 | Oct 01, 2021 |
130-
| Android<br>Apple | [4.5](https://github.com/tanersener/ffmpeg-kit/releases/tag/v4.5) | 4.5-dev-2008 | Sep 18, 2021 |
131-
| Android<br>Apple | [4.4](https://github.com/tanersener/ffmpeg-kit/releases/tag/v4.4) | 4.4-dev-3015 | Mar 03, 2021 |
132-
133-
### 10. LTS Releases
128+
|:----------------:|:----------------------------------------------------------------------------------:|:--------------:|:------------:|
129+
| Android | [5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v5.1) | 5.1.2 | Sep 29, 2022 |
130+
| Apple | [5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v5.1) | 5.1.2 | Sep 29, 2022 |
131+
| React Native | [4.5.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.2) | 4.5-dev-3393 | May 25, 2022 |
132+
| Flutter | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
133+
| React Native | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
134+
| Android | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Jan 01, 2022 |
135+
| Apple | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Dec 30, 2021 |
136+
| Flutter | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.0) | 4.5-dev-2008 | Oct 05, 2021 |
137+
| React Native | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.0) | 4.5-dev-2008 | Oct 01, 2021 |
138+
| Android<br>Apple | [4.5](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5) | 4.5-dev-2008 | Sep 18, 2021 |
139+
| Android<br>Apple | [4.4](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.4) | 4.4-dev-3015 | Mar 03, 2021 |
140+
141+
### 11. LTS Releases
134142

135143
`FFmpegKit` binaries are published in two release variants: `Main Release` and `LTS Release`.
136144

@@ -160,26 +168,38 @@ This table shows the differences between two variants.
160168
| tvOS Architectures | arm64<br/>x86-64<br/>arm64-simulator | arm64<br/>x86-64 |
161169
| tvOS Bundle Format | XCFrameworks | Frameworks |
162170

163-
### 11. Documentation
171+
### 12. Documentation
164172

165173
A more detailed documentation is available under [Wiki](https://github.com/arthenica/ffmpeg-kit/wiki).
166174

167-
### 12. Test Applications
175+
### 13. Test Applications
168176

169177
You can see how `FFmpegKit` is used inside an application by running test applications created under
170178
[FFmpegKit Test](https://github.com/arthenica/ffmpeg-kit-test) project.
171179

172180
All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio,
173181
burning subtitles, video stabilisation, pipe operations and concurrent command execution.
174182

175-
### 13. License
183+
### 14. License
184+
185+
`FFmpegKit` library alone is licensed under the `LGPL v3.0`.
176186

177-
`FFmpegKit` is licensed under the `LGPL v3.0`. However, if source code is built using the optional `--enable-gpl` flag
178-
or prebuilt binaries with `-gpl` postfix are used, then `FFmpegKit` is subject to the `GPL v3.0` license.
187+
`FFmpegKit` bundles (`.aar` archives, `frameworks`, `xcframeworks`), which include both `FFmpegKit` and `FFmpeg`
188+
libraries, are also licensed under the `LGPL v3.0`. However, if the source code is built using the optional
189+
`--enable-gpl` flag or prebuilt binaries with `-gpl` postfix are used, then `FFmpegKit` bundles become subject to the
190+
`GPL v3.0`. Because, `FFmpeg` is licensed under the `GPL v3.0` in those bundles. And that makes the whole bundle
191+
effectively subject to the `GPL v3.0`.
179192

180-
See the [License](https://github.com/arthenica/ffmpeg-kit/wiki/License) wiki page for the details.
193+
`FFmpegKit` build scripts always configure `FFmpeg` with `--enable-version3` option. And never enable non-free
194+
libraries. Thus, `FFmpeg` libraries created by `FFmpegKit` are licensed under the `LGPL v3.0` by default. Only when
195+
`--enable-gpl` is provided they become subject to `GPL v3.0`. That is how prebuilt binaries with `-gpl` postfix are
196+
compiled.
181197

182-
### 14. Patents
198+
Refer to [Licenses](https://github.com/arthenica/ffmpeg-kit/wiki/Licenses) to see the licenses of all libraries.
199+
[Trademark](https://github.com/arthenica/ffmpeg-kit/wiki/Trademark) lists the trademarks used in the `FFmpegKit`
200+
documentation.
201+
202+
### 15. Patents
183203

184204
It is not clearly explained in their documentation, but it is believed that `FFmpeg`, `kvazaar`, `x264` and `x265`
185205
include algorithms which are subject to software patents. If you live in a country where software algorithms are
@@ -190,16 +210,11 @@ that you seek legal advice first. See [FFmpeg Patent Mini-FAQ](https://ffmpeg.or
190210
distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to
191211
[OpenH264 FAQ](https://www.openh264.org/faq.html) page for the details.
192212

193-
### 15. Contributing
194-
195-
Feel free to submit issues or pull requests.
213+
### 16. Contributing
196214

197-
Please note that `main` includes only the latest released source code. Changes planned for the next release are
198-
developed under the `development` branches (`development` for native platforms, `development-react-native` for
199-
`react-native`, `development-flutter` for `flutter`). Therefore, if you want to create a pull request, please open it
200-
against them.
215+
See our [CONTRIBUTING](CONTRIBUTING.md) guide.
201216

202-
### 16. See Also
217+
### 17. See Also
203218

204219
- [FFmpeg API Documentation](https://ffmpeg.org/doxygen/4.0/index.html)
205220
- [FFmpeg Wiki](https://trac.ffmpeg.org/wiki/WikiStart)

android/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ All libraries created by `android.sh` can be found under the `prebuilt` director
7777
}
7878

7979
dependencies {
80-
implementation 'com.arthenica:ffmpeg-kit-full:4.5.1-1'
80+
implementation 'com.arthenica:ffmpeg-kit-full:5.1'
8181
}
8282
```
8383

apple/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,17 @@ All libraries created can be found under the `prebuilt` directory.
111111

112112
- iOS
113113
```yaml
114-
pod 'ffmpeg-kit-ios-full', '~> 4.5.1'
114+
pod 'ffmpeg-kit-ios-full', '~> 5.1'
115115
```
116116

117117
- macOS
118118
```yaml
119-
pod 'ffmpeg-kit-macos-full', '~> 4.5.1'
119+
pod 'ffmpeg-kit-macos-full', '~> 5.1'
120120
```
121121

122122
- tvOS
123123
```yaml
124-
pod 'ffmpeg-kit-tvos-full', '~> 4.5.1'
124+
pod 'ffmpeg-kit-tvos-full', '~> 5.1'
125125
```
126126

127127
2. Execute synchronous `FFmpeg` commands.

0 commit comments

Comments
 (0)