Coder Social home page Coder Social logo

tanersener / react-native-ffmpeg Goto Github PK

View Code? Open in Web Editor NEW
398.0 11.0 53.0 4.82 MB

FFmpeg for react-native. Not maintained anymore. Superseded by FFmpegKit.

License: GNU General Public License v3.0

JavaScript 33.57% Shell 0.62% Ruby 12.99% Java 52.81%
ffmpeg react-native android ios

react-native-ffmpeg's Introduction

React Native FFmpeg GitHub release npm

FFmpeg for React Native

Not maintained anymore, superseded by FFmpegKit. See ReactNativeFFmpeg to FFmpegKit Migration Guide.

1. Features

  • Based on MobileFFmpeg

  • Includes both FFmpeg and FFprobe

  • Supports

    • Both Android and iOS

    • FFmpeg v4.1, v4.2, v4.3 and v4.4-dev releases

    • arm-v7a, arm-v7a-neon, arm64-v8a, x86 and x86_64 architectures on Android

    • Android API Level 16 or later

    • armv7, armv7s, arm64, arm64e, i386 and x86_64 architectures on iOS

    • iOS SDK 9.3 or later

    • 25 external libraries

      fontconfig, freetype, fribidi, gmp, gnutls, kvazaar, lame, libaom, libass, libiconv, libilbc, libtheora, libvorbis, libvpx, libwebp, libxml2, opencore-amr, opus, shine, snappy, soxr, speex, twolame, vo-amrwbenc, wavpack

    • 4 external libraries with GPL license

      vid.stab, x264, x265, xvidcore

    • Concurrent execution

    • zlib and MediaCodec Android system libraries

    • bzip2, iconv, libuuid, zlib system libraries and AudioToolbox, VideoToolbox, AVFoundation system frameworks

  • Includes Typescript definitions

  • Licensed under LGPL 3.0, can be customized to support GPL v3.0

2. Installation

$ yarn add react-native-ffmpeg

2.1 Android

On React Native < 0.60, manually link the module by running the following command.

$ react-native link react-native-ffmpeg

2.2 iOS

2.2.1 Basic

On React Native >= 0.60,

  • Add use_native_modules! to your Podfile and run pod install

On React Native < 0.60,

  • Add react-native-ffmpeg pod to your Podfile and run pod install

    pod 'react-native-ffmpeg', :podspec => '../node_modules/react-native-ffmpeg/react-native-ffmpeg.podspec'
    
  • DO NOT USE react-native link on iOS. react-native link breaks Cocoapods dependencies.

2.3 Packages

ffmpeg includes built-in encoders for some popular formats. However, there are certain external libraries that needs to be enabled in order to encode specific formats/codecs. For example, to encode an mp3 file you need lame or shine library enabled. You have to install a react-native-ffmpeg package that has at least one of them inside. To encode an h264 video, you need to install a package with x264 inside. To encode vp8 or vp9 videos, you need a react-native-ffmpeg package with libvpx inside.

react-native-ffmpeg provides eight packages that include different sets of external libraries. These packages are named according to the external libraries included in them. Below you can see which libraries are enabled in each package.

min min-gpl https https-gpl audio video full full-gpl
external libraries - vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
wavpack
fontconfig
freetype
fribidi
kvazaar
libaom
libass
libiconv
libtheora
libvpx
libwebp
snappy
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libaom
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
wavpack
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libaom
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
wavpack
x264
x265
xvidcore
android system libraries zlib
MediaCodec
ios system libraries zlib
AudioToolbox
AVFoundation
iconv
VideoToolbox
bzip2

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.

2.3.1 Android
  • Edit android/build.gradle file and define package name in ext.reactNativeFFmpegPackage variable.

    ext {
        reactNativeFFmpegPackage = "<package name>"
    }
    
    
2.3.2 iOS
  • Edit ios/Podfile file and add package name as subspec. After that run pod install again.

    pod 'react-native-ffmpeg/<package name>', :podspec => '../node_modules/react-native-ffmpeg/react-native-ffmpeg.podspec'
    
  • Note that if you have use_native_modules! in your Podfile, specifying a subspec may cause the following error. You can fix it by defining react-native-ffmpeg dependency before use_native_modules! in your Podfile.

    [!] There are multiple dependencies with different sources for `react-native-ffmpeg` in `Podfile`:
    
    - react-native-ffmpeg (from `../node_modules/react-native-ffmpeg`)
    - react-native-ffmpeg/<package name> (from `../node_modules/react-native-ffmpeg/react-native-ffmpeg.podspec`)
    
2.3.3 Package Names

The following table shows all package names defined for react-native-ffmpeg.

Package Main Release LTS Release
min min min-lts
min-gpl min-gpl min-gpl-lts
https https https-lts
https-gpl https-gpl https-gpl-lts
audio audio audio-lts
video video video-lts
full full full-lts
full-gpl full-gpl full-gpl-lts

2.4 LTS Release

react-native-ffmpeg is published in two different variants: Main Release and LTS Release. Both releases share the same source code but is built with different settings. Below you can see the differences between the two.

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.

Main Release LTS Release
Android API Level 24 16
Android Camera Access Yes -
Android Architectures arm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Support 10.1 7.3.1
iOS SDK 11.0 9.3
iOS AVFoundation Yes -
iOS Architectures arm64
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64

3. Using

  1. Execute synchronous FFmpeg commands.

    • Use execute() method with a single command
    import { LogLevel, RNFFmpeg } from 'react-native-ffmpeg';
    
    RNFFmpeg.execute('-i file1.mp4 -c:v mpeg4 file2.mp4').then(result => console.log(`FFmpeg process exited with rc=${result}.`));
    
    • Use executeWithArguments() method with an array of arguments
    import { LogLevel, RNFFmpeg } from 'react-native-ffmpeg';
    
    RNFFmpeg.executeWithArguments(["-i", "file1.mp4", "-c:v", "mpeg4", "file2.mp4"]).then(result => console.log(`FFmpeg process exited with rc=${result}.`));
    
  2. Execute asynchronous FFmpeg commands.

    import { LogLevel, RNFFmpeg } from 'react-native-ffmpeg';
    
    RNFFmpeg.executeAsync('-i file1.mp4 -c:v mpeg4 file2.mp4', completedExecution => {
        if (completedExecution.returnCode === 0) {
           console.log("FFmpeg process completed successfully");
        } else {
           console.log(`FFmpeg process failed with rc=${completedExecution.returnCode}.`);
        }
    }).then(executionId => console.log(`Async FFmpeg process started with executionId ${executionId}.`));
    
  3. Execute FFprobe commands.

    • Use execute() method with a single command
    import { LogLevel, RNFFprobe } from 'react-native-ffmpeg';
    
    RNFFprobe.execute('-i file1.mp4').then(result => console.log(`FFprobe process exited with rc=${result}.`));
    
    • Use executeWithArguments() method with an array of arguments
    import { LogLevel, RNFFprobe } from 'react-native-ffmpeg';
    
    RNFFprobe.executeWithArguments(["-i", "file1.mp4"]).then(result => console.log(`FFmpeg process exited with rc=${result}.`));
    
  4. Check execution output. Zero represents successful execution, non-zero values represent failure.

    RNFFmpegConfig.getLastReturnCode().then(returnCode => {
        console.log(`Last return code: ${returnCode}`);
    });
    
    RNFFmpegConfig.getLastCommandOutput().then(output => {
        console.log(`Last command output: ${output}`);
    });
    
  5. Stop ongoing FFmpeg operations. Note that these two functions do not wait for termination to complete and return immediately.

    • Stop all executions
      RNFFmpeg.cancel();
      
    • Stop a specific execution
      RNFFmpeg.cancelExecution(executionId);
      
  6. Get media information for a file.

    • Print all fields
    RNFFprobe.getMediaInformation('<file path or uri>').then(information => {
        console.log('Result: ' + JSON.stringify(information));
    });
    
    • Print selected fields
    RNFFprobe.getMediaInformation('<file path or uri>').then(information => {
        if (information.getMediaProperties() !== undefined) {
            if (information.getMediaProperties().filename !== undefined) {
                console.log(`Path: ${information.getMediaProperties().filename}`);
            }
            if (information.getMediaProperties().format_name !== undefined) {
                console.log(`Format: ${information.getMediaProperties().format_name}`);
            }
            if (information.getMediaProperties().bit_rate !== undefined) {
                console.log(`Bitrate: ${information.getMediaProperties().bit_rate}`);
            }
            if (information.getMediaProperties().duration !== undefined) {
                console.log(`Duration: ${information.getMediaProperties().duration}`);
            }
            if (information.getMediaProperties().start_time !== undefined) {
                console.log(`Start time: ${information.getMediaProperties().start_time}`);
            }
            if (information.getMediaProperties().nb_streams !== undefined) {
                console.log(`Number of streams: ${information.getMediaProperties().nb_streams.toString()}`);
            }
            let tags = information.getMediaProperties().tags;
            if (tags !== undefined) {
                Object.keys(tags).forEach((key) => {
                    console.log(`Tag: ${key}:${tags[key]}`);
                });
            }
    
            let streams = information.getStreams();
            if (streams !== undefined) {
                for (let i = 0; i < streams.length; ++i) {
                   let stream = streams[i];
                   console.log("---");
                   if (stream.getAllProperties().index !== undefined) {
                       console.log(`Stream index: ${stream.getAllProperties().index.toString()}`);
                   }
                   if (stream.getAllProperties().codec_type !== undefined) {
                       console.log(`Stream type: ${stream.getAllProperties().codec_type}`);
                   }
                   if (stream.getAllProperties().codec_name !== undefined) {
                       console.log(`Stream codec: ${stream.getAllProperties().codec_name}`);
                   }
                }
            }
        }
    });
    
  7. Enable log callback and redirect all FFmpeg/FFprobe logs to a console/file/widget.

    logCallback = (log) => {
        this.appendLog(`${log.executionId}:${log.message}`);
    };
    ...
    RNFFmpegConfig.enableLogCallback(this.logCallback);
    
  8. Enable statistics callback and follow the progress of an ongoing FFmpeg operation.

    statisticsCallback = (statistics) => {
        console.log(`Statistics; executionId: ${statistics.executionId}, video frame number: ${statistics.videoFrameNumber}, video fps: ${statistics.videoFps}, video quality: ${statistics.videoQuality}, size: ${statistics.size}, time: ${statistics.time}, bitrate: ${statistics.bitrate}, speed: ${statistics.speed}`);
    };
    ...
    RNFFmpegConfig.enableStatisticsCallback(this.statisticsCallback);
    
  9. Poll statistics without implementing statistics callback.

    RNFFmpegConfig.getLastReceivedStatistics().then(statistics => console.log('Stats: ' + JSON.stringify(statistics)));
    
  10. List ongoing executions.

    RNFFmpeg.listExecutions().then(executionList => {
        executionList.forEach(execution => {
            console.log(`Execution id is ${execution.executionId}`);
            console.log(`Execution start time is ` + new Date(execution.startTime));
            console.log(`Execution command is ${execution.command}`);
        });
    });
    
  11. Set log level.

    RNFFmpegConfig.setLogLevel(LogLevel.AV_LOG_WARNING);
    
  12. Register your own fonts by specifying a custom fonts directory, so they are available to use in FFmpeg filters. Please note that this function can not work on relative paths, you need to provide full file system path.

    • Without any font name mappings
    RNFFmpegConfig.setFontDirectory('<folder with fonts>', null);
    
    • Apply custom font name mappings. This functionality is very useful if your font name includes ' ' (space) characters in it.
    RNFFmpegConfig.setFontDirectory('<folder with fonts>', { my_easy_font_name: "my complex font name" });
    
  13. Use your own fontconfig configuration.

    RNFFmpegConfig.setFontconfigConfigurationPath('<fontconfig configuration directory>');
    
  14. Disable log functionality of the library. Logs will not be printed to console and log callback will be disabled.

    RNFFmpegConfig.disableLogs();
    
  15. Disable statistics functionality of the library. Statistics callback will be disabled but the last received statistics data will be still available.

    RNFFmpegConfig.disableStatistics();
    
  16. Create new FFmpeg pipe.

    RNFFmpegConfig.registerNewFFmpegPipe().then(pipe => {
        console.log("New ffmpeg pipe: " + pipe1);
    });
    

4. Test Application

You can see how react-native-ffmpeg is used inside an application by running test application provided under the react-native-ffmpeg-test repository. It supports command execution, video encoding, accessing https, encoding audio, burning subtitles, video stabilisation, pipe operations and concurrent command execution.

5. Tips

Apply provided solutions if you encounter one of the following issues.

  • react-native-ffmpeg uses file system paths, it does not know what an assets folder or a project folder is. So you can't use resources on those folders directly, you need to provide full paths of those resources.

  • If react-native-ffmpeg release builds on Android fail with the following exception, make sure that mavenCentral() is defined as a repository in your build.gradle and it is listed before jcenter().

    I/ReactNativeJS: Loading react-native-ffmpeg.
    I/mobile-ffmpeg: Loading mobile-ffmpeg.
    E/mobile-ffmpeg: OnLoad thread failed to GetStaticMethodID for log.
    java_vm_ext.cc:577] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError: no static method "Lcom/arthenica/mobileffmpeg/Config;.log(JI[B)V"
    java_vm_ext.cc:577]   at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class) (Runtime.java:-2)
    java_vm_ext.cc:577]   at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:1131)
    java_vm_ext.cc:577]   at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.Class, java.lang.String) (Runtime.java:1085)
    java_vm_ext.cc:577]   at void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String) (Runtime.java:1008)
    java_vm_ext.cc:577]   at void java.lang.System.loadLibrary(java.lang.String) (System.java:1664)
    java_vm_ext.cc:577]   at void com.arthenica.mobileffmpeg.Config.<clinit>() (:-1)
    java_vm_ext.cc:577]   at void com.arthenica.mobileffmpeg.Config.c(com.arthenica.mobileffmpeg.h) (:-1)
    java_vm_ext.cc:577]   at void com.arthenica.reactnative.RNFFmpegModule.enableLogEvents() (:-1)
    java_vm_ext.cc:577]   at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
    java_vm_ext.cc:577]   at void com.facebook.react.bridge.JavaMethodWrapper.invoke(com.facebook.react.bridge.JSInstance, com.facebook.react.bridge.ReadableArray) (:-1)
    java_vm_ext.cc:577]   at void com.facebook.react.bridge.JavaModuleWrapper.invoke(int, com.facebook.react.bridge.ReadableNativeArray) (:-1)
    java_vm_ext.cc:577]   at void com.facebook.react.bridge.queue.NativeRunnable.run() (:-2)
    java_vm_ext.cc:577]   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:938)
    java_vm_ext.cc:577]   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:99)
    java_vm_ext.cc:577]   at void com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(android.os.Message) (:-1)
    java_vm_ext.cc:577]   at void android.os.Looper.loop() (Looper.java:223)
    java_vm_ext.cc:577]   at void com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run() (:-1)
    java_vm_ext.cc:577]   at void java.lang.Thread.run() (Thread.java:923)
    java_vm_ext.cc:577]
    java_vm_ext.cc:577]     in call to NewGlobalRef
    java_vm_ext.cc:577]     from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class)
    
  • 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.

    -keep class com.arthenica.mobileffmpeg.Config {
        native <methods>;
        void log(int, byte[]);
        void statistics(int, float, float, long , int, double, double);
    }
    
  • 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.

  • 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.

    png_settings
  • Sometimes react-native run-ios fails with weird build errors. Execute the following commands and try again.

    rm -rf ios/Pods ios/build ios/Podfile.lock
    cd ios
    pod install
    
  • Add "postinstall": "sed -i '' 's\/#import <RCTAnimation\\/RCTValueAnimatedNode.h>\/#import \"RCTValueAnimatedNode.h\"\/' ./node_modules/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h" line to the scripts section of your package.json as recommended in react-native issue # 13198, if your build receives the following error for iOS.

    ../node_modules/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h:10:9: fatal error: 'RCTAnimation/RCTValueAnimatedNode.h' file not found
    #import <RCTAnimation/RCTValueAnimatedNode.h>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.
    
  • When pod install fails with the following message, delete the Podfile.lock file and run pod install again.

    [!] Unable to find a specification for 'react-native-ffmpeg'.
    
  • If react-native link is used for iOS, build may fail with the error below. Running pod install again fixes this issue.

    ../node_modules/react-native-ffmpeg/ios/Pods/Target Support Files/Pods-ReactNativeFFmpeg/Pods-ReactNativeFFmpeg.debug.xcconfig: unable to open file (in target "ReactNativeFFmpeg" in project "ReactNativeFFmpeg") (in target 'ReactNativeFFmpeg')
    
  • On React Native < 0.60, 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.

    post_install do |installer|
        installer.pods_project.targets.each do |target|
          targets_to_ignore = %w(React yoga)
          if targets_to_ignore.include? target.name
            target.remove_from_project
          end
        end
    end
    
    
  • Some react-native-ffmpeg packages include libc++_shared.so native library. If a second library which also includes libc++_shared.so is added as a dependency, gradle fails with More than one file was found with OS independent path 'lib/x86/libc++_shared.so' error message.

    You can fix this error by adding the following block into your build.gradle.

    android {
        packagingOptions {
            pickFirst 'lib/x86/libc++_shared.so'
            pickFirst 'lib/x86_64/libc++_shared.so'
            pickFirst 'lib/armeabi-v7a/libc++_shared.so'
            pickFirst 'lib/arm64-v8a/libc++_shared.so'
        }
    }
    

6. Updates

Refer to Changelog for updates.

7. License

This project is licensed under the LGPL v3.0. However, if installation is customized to use a package with -gpl postfix (min-gpl, https-gpl, full-gpl) then ReactNativeFFmpeg is subject to the GPL v3.0 license.

In test application; embedded fonts are licensed under the SIL Open Font License, other digital assets are published in the public domain.

8. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

9. Contributing

Feel free to submit issues or pull requests.

Please note that master branch includes only the latest released source code. Changes planned for the next release are implemented under the development branch. Therefore, if you want to create a pull request, please open it against the development.

10. See Also

react-native-ffmpeg's People

Contributors

tanersener avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-native-ffmpeg's Issues

Queries on FFMPEG and FFMPEG on mobile

Description

I am trying to understand FFMPEG and FFMPEG on Mobile. Maybe this is a stupid issue.

1). I am reducing the volume of mp3 file but FFmpeg uses libmp3lame but I am not sure which package has libmp3lame library. I have to use full-GPL.

2). What is your stand on the IOS app using frameworks or libraries having GPL licenses?. I have read that Apple rejects app using GPL license framework.

3). Using libx264 on IOS crashes the App due to a lot of Memory. Any tips or hack to make libx264 work on ios without crash.

Happy to have a discussion here As a JS developer these terminologies and techniques are confusing.

FFmpeg Remote assets returns 404 error

Description
FFmpeg input file from remote url(google cloud storage url) got 404 error.

Logs
https://ghostbin.com/paste/d6z6v

Environment

React Native Environment Info:
  System:
    OS: macOS 10.14
    CPU: (4) x64 Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
    Memory: 36.58 MB / 4.00 GB
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 10.15.0 - /usr/local/bin/node
    npm: 6.4.1 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
    Android SDK:
      API Levels: 23, 25, 26, 27, 28
      Build Tools: 23.0.1, 25.0.1, 25.0.2, 26.0.2, 27.0.3, 28.0.3
      System Images: android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.2 AI-181.5540.7.32.5056338
    Xcode: 10.1/10B61 - /usr/bin/xcodebuild
  npmPackages:
    react: ^16.0.0 => 16.6.0
    react-native: ^0.57.8 => 0.57.8
  npmGlobalPackages:
    react-native-cli: 2.0.1

Other
pod 'react-native-ffmpeg-full', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg-full.podspec'

No such filter: 'boxblur'

Description
As im trying to use boxblur filter, an error pops up telling me that: No such filter: 'boxblur'.
Here's my code:

const input = this.state.selectedFile.filePath;
const output = RNFS.CachesDirectoryPath + '/video.mp4';

RNFFmpeg
  .execute(
    `-i ${input} `+
    `-filter_complex `+
          `[0:v]scale=720:720,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];`+
          `[0:v]scale=720:720:force_original_aspect_ratio=decrease[fg];`+
          `[bg][fg]overlay=(W-w)/2:(H-h)/2[outv] `+
    `${output}`, ' ');

Expected behavior
The expected result should be something like this:
Expected Result

Current behavior
Exception: No such filter: 'boxblur'

Environment
Using the full version: pod 'react-native-ffmpeg-full', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg-full.podspec'

Other
If i try to do any other complex filtering, without using boxblur, it works flawlessly!

Thx for this amazing library!

[iOS] pod install error

Description
[iOS] pod install error

Expected behavior
Need to integrate this package.

Current behavior

[!] CocoaPods could not find compatible versions for pod "mobile-ffmpeg-https":
  In Podfile:
    react-native-ffmpeg (from `../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg.podspec`) was resolved to 0.3.0, which depends on
      mobile-ffmpeg-https (= 4.2.LTS)

Specs satisfying the `mobile-ffmpeg-https (= 4.2.LTS)` dependency were found, but they required a higher minimum deployment target.

Screenshots

Logs
https://ghostbin.com/paste/7u9kh

Environment

React Native Environment Info:
   System:
     OS: macOS 10.14
     CPU: (4) x64 Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
     Memory: 32.38 MB / 4.00 GB
     Shell: 3.2.57 - /bin/bash
   Binaries:
     Node: 10.15.0 - /usr/local/bin/node
     npm: 6.4.1 - /usr/local/bin/npm
     Watchman: 4.9.0 - /usr/local/bin/watchman
   SDKs:
     iOS SDK:
       Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
     Android SDK:
       API Levels: 23, 25, 26, 27, 28
       Build Tools: 23.0.1, 25.0.1, 25.0.2, 26.0.2, 27.0.3, 28.0.3
       System Images: android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom
   IDEs:
     Android Studio: 3.2 AI-181.5540.7.32.5056338
     Xcode: 10.1/10B61 - /usr/bin/xcodebuild
   npmPackages:
     react: ^16.0.0 => 16.6.0 
     react-native: ^0.57.8 => 0.57.8 
   npmGlobalPackages:
     react-native-cli: 2.0.1

Other
My pod file

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'XXX' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for XXX
  pod 'Firebase/Auth', '~> 5.9.0'
  
  pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'

  pod 'react-native-video', :path => '../node_modules/react-native-video'

  pod 'RNSVG', :path => '../node_modules/react-native-svg'

  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge', # Include this for RN >= 0.47
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # Needed for debugging
    'RCTAnimation', # Needed for FlatList and animations running on native UI thread
    'RCTImage',
    # Add any other subspecs you want to use in your project
  ]
  # Explicitly include Yoga if you are using RN >= 0.42.0
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  # Third party deps podspec link
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
  

  pod 'react-native-fetch-blob', :path => '../node_modules/react-native-fetch-blob'

  pod 'react-native-image-picker', :path => '../node_modules/react-native-image-picker'

  pod 'react-native-document-picker', :path => '../node_modules/react-native-document-picker'

  pod 'react-native-orientation', :path => '../node_modules/react-native-orientation'

  pod 'react-native-camera', :path => '../node_modules/react-native-camera'

  pod 'RNFS', :path => '../node_modules/react-native-fs'

  pod 'react-native-ffmpeg', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg.podspec'

end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "react-native-google-maps"
      target.build_configurations.each do |config|
        config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
      end
    end

    if target.name == "React"
      target.remove_from_project
    end
  end
end

No usable fontconfig configuration file found, using fallback.

I am trying to burn subtitles on a video. I am getting this error below:
`Running FFmpeg command: -i /Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/8BF1314A-F6D1-4C43-994E-F94EE40921DA/Library/Caches/input-caption.mp4 -filter_complex subtitles=/Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Bundle/Application/83068106-391B-46A3-8598-6BE7A8A11077/AwesomeProject.app/test.srt:force_style='PrimaryColour=#000000,OutlineColour=None,Outline=0,Shadow=0,BorderStyle=0' -y /Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/8BF1314A-F6D1-4C43-994E-F94EE40921DA/Library/Caches/input-caption.mp4 with delimiter .

index.js:70 ffmpeg version v4.1-dev-1517
index.js:70 Copyright (c) 2000-2018 the FFmpeg developers
index.js:70

index.js:70 built with Apple LLVM version 7.3.0 (clang-703.0.31)

index.js:70 configuration: --sysroot=/Applications/Xcode-v7.3.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk --prefix=/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/ffmpeg --extra-cflags='-arch x86_64 -target x86_64-ios-darwin -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -Wno-unused-function -DPIC -fstrict-aliasing -DIOS -isysroot /Applications/Xcode-v7.3.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk -O2 -Wno-ignored-optimization-argument -mios-simulator-version-min=8.0 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/fontconfig/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/freetype/include/freetype2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libpng/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libuuid/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/expat/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libiconv/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/freetype/include/freetype2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libpng/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/fribidi/include/fribidi -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/gmp/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/gnutls/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/nettle/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/lame/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libass/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/fontconfig/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libuuid/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/expat/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libiconv/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/fribidi/include/fribidi -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/freetype/include/freetype2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libpng/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libiconv/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libtheora/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libogg/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libvorbis/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libogg/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libvpx/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libwebp/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libxml2/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libxml2/include/libxml2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libiconv/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/opencore-amr/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/opencore-amr/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/shine/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/speex/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/wavpack/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/kvazaar/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libilbc/include/ -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/opus/include/opus -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/snappy/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/soxr/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libaom/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/chromaprint/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/twolame/include -D_THREAD_SAFE -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/sdl/include/SDL2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/tesseract/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/leptonica/include/leptonica -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/giflib/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libogg/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libpng/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/li
index.js:70 libavutil 56. 19.101 / 56. 19.101

index.js:70 libavcodec 58. 33.102 / 58. 33.102

index.js:70 libavformat 58. 19.102 / 58. 19.102

index.js:70 libavdevice 58. 4.106 / 58. 4.106

index.js:70 libavfilter 7. 37.100 / 7. 37.100

index.js:70 libswscale 5. 2.100 / 5. 2.100

index.js:70 libswresample 3. 2.100 / 3. 2.100

index.js:70 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/8BF1314A-F6D1-4C43-994E-F94EE40921DA/Library/Caches/input-caption.mp4':

index.js:70 Metadata:

index.js:70 major_brand :
index.js:70 isom
index.js:70

index.js:70 minor_version :
index.js:70 512
index.js:70

index.js:70 compatible_brands:
index.js:70 isomiso2mp41
index.js:70

index.js:70 encoder :
index.js:70 Lavf58.19.102
index.js:70

index.js:70 Duration:
index.js:70 00:00:34.97
index.js:70 , start:
index.js:70 0.000000
index.js:70 , bitrate:
index.js:70 259 kb/s
index.js:70

index.js:70 Stream #0:0
index.js:70 (und)
index.js:70 : Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 360x360 [SAR 1:1 DAR 1:1], 258 kb/s
index.js:70 ,
index.js:70 30 fps,
index.js:70 30 tbr,
index.js:70 15360 tbn,
index.js:70 30 tbc
index.js:70 (default)
index.js:70

index.js:70 Metadata:

index.js:70 handler_name :
index.js:70 VideoHandler
index.js:70

index.js:70 Shaper: FriBidi 1.0.5 (SIMPLE)
index.js:70

index.js:70 No usable fontconfig configuration file found, using fallback.
index.js:70

index.js:70 Using font provider fontconfig
index.js:70

index.js:70 Output /Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/8BF1314A-F6D1-4C43-994E-F94EE40921DA/Library/Caches/input-caption.mp4 same as Input #0 - exiting

index.js:70 FFmpeg cannot edit existing files in-place.

index.js:70 Conversion failed!`

Script error when importing RNFFmpeg

When importing RNFFmpeg in js file for android, it throws script error as cannot read property 'enableLogEvents' of undefined.

import { RNFFmpeg } from 'react-native-ffmpeg';

[Android/IOS] Support font name mappings in setFontDirectory

mobile-ffmpeg API supports providing a font name mapping in setFontDirectory method. This functionality is very useful if your font name includes ' ' (space) characters in it.

However setFontDirectory method in react-native API supports only the path argument. Support for font name mappings parameters must be added in setFontDirectory.

Did not receive output

I using react-native-image-picker to pick the video and get the file path, however i cannot find any output when the execution done, following below is my code

  ImagePicker.showImagePicker(options, (response) => {
    let outputpath = response.path.replace('myvideo.mp4','output.mp4');
    RNFFmpeg.executeWithArguments(["-i", response.path , "-filter:v", "setpts=0.05*PTS", "-an", outputpath]).then(result => console.log("FFmpeg process exited with rc " + result.rc));
  });

[Question] Working with video stream from camera?

Title pretty much says it all, without doing a ton of research I am curious to know if this FFMPEG implementation would be able to encode or maybe split up an incoming video stream from the device itself. Thinking about using EXPO sdk and their camera features.

[Feature] Better control over binary selection

Description
Currently, in order to change the FFMpeg (binary) version, you have to manually edit files under the node_modules folder. This is a problematic approach as:

  • Your changes will be lost every time you re-install your modules (say, on a CI server or a new dev machine)
  • Node modules are never under git, so you can't share the project configuration with other team members.

Suggested approach

  • For android: Read the FFMpeg version from rootProject.ext.ffmpegVersion, similar to how other popular React Native libraries get their configuration. This is a much more "native" approach, and leverages Gradle properly.

The user configuration will look like this:

ext {
  ffmpegVersion: 'example-version-4.12-full'
  ...
  ...
}
  • For iOS: I'm not too familiar with Cocoapods, but I've had some luck by simply pointing to the podspec I want to use rather than the root podspec. Maybe it's worth updating the README or providing a more "official" way of doing that.

How can I use custom fonts?

Hello,
I've got some problems while using RNFFmpeg.setFontDirectory.
I need to use my custom fonts that I linked to the app with react-native-asset.
The fonts are located inside assets/fonts folder.

On Android for example it works when I'm using the system fonts folder and the default font DroidSans:
RNFFmpeg.setFontDirectory(['/system/fonts/']);
I also noticed that on Android setFontDirectory seems to take an array and not a single string.

On FFmpeg I'm using the drawtext ffmpeg filter, an example could be:
...drawtext=fontcolor=white:fontsize=50:x=150:y=150:font=Roboto-Thin:text='Hi!'...
with Roboto-Thin located in assets/fonts/Roboto-Thin.ttf
With this example I'm getting this error: Cannot find a valid font for the family Roboto-Thin

[Android] Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForDebug'.

Description
Unable to build on android after installing your package. I set up the app using steps 2, 2.1

Expected behavior
Being able to build and use the package inside react-native app.

Current behavior
When I build the app I get an error during build.

  • What went wrong:
Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForDebug'.
> More than one file was found with OS independent path 'lib/x86/libswscale.so'

Environment

  • react-native: 0.55.2
  • react-native-ffmpeg: 0.2.1

[Android] No such file or directory

Hi I am trying trim a video with the code below in an Android emulator.

I have installed the latest version of react-native-ffmpeg but it can't seem to find the file. I put it right under /bin/videofile.mp4 (relative to the root folder of the project).

The only log output I get is
12-29 01:09:17.804 9229 12551 I ReactNativeJS: ./bin/videofile.mp4: No such file or directory

I also tried it without the "bin" folder. I tried using the "file:///" prefix but nothing so far has worked its wonders.

I can't find anything else online either. Does anyone know where to put the file? Or how the path needs to look like in order to be found by the ffmpeg module?

Thanks!

-root
--bin
---videofile.mp4

componentWillMount(){
    console.log("START");

    RNFFmpeg.enableLogCallback(this.logCallback);
    RNFFmpeg.enableStatisticsCallback(this.statisticsCallback);

    RNFFmpeg.execute('-i ./bin/videofile.mp4 -ss 00:00:00.000 -to 00:00:02.500 ./bin/output.mp4');
    console.log("AFTER EXECUTE");

    RNFFmpeg.getLastReturnCode().then(result => {
      console.log("Last return code: " + result.lastRc);
    });

    RNFFmpeg.getLastCommandOutput().then(result => {
      console.log("Last command output: " + result.lastCommandOutput);
    });
    console.log("END");
  }

Versions

    "react": "16.6.3",
    "react-native": "0.57.8",
    "react-native-ffmpeg": "^0.2.1",
    "react-native-video": "^4.2.0"

ffmpeg filter option

Hi,
I am exciting on this package.
Now I feel need to know if it supports FFmpeg filter option like this.
-filter_complex '[0:v][1:v] overlay'
It's not a issue, just confirm to you possible/impossible.
Regards,

archive : linker command failed with exit code 1

XCODE version: 9.4.1
"dependencies":
"react": "16.5.0",
"react-native": "0.57.1",
"react-native-ffmpeg": "^0.1.1",

1.my podfiles:

pod 'react-native-ffmpeg-min-gpl', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg-min-gpl.podspec'
 pod 'Firebase'
 pod 'Firebase/Messaging'

2018-09-27 6 09 35

2.my podfiles

pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge', # Include this for RN >= 0.47
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # Needed for debugging
    'RCTAnimation', # Needed for FlatList and animations running on native UI thread
    # Add any other subspecs you want to use in your project
  ]
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
  pod 'react-native-ffmpeg-min-gpl', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg-min-gpl.podspec'
  pod 'Firebase'
  pod 'Firebase/Messaging'

on debug mode it is all good.
but when i archive , i got an error
linker command failed with exit code 1

Help to implement librsvg codec

Hi,
I want to know if this one is support librsvg codec.
Codec 'librsvg' is not recognized by FFmpeg.
I have got this error now.
Thanks.

react-native init / pod install / build issues - xcode 10

Description
Hi,

I get the following error with a blank project when I try to build and run my react-native app.

/Users/user/Desktop/ffmpegTest/ios/Pods/react-native-ffmpeg/ios/RNFFmpegModule.h:26:9: 'mobileffmpeg/MobileFFmpegConfig.h' file not found

Expected behavior
Build should work

Current behavior
Error:
/Users/user/Desktop/ffmpegTest/ios/Pods/react-native-ffmpeg/ios/RNFFmpegModule.h:26:9: 'mobileffmpeg/MobileFFmpegConfig.h' file not found

Environment

  • React Native 0.57
  • XCode: 10.1
  • Command Lines Tools: 10.1

Steps to reproduce the issue

$ react-native init ffmpegTest --template typescript

$ cd ffmpegTest && yarn add react-native-ffmpeg

$ cd ios && pod init

pod file content

platform :ios, '9.0'

use_frameworks! # already tried it with and without "use_frameworks!"

target "ffmpegTest" do

  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'jschelpers',
    'cxxreact',
    'CxxBridge', # Include this for RN >= 0.47
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    'RCTText',
    'RCTImage',
    'RCTNetwork',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTWebSocket', # needed for debugging
  ]

  # To use CocoaPods with React Native, you need to add this specific Yoga spec as well
  pod "yoga", :path => "../node_modules/react-native/ReactCommon/yoga"

  # Third party deps
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'

  pod 'react-native-ffmpeg', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg.podspec'

end

$ pod install

pod install output

Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `Folly` from `../node_modules/react-native/third-party-podspecs/Folly.podspec`
Fetching podspec for `React` from `../node_modules/react-native`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
Fetching podspec for `react-native-ffmpeg` from `../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg.podspec`
Fetching podspec for `yoga` from `../node_modules/react-native/ReactCommon/yoga`
Downloading dependencies
Installing DoubleConversion (1.1.6)
Installing Folly (2016.10.31.00)
Installing React (0.57.8)
Installing boost-for-react-native (1.63.0)
Installing glog (0.3.5)
Installing mobile-ffmpeg-https (2.0)
Installing react-native-ffmpeg (0.2.1)
Installing yoga (0.57.8.React)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `ffmpegTest.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There are 16 dependencies from the Podfile and 8 total pods installed.

$ open ffmpegTest.xcworkspace

xcode IDE -> product -> build

Can you help me?

Many thanks & regards
Marcus

How to increase Android ffmpeg convert speed?

Description
Android FFmpeg convert takes longer than iOS.

Expected behavior
Increase convert speed as much as iOS.

Current behavior
Took 2~3 times than iOS

Logs
Convert logs: https://ghostbin.com/paste/2zcp6
Emulator info: https://ghostbin.com/paste/bcytg

Environment

  • React Native Environment Info
System:
      OS: macOS 10.14.3
      CPU: (4) x64 Intel(R) Core(TM) i5-4570S CPU @ 2.90GHz
      Memory: 707.80 MB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 10.15.1 - /usr/local/bin/node
      Yarn: 1.13.0 - /usr/local/bin/yarn
      npm: 6.4.1 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
      Android SDK:
        API Levels: 23, 26, 27, 28
        Build Tools: 27.0.3, 28.0.2, 28.0.3
        System Images: android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom
    IDEs:
      Android Studio: 3.3 AI-182.5107.16.33.5264788
      Xcode: 10.1/10B61 - /usr/bin/xcodebuild
    npmPackages:
      react: ^16.0.0 => 16.6.0 
      react-native: ^0.57.8 => 0.57.8 
    npmGlobalPackages:
      react-native-cli: 2.0.1

Other
I have tried android devices and emulator. Both are taken long time.
When I am trying to convert 1 mins video, it took 4~5 mins. so not good. Please check logs.
Also trying to convert on iOS, it is really fast. I know it is depends on device performance(maybe CPU or RAM), but initially need to how to optimize conversion time. Thanks.

ios build failed

Description
after pod install and build i have an error "mobileffmpeg/MediaInformation.h file not found"

my Podfile
platform :ios, '9.0'

install! 'cocoapods', :deterministic_uuids => false
target 'cfilming' do
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'jschelpers',
'cxxreact',
'CxxBridge', # Include this for RN >= 0.47
'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
'RCTText',
'RCTImage',
'RCTNetwork',
'RCTActionSheet',
'RCTAnimation',
'RCTWebSocket', # needed for debugging
]

To use CocoaPods with React Native, you need to add this specific Yoga spec as well

pod "yoga", :path => "../node_modules/react-native/ReactCommon/yoga"

Third party deps

pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'

pod 'react-native-ffmpeg-full-gpl', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg-full-gpl.podspec'

pod 'RNFS', :path => '../node_modules/react-native-fs'

end

do not allow Cocoapods to manage React dependencies

post_install do |installer|
installer.pods_project.targets.each do |target|
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end

Can you help me?
I can't build ios with react-native-ffmpeg with any podfile from test projects

[IOS] libavutil.framework does not support the minimum OS Version specified in the Info.plist

Description
Getting error when archiving in Xcode
Not sure how to handle this error, any thoughts?

My info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleDisplayName</key>
	<string>App</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleGetInfoString</key>
	<string></string>
	<key>CFBundleIdentifier</key>
	<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.1</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>2</string>
	<key>LSApplicationCategoryType</key>
	<string></string>
	<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>facebook</string>
		<string>instagram</string>
	</array>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
	<key>NSAppleMusicUsageDescription</key>
	<string>""</string>
	<key>NSCameraUsageDescription</key>
	<string>""</string>
	<key>NSLocationWhenInUseUsageDescription</key>
	<string></string>
	<key>NSMicrophoneUsageDescription</key>
	<string>""</string>
	<key>NSPhotoLibraryAddUsageDescription</key>
	<string></string>
	<key>NSPhotoLibraryUsageDescription</key>
	<string>""</string>
	<key>UIAppFonts</key>
	<array>
		<string>Entypo.ttf</string>
		<string>icomoon.ttf</string>
		<string></string>
		<string>AntDesign.ttf</string>
		<string>FontAwesome5_Brands.ttf</string>
		<string>FontAwesome5_Regular.ttf</string>
		<string>FontAwesome5_Solid.ttf</string>
	</array>
	<key>UIFileSharingEnabled</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<false/>
</dict>
</plist>

Expected behavior
Being able to archive

Current behavior
Get the error

App Store Connect Operation Error
ERROR ITMS-90208: "Invalid Bundle. The bundle App.app/Frameworks/libavutil.framework does not support the minimum OS Version specified in the Info.plist."
App Store Connect Operation Error
ERROR ITMS-90208: "Invalid Bundle. The bundle App.app/Frameworks/libavcodec.framework does not support the minimum OS Version specified in the Info.plist."
App Store Connect Operation Error
ERROR ITMS-90208: "Invalid Bundle. The bundle App.app/Frameworks/libavdevice.framework does not support the minimum OS Version specified in the Info.plist."
App Store Connect Operation Error
ERROR ITMS-90208: "Invalid Bundle. The bundle App.app/Frameworks/libavfilter.framework does not support the minimum OS Version specified in the Info.plist."
App Store Connect Operation Error
ERROR ITMS-90208: "Invalid Bundle. The bundle App.app/Frameworks/libswresample.framework does not support the minimum OS Version specified in the Info.plist."
App Store Connect Operation Error
ERROR ITMS-90208: "Invalid Bundle. The bundle App.app/Frameworks/libswscale.framework does not support the minimum OS Version specified in the Info.plist."

Build Failed : More than one file was found with OS independent path 'lib/x86/libc++_shared.so'

Description

Task :app:transformNativeLibsWithMergeJniLibsForDebug FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForDebug'.

More than one file was found with OS independent path 'lib/x86/libc++_shared.so'

`
React Native Environment Info:
System:
OS: macOS 10.14.2
CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
Memory: 592.43 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash

Binaries:
  Node: 11.9.0 - /usr/local/bin/node
  npm: 6.9.0 - /usr/local/bin/npm
  Watchman: 4.9.0 - /usr/local/bin/watchman

SDKs:
  iOS SDK:
    Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1

  Android SDK:
    API Levels: 23, 25, 26, 27, 28
    Build Tools: 23.0.1, 25.0.0, 25.0.2, 26.0.1, 26.0.2, 27.0.3, 28.0.3
    System Images: android-23 | Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom_64

IDEs:
  Android Studio: 3.3 AI-182.5107.16.33.5314842
  Xcode: 10.1/10B61 - /usr/bin/xcodebuild

npmPackages:
  react: 16.8.3 => 16.8.3 
  react-native: 0.59.1 => 0.59.1 

npmGlobalPackages:
  react-native-cli: 2.0.1`

a totally new project , no other packages/plugin installed other than react-native-ffmpeg, no idea why, i remember it was working perfectly when i tried this project last time , is it related to react-native version ? and i assume there will be more such error other than "lib/x86/libc++_shared.so" ?

Android Convert Error

Description
iOS working fine with same ffmpeg command, but on android not working.

Expected behavior
Same result as iOS

Current behavior
Conversion failed

Logs
https://ghostbin.com/paste/vc6x9

Environment

  • React Native Environment Info
System:
      OS: macOS 10.14.3
      CPU: (4) x64 Intel(R) Core(TM) i5-4570S CPU @ 2.90GHz
      Memory: 1.94 GB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 10.15.1 - /usr/local/bin/node
      npm: 6.4.1 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
      Android SDK:
        API Levels: 23, 26, 27, 28
        Build Tools: 27.0.3, 28.0.2, 28.0.3
        System Images: android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom
    IDEs:
      Android Studio: 3.3 AI-182.5107.16.33.5264788
      Xcode: 10.1/10B61 - /usr/bin/xcodebuild
    npmPackages:
      react: ^16.0.0 => 16.6.0 
      react-native: ^0.57.8 => 0.57.8 
    npmGlobalPackages:
      react-native-cli: 2.0.1

Other
FFmpeg command:

RNFFmpeg.execute(
        `-y -vcodec libvpx-vp9 -i ${
          this.state.introWebm
        } -vcodec libvpx-vp9 -i ${this.state.outroWebm} -i ${
          this.state.recordedVideo
        } -filter_complex [0:v]scale=w='min(iw*720/ih\,1280)':h=min'(720\,ih*1280/iw)',pad=w=1280:h=720:x=(1280-iw)/2:y=(720-ih)/2[intro];[1:v]scale=w='min(iw*720/ih\,1280)':h='min(720\,ih*1280/iw)',pad=w=1280:h=720:x=(1280-iw)/2:y=(720-ih)/2,setpts='PTS+${this
          .state.outroStart /
          1000}/TB'[outro];[2:v]scale=w='min(iw*720/ih\,1280)':h='min(720\,ih*1280/iw)',pad=w=1280:h=720:x=(1280-iw)/2:y=(720-ih)/2[video];[video][intro]overlay=enable='between(t,0,${this
          .state.introDuration /
          1000})'[video_intro];[video_intro][outro]overlay[v] -map [v] -map 2:a -c:v h264 -b:v 5000k -maxrate 5350k -bufsize 7500k -c:a aac -r 30 -f mp4 ${destinationPath}`
      )

settings.gradle:

include ':react-native-ffmpeg'
project(':react-native-ffmpeg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-ffmpeg/android/full')

APK size

Hey firstly thanks for this awesome lib. but even with minimal config the apk size goes 25 MB, is there any way we could reduce that? i even tried to rebuild custom libs with android.sh you have in MobileFFmpeg but that just failed for me on step FFMPEG. it'll be great if you can help with this.

Support convert multiple images into a video

I am new to this lib, does this library support this ffmpeg command:?
ffmpeg -r 60 -f image2 -s 1920x1080 -i pic%04d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4

this command just converts many image files into a video file test.mp4.

Thanks
idoor

how to make a sound into a video

i am an weber developer with js๏ผŒi was the first time coding react nativeใ€‚now i have a question๏ผŒhow to make a sound into a video๏ผŒis there anyone can tell me๏ผŸhow to writing the coding๏ผŸthanks

Unknown encoder 'libx264'

I am getting the following error when i trying to push a video to wowza server

Ffmpeg command:
'-i <input_file_path> -vf scale=1280:720 -vcodec libx264 -profile:v baseline -pix_fmt yuv420p -f flv <wowza_server_path>

Error Message:
Unknown encoder 'libx264'
Conversion failed!

iOS build error after pod install

Hi,
I am enjoy to work on this repo.
Android is working fine, but on iOS I have build error.

ld: library not found for -lreact-native-ffmpeg clang: error: linker command failed with exit code 1 (use -v to see invocation)

Could you please some more details on iOS install?
Thanks.

Keep getting the unable to open file in target ...

Description
Keep getting the unable to open file in target ... despite having gone through all the recommended setups and running pod install again. Have run

rm -rf ios/Pods ios/build ios/Podfile.lock
cd ios
pod install

I did previously install mobile-ffmpeg and intended to use that but removed it and all its dependencies I think.
If I remove react-native-ffmpeg from podfile and do pod install to remove it, the error still comes up when I try to build.

The error comes both when installing with https package and as I intend to use the full-gpl package.

My podfile

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'App' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for App
  pod 'Firebase/Core'
  pod 'Firebase/Storage'
  #pod 'Firebase/Database'


  pod 'react-native-ffmpeg', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg.podspec'

  target 'AppTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

target 'App-tvOS' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for App-tvOS

  target 'App-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

Expected behavior
Being able to build react-native app and us react-native-ffmpeg

Current behavior
I get the following error
error: /Users/user/repositories/App/node_modules/react-native-ffmpeg/ios/Pods/Target Support Files/Pods-ReactNativeFFmpeg/Pods-ReactNativeFFmpeg.debug.xcconfig: unable to open file (in target "ReactNativeFFmpeg" in project "ReactNativeFFmpeg") (in target 'ReactNativeFFmpeg')

Environment

  • React Native 0.55.2
  • React-native-ffmpeg: ^0.2.1

Help Needed in Converting ffmpeg cli code to react-native-ffmpeg code

Description

Hi Thanks for the Repo. This is not issue related to this repo. I need your help in converting this ffmpeg -i input.avi -vcodec libx264 -x264-params crf=18 -preset veryslow -acodec copy out.mp4 to command understands by react-native-ffmpeg. I am using packagename full to do this. but i get error -x264-params not found

push video to azure RTMP server

Description
Description of what the issue is about.
I can use this command ( /usr/local/ffmpeg/bin/ffmpeg -i https://ia800308.us.archive.org/30/items/popeye_shuteye_popeye/popeye_shuteye_popeye_512kb.mp4 -pixel_format bgr0 -framerate 30 -target pal-vcd -v verbose -strict -2 -c:a aac -b:a 128k -ar 44100 -r 30 -g 60 -keyint_min 60 -b:v 400000 -c:v libx264 -bufsize 400k -maxrate 400k -f flv rtmp://rnffmepg-streamtest-ausoe.channel.media.azure.net:1935/live/c476cbc41dfe420b9212746a1437f934/text_stream ) on my macbook to push that input video to my azure RTMP server. However, I cannot do it in React Native with this command ( RNFFmpeg.execute(
-i https://ia800308.us.archive.org/30/items/popeye_shuteye_popeye/popeye_shuteye_popeye_512kb.mp4 -pixel_format bgr0 -framerate 30 -target pal-vcd -v verbose -strict -2 -c:a aac -b:a 128k -ar 44100 -r 30 -g 60 -keyint_min 60 -b:v 400000 -c:v libx264 -bufsize 400k -maxrate 400k -f flv rtmp://rnffmepg-streamtest-ausoe.channel.media.azure.net:1935/live/c476cbc41dfe420b9212746a1437f934/text_stream
);)

Expected behavior
What you expected to happen.
that command should be working to push that video input to my Azure RTMP server.
Current behavior
What happened.

Screenshots
If applicable, add screenshots to help explain your problem.
image
image
image
image
image

Logs
Post logs here or paste them to Ghostbin and insert the link here.

Environment

  • React Native Environment Info

Other
Add any other context about the problem here.
thank you for your time and patience reading through my question

[IOS] Adding PNG image overlay on a video, JPEG is working, but PNG is not working.

Hey
I am trying to overlay png image on a video. JPEG is working and PNG is not working. I tried everything to fix it but can you please help me fix this bug. The errors I am getting is as follow:
inflate returned error -3
Error while decoding stream #1:0: Generic error in an external library
`Running FFmpeg command: -i /Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/461F6E56-0E16-45D8-A44E-3D3732E8FE77/Library/Caches/input.mp4 -i /Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/461F6E56-0E16-45D8-A44E-3D3732E8FE77/Library/Caches/watermark.png -filter_complex overlay=10:10 /Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/461F6E56-0E16-45D8-A44E-3D3732E8FE77/Library/Caches/input2.mp4 with delimiter .

index.js:70 ffmpeg version v4.1-dev-1517
index.js:70 Copyright (c) 2000-2018 the FFmpeg developers
index.js:70

index.js:70 built with Apple LLVM version 7.3.0 (clang-703.0.31)

index.js:70 configuration: --sysroot=/Applications/Xcode-v7.3.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk --prefix=/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/ffmpeg --extra-cflags='-arch x86_64 -target x86_64-ios-darwin -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -Wno-unused-function -DPIC -fstrict-aliasing -DIOS -isysroot /Applications/Xcode-v7.3.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk -O2 -Wno-ignored-optimization-argument -mios-simulator-version-min=8.0 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/fontconfig/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/freetype/include/freetype2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libpng/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libuuid/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/expat/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libiconv/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/freetype/include/freetype2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libpng/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/fribidi/include/fribidi -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/gmp/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/gnutls/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/nettle/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/lame/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libass/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/fontconfig/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libuuid/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/expat/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libiconv/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/fribidi/include/fribidi -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/freetype/include/freetype2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libpng/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libiconv/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libtheora/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libogg/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libvorbis/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libogg/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libvpx/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libwebp/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libxml2/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libxml2/include/libxml2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libiconv/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/opencore-amr/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/opencore-amr/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/shine/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/speex/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/wavpack/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/kvazaar/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libilbc/include/ -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/opus/include/opus -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/snappy/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/soxr/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libaom/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/chromaprint/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/twolame/include -D_THREAD_SAFE -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/sdl/include/SDL2 -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/tesseract/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/leptonica/include/leptonica -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/giflib/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libogg/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/libpng/include -I/Users/taner/Projects/mobile-ffmpeg/prebuilt/ios-x86_64-ios-darwin/li
index.js:70 libavutil 56. 19.101 / 56. 19.101

index.js:70 libavcodec 58. 33.102 / 58. 33.102

index.js:70 libavformat 58. 19.102 / 58. 19.102

index.js:70 libavdevice 58. 4.106 / 58. 4.106

index.js:70 libavfilter 7. 37.100 / 7. 37.100

index.js:70 libswscale 5. 2.100 / 5. 2.100

index.js:70 libswresample 3. 2.100 / 3. 2.100

index.js:70 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/461F6E56-0E16-45D8-A44E-3D3732E8FE77/Library/Caches/input.mp4':

index.js:70 Metadata:

index.js:70 major_brand :
index.js:70 isom
index.js:70

index.js:70 minor_version :
index.js:70 512
index.js:70

index.js:70 compatible_brands:
index.js:70 isomiso2mp41
index.js:70

index.js:70 encoder :
index.js:70 Lavf58.19.102
index.js:70

index.js:70 Duration:
index.js:70 00:00:35.01
index.js:70 , start:
index.js:70 0.000000
index.js:70 , bitrate:
index.js:70 382 kb/s
index.js:70

index.js:70 Stream #0:0
index.js:70 (eng)
index.js:70 : Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 360x360 [SAR 1:1 DAR 1:1], 246 kb/s
index.js:70 ,
index.js:70 30 fps,
index.js:70 30 tbr,
index.js:70 15360 tbn,
index.js:70 30 tbc
index.js:70 (default)
index.js:70

index.js:70 Metadata:

index.js:70 handler_name :
index.js:70 ๏ฟฝMainconcept Video Media Handler
index.js:70

index.js:70 Stream #0:1
index.js:70 (eng)
index.js:70 : Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 129 kb/s
index.js:70 (default)
index.js:70

index.js:70 Metadata:

index.js:70 handler_name :
index.js:70 #Mainconcept MP4 Sound Media Handler
index.js:70

index.js:70 inflate returned error -3

index.js:70 Input #1, png_pipe, from '/Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/461F6E56-0E16-45D8-A44E-3D3732E8FE77/Library/Caches/watermark.png':

index.js:70 Duration:
index.js:70 N/A
index.js:70 , bitrate:
index.js:70 N/A
index.js:70

index.js:70 Stream #1:0
index.js:70 : Video: png, rgba(pc), 2559x731 [SAR 72:72 DAR 2559:731]
index.js:70 ,
index.js:70 25 tbr,
index.js:70 25 tbn,
index.js:70 25 tbc
index.js:70

index.js:70 Stream mapping:

index.js:70 Stream #0:0 (mpeg4) -> overlay:main
index.js:70 (graph 0)
index.js:70

index.js:70 Stream #1:0 (png) -> overlay:overlay
index.js:70 (graph 0)
index.js:70

index.js:70 overlay
index.js:70 (graph 0)
index.js:70 -> Stream #0:0 (mpeg4)

index.js:70 Stream #0:1 -> #0:1
index.js:70 (aac (native) -> aac (native))
index.js:70

index.js:70 Press [q] to stop, [?] for help

index.js:70 frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A
index.js:70 inflate returned error -3

index.js:70 Error while decoding stream #1:0: Generic error in an external library

index.js:70 Output #0, mp4, to '/Users/hamza/Library/Developer/CoreSimulator/Devices/5A28216E-119E-4B74-A28F-15F47E4EC9C7/data/Containers/Data/Application/461F6E56-0E16-45D8-A44E-3D3732E8FE77/Library/Caches/input2.mp4':

index.js:70 Metadata:

index.js:70 major_brand :
index.js:70 isom
index.js:70

index.js:70 minor_version :
index.js:70 512
index.js:70

index.js:70 compatible_brands:
index.js:70 isomiso2mp41
index.js:70

index.js:70 encoder :
index.js:70 Lavf58.19.102
index.js:70

index.js:70 Stream #0:0
index.js:70 : Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 360x360 [SAR 1:1 DAR 1:1], q=2-31, 200 kb/s
index.js:70 ,
index.js:70 30 fps,
index.js:70 15360 tbn,
index.js:70 30 tbc
index.js:70 (default)
index.js:70

index.js:70 Metadata:

index.js:70 encoder :
index.js:70 Lavc58.33.102 mpeg4
index.js:70

index.js:70 Side data:

index.js:70
index.js:70 cpb:
index.js:70 bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
index.js:70

index.js:70 Stream #0:1
index.js:70 (eng)
index.js:70 : Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
index.js:70 (default)
index.js:70

index.js:70 Metadata:

index.js:70 handler_name :
index.js:70 #Mainconcept MP4 Sound Media Handler
index.js:70

index.js:70 encoder :
index.js:70 Lavc58.33.102 aac
index.js:70

index.js:70 frame= 196 fps=0.0 q=6.9 size= 256kB time=00:00:06.61 bitrate= 317.2kbits/s speed=13.2x
index.js:70 frame= 496 fps=494 q=13.0 size= 768kB time=00:00:16.59 bitrate= 379.1kbits/s speed=16.5x
index.js:70 frame= 792 fps=527 q=10.6 size= 1024kB time=00:00:26.49 bitrate= 316.6kbits/s speed=17.6x
index.js:70 frame= 1044 fps=521 q=9.4 size= 1536kB time=00:00:34.90 bitrate= 360.5kbits/s speed=17.4x
index.js:70
index.js:70 frame= 1049 fps=518 q=8.5 Lsize= 1640kB time=00:00:34.98 bitrate= 384.1kbits/s speed=17.3x

index.js:70 video:1059kB audio:550kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead:
index.js:70 1.938645%
index.js:70

index.js:70 Qavg: 2084.625

index.js:70
RCTLog.js:47 FFmpeg exited with rc: 0`

TypeScript support

Hello,

Do you have a plan for supporting TypeScript types? If it is on your roadmap, I can PR a typescript file that I have made for my project.

BTW, thanks a lot for the great library! It works really well!

Rotate Video

I can't rotate the video with the following command:
-i movie1.mp4 -vf "transpose=1" movie2.mp4

Unable to create mp4 from sequence of images

Description
Unable to create mp4 from a sequence of images with image2 framework, I use the full-gpl package.
When I run this command with a single input file I'm able to get a mp4 file.
-f image2 -r 10 -loop 1 -i file://storage/emulated/0/Pictures/App/tmp/tmp000.jpg -t 2 -y file://storage/emulated/0/Pictures/App/tmp/tmpOut.mp4

file names are tmp000.jpg / tmp001.jpg, I've also tried tmp0.jpg / tmp1.jpg

Expected behavior
Input the command that takes in sequence of images and get out mp4
-f image2 -r 10 -loop 1 -i file://storage/emulated/0/Pictures/App/tmp/tmp*.jpg -t 2 -y file://storage/emulated/0/Pictures/App/tmp/tmpOut.mp4

Also this doesn't work:
-f image2 -r 10 -loop 1 -i file://storage/emulated/0/Pictures/App/tmp/tmp%03d.jpg -t 2 -y file://storage/emulated/0/Pictures/App/tmp/tmpOut.mp4

When I run the same command on my mac it puts out mp4 file correctly with no warnings.

Expected to get a mp4 file.

Current behavior
When I run the command I get:
Could find no file with path 'file://storage/emulated/0/Pictures/App/tmp/tmp%03d.jpg' and index in the range 0-4

Logs

Last command output: ffmpeg version v4.1-dev-1517 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 4.9.x (GCC) 20150123 (prerelease)
  configuration: --cross-prefix=arm-linux-androideabi- --sysroot=/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/ffmpeg --pkg-config=/usr/bin/pkg-config --extra-cflags='-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -Wno-unused-function -fstrict-aliasing -fPIC -DANDROID -D__ANDROID__ -D__ANDROID_API__=21 -Os -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/local/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fontconfig/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/include/freetype2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/include/libpng16 -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libuuid/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/expat/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/include/freetype2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/include/libpng16 -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fribidi/include/fribidi -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/gmp/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/gnutls/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/nettle/include -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/lame/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libass/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fontconfig/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libuuid/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/expat/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fribidi/include/fribidi -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/include/freetype2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/include/libpng16 -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libtheora/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libogg/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvorbis/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libogg/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvpx/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libwebp/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libxml2/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libxml2/include/libxml2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opencore-amr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opencore-amr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/shine/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/speex/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/wavpack/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/kvazaar/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/x264/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/xvidcore/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/x265/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvidstab/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libilbc/include/ -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opus/include/opus -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/snappy/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/soxr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libaom/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/chromaprint/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/twolame/include -DGL_GLEXT_PROTOTYPES -D_REENTRANT -D_THREAD_SAFE -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/sdl/include/SDL2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/tesseract/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/leptonica/include/leptonica -I/home/taner/Projects/mobile-ffmpeg/preb
3index.js:70 
index.js:70 ffmpeg version v4.1-dev-1517
3index.js:70 
index.js:70  Copyright (c) 2000-2018 the FFmpeg developers
3index.js:70 
index.js:70 

3index.js:70 
index.js:70   built with gcc 4.9.x (GCC) 20150123 (prerelease)

MediaGallery.js:971 List of externallibvraries: (31)ย ["chromaprint", "fontconfig", "freetype", "fribidi", "gmp", "gnutls", "iconv", "kvazaar", "libaom", "libass", "libilbc", "libtheora", "libvidstab", "libvorbis", "libvpx", "libwebp", "libxml2", "mp3lame", "opencore-amr", "opus", "sdl", "shine", "snappy", "soxr", "speex", "tesseract", "twolame", "wavpack", "x264", "x265", "xvid"]
3index.js:70 
index.js:70   configuration: --cross-prefix=arm-linux-androideabi- --sysroot=/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/ffmpeg --pkg-config=/usr/bin/pkg-config --extra-cflags='-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -Wno-unused-function -fstrict-aliasing -fPIC -DANDROID -D__ANDROID__ -D__ANDROID_API__=21 -Os -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/local/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fontconfig/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/include/freetype2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/include/libpng16 -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libuuid/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/expat/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/include/freetype2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/include/libpng16 -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fribidi/include/fribidi -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/gmp/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/gnutls/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/nettle/include -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/lame/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libass/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fontconfig/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libuuid/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/expat/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fribidi/include/fribidi -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/include/freetype2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/include/libpng16 -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libtheora/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libogg/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvorbis/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libogg/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvpx/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libwebp/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libxml2/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libxml2/include/libxml2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opencore-amr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opencore-amr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/shine/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/speex/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/wavpack/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/kvazaar/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/x264/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/xvidcore/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/x265/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvidstab/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libilbc/include/ -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opus/include/opus -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/snappy/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/soxr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libaom/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/chromaprint/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/twolame/include -DGL_GLEXT_PROTOTYPES -D_REENTRANT -D_THREAD_SAFE -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/sdl/include/SDL2 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/tesseract/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/leptonica/include/leptonica -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/jpeg/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/include/libpng16 -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/giflib/include -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libwebp/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/tiff/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/giflib/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libogg/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/include/libpng16 -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libuuid/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/nettle/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/nettle/include -I/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/expat/include -I/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/include' --extra-cxxflags='-std=c++11 -fno-exceptions -fno-rtti' --extra-ldflags='-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -Wl,--fix-cortex-a8 -Wl,--gc-sections,--icf=safe -lc -lm -ldl -llog -lc++_shared -L/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/arm-linux-androideabi/lib -L/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/sysroot/usr/lib -L/files/android-sdk/ndk-bundle/toolchains/mobile-ffmpeg-arm/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fontconfig/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/lib -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libuuid/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/expat/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/lib -lfontconfig -lfreetype -lpng16 -lm -lz -luuid -lexpat -liconv -lcharset -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/lib -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -lfreetype -lpng16 -lm -lz -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fribidi/lib -lfribidi -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/gmp/lib -lgmp -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/gnutls/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/nettle/lib -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -lgnutls -lgmp -lhogweed -lgmp -lnettle -lz -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/lame/lib -lmp3lame -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libass/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fontconfig/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libuuid/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/expat/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/fribidi/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/freetype/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/lib -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -lass -lm -lfontconfig -luuid -lexpat -liconv -lcharset -lfribidi -lfreetype -lpng16 -lm -lz -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/lib -liconv -lcharset -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libtheora/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libogg/lib -ltheora -logg -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvorbis/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libogg/lib -lvorbis -lm -logg -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvpx/lib -lvpx -lm -L/files/android-sdk/ndk-bundle/sources/android/cpufeatures -lcpufeatures -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libwebp/lib -lwebp -lwebpdecoder -lwebpdemux -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libxml2/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libiconv/lib -lxml2 -lz -lm -liconv -lcharset -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opencore-amr/lib -lopencore-amrnb -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opencore-amr/lib -lopencore-amrwb -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/shine/lib -lm -lshine -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/speex/lib -lspeex -lm -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/wavpack/lib -lwavpack -lm -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/kvazaar/lib -lkvazaar -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/x264/lib -lx264 -lm -ldl -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/xvidcore/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/x265/lib -lx265 -lm -lgcc -ldl -lgcc -ldl -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libvidstab/lib -lvidstab -lm -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libilbc/lib -lilbc -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/opus/lib -lopus -lm -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/snappy/lib -lz -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/soxr/lib -lsoxr -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libaom/lib -laom -lm -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/chromaprint/lib -lchromaprint -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/twolame/lib -ltwolame -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/sdl/lib -lSDL2 -Wl,--no-undefined -lm -ldl -lGLESv1_CM -lGLESv2 -llog -landroid -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/tesseract/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/leptonica/lib -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/lib -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/jpeg/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/tiff/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libwebp/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/jpeg/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/giflib/lib -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libwebp/lib -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/tiff/lib -ltesseract -llept -lz -lpng16 -lm -lz -ljpeg -lgif -ltiff -ljpeg -lz -lm -lwebp -lwebpdecoder -lwebpdemux -ljpeg -lpng16 -lm -lz -lgif -lz -lwebp -lwebpdecoder -lwebpdemux -ltiff -ljpeg -lz -lm -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/giflib/lib -lgif -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libogg/lib -logg -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libpng/lib -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -lpng16 -lm -lz -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/libuuid/lib -luuid -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/nettle/lib -lnettle -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/nettle/lib -lhogweed -lgmp -lnettle -L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/expat/lib -lexpat -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib -lz -L/files/android-sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib' --enable-version3 --arch=armv7-a --cpu=armv7-a --target-os=android --disable-neon --enable-asm --enable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libx264 --enable-gpl --enable-libxvid --enable-gpl --enable-libx265 --enable-gpl --enable-libvidstab --enable-gpl --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-chromaprint --enable-libtwolame --enable-sdl2 --enable-libtesseract --enable-zlib --enable-mediacodec

Environment

  • React Native

[IOS] Podspecs always depend on master

Cocoapods podspec files use the following line as source line.

s.source            = { :git => 'https://github.com/tanersener/react-native-ffmpeg.git' }

Unfortunately this definition causes to all react-native-ffmpeg releases to depend on the latest version committed on master. Which, can break your build when an API change in committed to master.

Source files have to be frozen for releases, so you can safely build/test your application.

react-native run-android failed

Hello. This package looks very promising.

Unfortunately I ran into a problem right from the get-go!

Order of operations:

npm i react-native-ffmpeg

react-native link react-native-ffmpeg

react-native run-android

This is the error message:

Building and installing the app on the device (cd android && ./gradlew installDebug)...

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/alexandru.voica/Projects/Kidgarten/app/node_modules/react-native-ffmpeg/android/build.gradle' line: 6

* What went wrong:
A problem occurred evaluating project ':react-native-ffmpeg'.
> Could not find method google() for arguments [] on repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.

Submit Your External Library Support Requests Here

ffmpeg supports many external libraries but react-native-ffmpeg does not support them all. Only libraries included in react-native-ffmpeg packages are supported.

Please submit your requests for new external libraries here. So we can consider adding support for them before publishing a new release.

iOS Trouble with Pod install

Hi !

I am currently trying to install the package, following the steps provided in the Installation section.
However, I get this error while running pod install

[!] CocoaPods could not find compatible versions for pod "mobile-ffmpeg-https":
  In Podfile:
    react-native-ffmpeg (from `../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg.podspec`) was resolved to 0.3.0, which depends on
      mobile-ffmpeg-https (= 4.2.LTS)

Specs satisfying the `mobile-ffmpeg-https (= 4.2.LTS)` dependency were found, but they required a higher minimum deployment target.

I did not run 'react-native link' and also tried removing the folders and re-installing npm-packages and pods. I also tried manually linking the library but with no luck.

Thanks in advance!

My Podfile:

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'scs_app' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for scs_app

  rn_path = '../node_modules/react-native'
  pod 'yoga', path: "#{rn_path}/ReactCommon/yoga/yoga.podspec"
  pod 'React', path: rn_path, subspecs: [
    'Core',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket'
  ]

  pod 'Firebase/Core'
  pod 'Firebase/Messaging'
  pod 'Firebase/Performance'
  pod 'Fabric', '~> 1.7.6'
  pod 'Crashlytics', '~> 3.10.1'

  pod 'RNImageCropPicker', :path =>  '../node_modules/react-native-image-crop-picker'

  pod 'react-native-version-number', :path => '../node_modules/react-native-version-number'

  pod 'react-native-camera', :path => '../node_modules/react-native-camera'

  pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'

  pod 'ReactNativeExceptionHandler', :podspec => '../node_modules/react-native-exception-handler/ios/ReactNativeExceptionHandler.podspec'

  pod 'react-native-ffmpeg', :podspec => '../node_modules/react-native-ffmpeg/ios/react-native-ffmpeg.podspec'

  pod 'react-native-video', :path => '../node_modules/react-native-video/react-native-video.podspec'

  pod 'react-native-image-resizer', :path => '../node_modules/react-native-image-resizer'
  
  pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'

  target 'scs_appTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "React"
      target.remove_from_project
    end
  end
end

/ReactNativeFFmpegTest.app/colosseum.jpg: No such file or directory

I got the ReactNativeFFmpegTest app built and installed on my iphone device, it works when I use -version command, but when I switched to VIDEO tab and tap on CREATE button, it showed a message saying:

/var/containers/Bundle/Application/DF534C28-4412-4F59-AB33-9B486C4DAB86/ReactNativeFFmpegTest.app/colosseum.jpg: No such file or directory.

also in my console log, I saw the jpg files saved:
Saved resource colosseum.jpg to /var/containers/Bundle/Application/DF534C28-4412-4F59-AB33-9B486C4DAB86/ReactNativeFFmpegTest.app/colosseum.jpg
Main.js:285 Saved resource pyramid.jpg to /var/containers/Bundle/Application/DF534C28-4412-4F59-AB33-9B486C4DAB86/ReactNativeFFmpegTest.app/pyramid.jpg
Main.js:288 Saved resource tajmahal.jpg to /var/containers/Bundle/Application/DF534C28-4412-4F59-AB33-9B486C4DAB86/ReactNativeFFmpegTest.app/tajmahal.jpg

react-native info

info
React Native Environment Info:
System:
OS: macOS High Sierra 10.13.6
CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
Memory: 33.05 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 11.4.0 - /usr/local/bin/node
yarn install v0.15.1
success Already up-to-date.
Done in 0.19s. - /usr/local/bin/yarn
npm: 6.4.1 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
Android SDK:
API Levels: 23, 25, 26, 27, 28
Build Tools: 27.0.3, 28.0.2
System Images: android-22 | Google APIs Intel x86 Atom, android-27 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.1 AI-173.4907809
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmPackages:
react: 16.8 => 16.8.6
react-native: ^0.59 => 0.59.3
npmGlobalPackages:
react-native-cli: 2.0.1
react-native-cn-richtext-editor: 1.0.33
react-native-git-upgrade: 0.2.7

[ios] ffmpeg conflicting with opencv

Description
I'm trying to use react-native-ffmpeg on ios, works well on android. I use opencv for some image processing, code written in C++, soon as I include react-native-ffmpeg in the project it renders the imread function of opencv useless. Just get empty images width and height are zero.

I have tried to use all three different setups stated in react-native-ffmpeg-test but setup nr.2 does give me some error so that did not work.
This is the error:
[!] The 'Pods-App' target has transitive dependencies that include static binaries: (/Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/mobileffmpeg.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libavcodec.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libavdevice.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libavfilter.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libavformat.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libavutil.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libswresample.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libswscale.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/expat.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/fontconfig.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/freetype.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/fribidi.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/giflib.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/gmp.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/gnutls.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/jpeg.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/kvazaar.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/lame.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libaom.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libass.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libcharset.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libhogweed.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libiconv.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libilbc.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libnettle.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libogg.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libopencore-amrnb.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libopencore-amrwb.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libpng.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libsndfile.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libtheora.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libtheoradec.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libtheoraenc.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libuuid.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libvorbis.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libvorbisenc.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libvorbisfile.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libvpx.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libwebp.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libwebpdecoder.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libwebpdemux.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libxml2.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/opus.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/shine.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/snappy.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/soxr.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/speex.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/tiff.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/twolame.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/wavpack.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/libvidstab.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/x264.framework, /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/x265.framework, and /Users/ingvi/repositories/App/ios/Pods/mobile-ffmpeg-full-gpl/xvidcore.framework)

Not sure if I got that working that it would do the trick.

Any idea why react-native-ffmpeg is conflicting with my opencv. I'm using opencv 3.4.2 ios opencv2.framework. OpenCV works well if react-native-ffmpeg is not included.

UI freezes while executing ffmpeg command

Description
UI freezes or totally blocks while executing FFmpeg command using RNFFmpeg.execute() on Android and iOS

Expected behavior
Calling RNFFmpeg.execute() must not block UI thread

Current behavior
Calling RNFFmpeg.execute() blocks UI thread

Screenshots
https://github.com/oleh-mryhlod/test-rn-ffmpeg-async/raw/master/rn-ffmpeg-test.gif

Environment
"react": "16.6.0-alpha.8af6728",
"react-native": "0.57.4",
"react-native-ffmpeg": "^0.2.0"

Reproducing Demo
https://github.com/oleh-mryhlod/test-rn-ffmpeg-async

Other
Maybe its possinble to just run ffmpeg command in another thread
e.g in java:

new Thread(new Runnable() {
      @Override
      public void run() {
        // ... existing code ...
      }
}).start();

[Android] Unable to record Screen in android using ffmpeg

I am getting the following error when trying to record android screen, it works fine when the command is executed from the shell.

Command: -f fbdev -i /dev/graphics/fb0 -f flv <rtmp_server_addr>

Could not open framebuffer device '/dev/graphics/fb0': Permission denied

Pod can't find files

I am getting the error

error: /<path?/node_modules/react-native-ffmpeg/ios/Pods/Target Support Files/Pods-ReactNativeFFmpeg/Pods-ReactNativeFFmpeg.debug.xcconfig: unable to open file (in target "ReactNativeFFmpeg" in project "ReactNativeFFmpeg") (in target 'ReactNativeFFmpeg')

The file is actually not there and also using all the described tips, etc - are not helping.

Any other ideas?

Latest react version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.