Skip to content

React Native video helper library, to compress and trim videos using AVFoundation in iOS and MediaCodec in Android

License

Notifications You must be signed in to change notification settings

oleh-mryhlod/react-native-video-helper

 
 

Repository files navigation

react-native-video-helper

Getting started

$ npm install react-native-video-helper --save

Supported versions

React-Native Version Video-Helper Supported Version
RN >= 0.60 >= 1.4.3

If you are using react-native before 0.60 version, you can link using:

Automatic installation

$ react-native link react-native-video-helper

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-video-helper and add RNVideoHelper.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNVideoHelper.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactnativevideohelper.RNVideoHelperPackage; to the imports at the top of the file
  • Add new RNVideoHelperPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-video-helper'
    project(':react-native-video-helper').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-video-helper/android')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-video-helper')
    

Usage

import RNVideoHelper from 'react-native-video-helper';

const sourceUri = 'assets-library://asset/asset.mov?id=0F3F0000-9518-4F32-B389-7117F4C2B069&ext=mov';

// compress
RNVideoHelper.compress(sourceUri, {
	startTime: 10, // optional, in seconds, defaults to 0
	endTime: 100, //  optional, in seconds, defaults to video duration
	quality: 'low', // default low, can be medium or high
	defaultOrientation: 0 // By default is 0, some devices not save this property in metadata. Can be between 0 - 360
}).progress(value => {
	console.warn('progress', value); // Int with progress value from 0 to 1
}).then(compressedUri => {
	console.warn('compressedUri', compressedUri); // String with path to temporary compressed video
});

// cancel compress
// Android: cancel video compression, removes progress listener
// iOS: removes progress listener
RNVideoHelper.cancelCompress();

About

React Native video helper library, to compress and trim videos using AVFoundation in iOS and MediaCodec in Android

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 81.1%
  • Java 12.7%
  • JavaScript 4.3%
  • Ruby 1.9%