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 )
2
2
3
3
<img src =" https://github.com/arthenica/ffmpeg-kit/blob/main/docs/assets/ffmpeg-kit-icon-v9.png " width =" 240 " >
4
4
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.
6
6
7
7
It includes scripts to build ` FFmpeg ` native libraries, a wrapper library to run ` FFmpeg ` /` FFprobe ` commands in
8
8
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
11
11
### 1. Features
12
12
- Scripts to build FFmpeg native libraries
13
13
- ` 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
15
15
- 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
17
17
- 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 )
18
18
- Licensed under ` LGPL 3.0 ` , or ` GPL v3.0 ` if GPL licensed libraries are enabled
19
19
@@ -29,28 +29,32 @@ See [Apple](apple) to use `FFmpegKit` on `Apple` platforms (`iOS`, `macOS`, `tvO
29
29
30
30
See [ Flutter] ( flutter/flutter ) to learn more about ` FFmpegKit ` for ` Flutter ` .
31
31
32
- ### 5. React Native
32
+ ### 5. Linux
33
+
34
+ See [ Linux] ( linux ) to learn more about ` FFmpegKit ` for ` Linux ` .
35
+
36
+ ### 6. React Native
33
37
34
38
See [ React Native] ( react-native ) to learn more about ` FFmpegKit ` for ` React Native ` .
35
39
36
- ### 6 . Build Scripts
40
+ ### 7 . Build Scripts
37
41
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.
39
43
40
44
All scripts support additional options to enable optional libraries and disable platform architectures. See
41
45
[ Building] ( https://github.com/arthenica/ffmpeg-kit/wiki/Building ) wiki page for the details.
42
46
43
- ### 7 . FFmpegKit Library
47
+ ### 8 . FFmpegKit Library
44
48
45
49
` FFmpegKit ` is a wrapper library that allows you to easily run ` FFmpeg ` /` FFprobe ` commands in applications. It
46
50
provides additional features on top of ` FFmpeg ` to enable platform specific resources, control how commands are
47
51
executed and how the results are handled.
48
52
49
53
` 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.
52
56
53
- ### 8 . Packages
57
+ ### 9 . Packages
54
58
55
59
There are eight different ` ffmpeg-kit ` packages distributed on
56
60
[ Github] ( https://github.com/arthenica/ffmpeg-kit/releases ) ,
@@ -111,26 +115,30 @@ include them.
111
115
- ` VideoToolbox ` is not available on LTS releases of ` iOS ` and ` tvOS `
112
116
- ` zimg ` is supported since ` v4.5.1 `
113
117
114
- ### 9 . Versions
118
+ ### 10 . Versions
115
119
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.
117
123
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.
120
126
121
127
| 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
134
142
135
143
` FFmpegKit ` binaries are published in two release variants: ` Main Release ` and ` LTS Release ` .
136
144
@@ -160,26 +168,38 @@ This table shows the differences between two variants.
160
168
| tvOS Architectures | arm64<br />x86-64<br />arm64-simulator | arm64<br />x86-64 |
161
169
| tvOS Bundle Format | XCFrameworks | Frameworks |
162
170
163
- ### 11 . Documentation
171
+ ### 12 . Documentation
164
172
165
173
A more detailed documentation is available under [ Wiki] ( https://github.com/arthenica/ffmpeg-kit/wiki ) .
166
174
167
- ### 12 . Test Applications
175
+ ### 13 . Test Applications
168
176
169
177
You can see how ` FFmpegKit ` is used inside an application by running test applications created under
170
178
[ FFmpegKit Test] ( https://github.com/arthenica/ffmpeg-kit-test ) project.
171
179
172
180
All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio,
173
181
burning subtitles, video stabilisation, pipe operations and concurrent command execution.
174
182
175
- ### 13. License
183
+ ### 14. License
184
+
185
+ ` FFmpegKit ` library alone is licensed under the ` LGPL v3.0 ` .
176
186
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 ` .
179
192
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.
181
197
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
183
203
184
204
It is not clearly explained in their documentation, but it is believed that ` FFmpeg ` , ` kvazaar ` , ` x264 ` and ` x265 `
185
205
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
190
210
distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to
191
211
[ OpenH264 FAQ] ( https://www.openh264.org/faq.html ) page for the details.
192
212
193
- ### 15. Contributing
194
-
195
- Feel free to submit issues or pull requests.
213
+ ### 16. Contributing
196
214
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.
201
216
202
- ### 16 . See Also
217
+ ### 17 . See Also
203
218
204
219
- [ FFmpeg API Documentation] ( https://ffmpeg.org/doxygen/4.0/index.html )
205
220
- [ FFmpeg Wiki] ( https://trac.ffmpeg.org/wiki/WikiStart )
0 commit comments