react-native-ffmpeg
Advanced tools
Comparing version
# Changelog | ||
All notable changes to this project will be documented in this file. | ||
## 0.3.3 - 2019-07-04 | ||
- Supports API Level 16 on Android | ||
## 0.3.2 - 2019-04-03 | ||
@@ -5,0 +8,0 @@ - Includes Typescript declarations |
{ | ||
"name": "react-native-ffmpeg", | ||
"version": "0.3.2", | ||
"version": "0.3.3", | ||
"description": "FFmpeg for React Native", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -1,2 +0,2 @@ | ||
# React Native FFmpeg  [](react-native-ffmpeg) | ||
# React Native FFmpeg  [](react-native-ffmpeg) | ||
@@ -10,6 +10,8 @@ FFmpeg for React Native | ||
- Supports | ||
- Both Android and IOS | ||
- Both Android and iOS | ||
- FFmpeg `v4.1` and `v4.2-dev-x` (master) releases | ||
- `arm-v7a`, `arm-v7a-neon`, `arm64-v8a`, `x86` and `x86_64` architectures on Android | ||
- `armv7`, `armv7s`, `arm64`, `arm64e`, `i386` and `x86_64` architectures on IOS | ||
- `Android API Level 16` or later | ||
- `armv7`, `armv7s`, `arm64`, `arm64e`, `i386` and `x86_64` architectures on iOS | ||
- `iOS SDK 9.3` or later | ||
- 24 external libraries | ||
@@ -24,3 +26,3 @@ | ||
- `zlib` and `MediaCodec` Android system libraries | ||
- `bzip2`, `zlib` IOS system libraries and `AudioToolbox`, `CoreImage`, `VideoToolbox`, `AVFoundation` IOS system frameworks | ||
- `bzip2`, `zlib` iOS system libraries and `AudioToolbox`, `CoreImage`, `VideoToolbox`, `AVFoundation` iOS system frameworks | ||
@@ -86,3 +88,3 @@ - Includes Typescript definitions | ||
- **DO NOT USE** `react-native link` **on IOS.** `react-native link` breaks Cocoapods dependencies. | ||
- **DO NOT USE** `react-native link` **on iOS.** `react-native link` breaks Cocoapods dependencies. | ||
@@ -94,3 +96,4 @@ ##### 2.2.2 Advanced | ||
Installation of `react-native-ffmpeg` using instructions in `2.1` and `2.2` enables the default package, which is based on `https` package. It is possible to enable other installed packages using the following steps. | ||
Installation of `react-native-ffmpeg` using instructions in `2.1` and `2.2` enables the default package, which is based on `https` package. | ||
It is possible to enable other installed packages using the following steps. | ||
@@ -108,3 +111,3 @@ ##### 2.3.1 Android | ||
##### 2.3.2 IOS | ||
##### 2.3.2 iOS | ||
@@ -116,3 +119,9 @@ - Edit `ios/Podfile` file and add package name as `subspec`. After that run `pod install` again. | ||
``` | ||
#### 2.4 LTS Release | ||
When a package name is not specified, `react-native-ffmpeg` is installed in the `Main Release` variant described in [LTS Releases](#5-lts-releases) section. | ||
In order to install the `LTS` variant, install the `https-lts` package using instructions in `2.3` or append `-lts` to the package name you are using. | ||
### 3. Using | ||
@@ -272,3 +281,3 @@ | ||
- `master` includes the latest released version `v0.3.2` | ||
- `master` includes the latest released version `v0.3.3` | ||
- `development` branch includes new features and unreleased fixes | ||
@@ -290,8 +299,8 @@ | ||
| :----: | :----: | :----: | | ||
| Android API Level | 24 | 21 | | ||
| Android API Level | 24 | 16 | | ||
| Android Camera Access | Yes | - | | ||
| Android Architectures | arm-v7a-neon<br/>arm64-v8a<br/>x86<br/>x86-64</br> | arm-v7a<br/>arm-v7a-neon<br/>arm64-v8a<br/>x86<br/>x86-64</br> | | ||
| IOS SDK | 12.1 | 9.3 | | ||
| Android Architectures | arm-v7a-neon<br/>arm64-v8a<br/>x86<br/>x86-64 | arm-v7a<br/>arm-v7a-neon<br/>arm64-v8a<br/>x86<br/>x86-64 | | ||
| Xcode Support | 10.1 | 7.3.1 | | ||
| IOS Architectures | arm64<br/>arm64e<br/>x86-64</br> | armv7<br/>arm64<br/>i386<br/>x86-64</br> | | ||
| iOS SDK | 12.1 | 9.3 | | ||
| iOS Architectures | arm64<br/>arm64e<br/>x86-64 | armv7<br/>arm64<br/>i386<br/>x86-64 | | ||
@@ -307,9 +316,12 @@ ### 6. Tips | ||
- If your commands include unnecessary quotes or space characters your command will fail with `No such filter: ' '` errors. Please check your command and remove them. | ||
- If your commands include unnecessary quotes or space characters, your command will fail with `No such filter: ' '` errors. Please check your command and remove them. | ||
- `execute` method has an optional delimiter parameter. Delimiter defines how a command string will be split into arguments. When a delimiter is not specified then space character is used as default delimiter. | ||
Consequently if you have a space character in one of your command arguments, in filename or in `-filter_complex` block, then your command string will be split into invalid arguments and execution will fail. | ||
- `react-native-ffmpeg` uses file system paths, it does not know what an assets folder or project folder is. So you can't use resources on those folders directly, you need to provide full paths of those resources. | ||
- `execute` method is overloaded and has an optional delimiter parameter. Delimiter defines how the command string will be split into arguments. | ||
When delimiter is not specified the space character is used as the default delimiter. | ||
Based on this, if one or more of your command arguments include a space character, in filename path or in `-filter_complex` block, then your command string will be split into invalid arguments and execution will fail. | ||
You can fix this error by splitting your command string into array yourself and calling `executeWithArguments` method or using a different delimiter character in your command string and specifying it in `execute` call. | ||
- Enabling `ProGuard` on Android causes linking errors. Please add the following rule inside your `proguard-rules.pro` file to preserve necessary method names and prevent linking errors. | ||
- Enabling `ProGuard` on releases older than `v0.3.3` causes linking errors. Please add the following rule inside your `proguard-rules.pro` file to preserve necessary method names and prevent linking errors. | ||
@@ -323,2 +335,6 @@ ``` | ||
``` | ||
- `ffmpeg` requires a valid `fontconfig` configuration to render subtitles. Unfortunately, Android does not include a default `fontconfig` configuration. | ||
So if you do not register a font or specify a `fontconfig` configuration under Android, then the burning process will not produce any errors but subtitles won't be burned in your file. | ||
You can overcome this situation by registering a font using `RNFFmpeg.setFontDirectory` method or specifying your own `fontconfig` configuration using `RNFFmpeg.setFontconfigConfigurationPath` method. | ||
@@ -339,3 +355,3 @@ - By default, Xcode compresses `PNG` files during packaging. If you use `.png` files in your commands make sure you set the following two settings to `NO`. If one of them is set to `YES`, your operations may fail with `Error while decoding stream #0:0: Generic error in an external library` error. | ||
line to the scripts section of your package.json as recommended in [react-native issue # 13198](https://github.com/facebook/react-native/issues/13198#issuecomment-302917321), | ||
if your build receives the following error for IOS. | ||
if your build receives the following error for iOS. | ||
@@ -355,3 +371,3 @@ ``` | ||
- If `react-native link` is used for IOS linking, building may fail with this error. Running `pod install` again | ||
- If `react-native link` is used for iOS linking, building may fail with this error. Running `pod install` again | ||
fixes this issue. | ||
@@ -363,3 +379,3 @@ | ||
- Using `cocoapods` for IOS dependency management may produce duplicate symbols for `libReact.a` and `libyoga.a`. | ||
- Using `cocoapods` for iOS dependency management may produce duplicate symbols for `libReact.a` and `libyoga.a`. | ||
Add the following block to your `Podfile` and run `pod install` again. | ||
@@ -366,0 +382,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1916339
0.06%421
3.95%950
-0.63%