Giter Site home page Giter Site logo

leoalassia / android-video-trimmer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from a914-gowtham/android-video-trimmer

0.0 0.0 0.0 94.26 MB

Helps to trim local videos with compress option on Android applications using Exoplayer 2 and FFmpeg.it supports on Android 10

License: MIT License

Java 100.00%

android-video-trimmer's Introduction

MIT licensed

Android-video-trimmer

Helps to trim local videos with many customizations on Android applications using exoplayer2 and FFmpeg.

How to use

For a working implementation, please have a look at the Sample Project

  1. Include the library as local library project.
  • Add the dependency to your app build.gradle file
dependencies {
   implementation 'com.github.a914-gowtham:Android-video-trimmer:1.4.0'
}
  • Add to project's root build.gradle file:
allprojects {
	repositories {
		maven { url 'https://jitpack.io' }
	}
}
  1. Add the code for opening Trim Activity.
TrimVideo.activity(String.valueOf(videoUri))
//        .setCompressOption(new CompressOption()) //empty constructor for default compress option
          .setDestination("/storage/emulated/0/DCIM/TESTFOLDER")  //default output path /storage/emulated/0/DOWNLOADS
          .start(this);
  1. Override onActivityResult method in your activity to get trim result
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == TrimVideo.VIDEO_TRIMMER_REQ_CODE && data != null) {
            Uri uri = Uri.parse(TrimVideo.getTrimmedVideoPath(data));
            Log.d(TAG,"Trimmed path:: "+uri);
        }
}

Customization

Video Compress:

.setCompressOption(new CompressOption(frameRate,bitRate,width,height))  //pass empty constructor for default compressoption
  • FrameRate Recommeded frameRate is 30
  • BitRate Bitrate Can be between 150k to 1000k or 1M to 10M.Lower bitrate can reduce the quality and size of the video. Use 1M for better quality output
  • Width Width of the video output video.
  • Height Height of the video output video.Use TrimmerUtils.getVideoWidthHeight(this,Uri.parse(videoUri)); method to get the width and height of the video
  1. No need to use accurateCut while using video compressOption
  2. Video compressing process will take more time
.setCompressOption(new CompressOption(30,"1M",460,320))
//You could divide the width and height by 2. when try to compress a large resolution videos ex:Taken from camera
/*int[] wAndh=TrimmerUtils.getVideoWidthHeight(this,Uri.parse(videoUri));
    int width=wAndh[0];
    int height=wAndh[1];
    if(wAndh[0]>800){
      width/=2;
      width/=2;
     .setCompressOption(new CompressOption(30,"1M",width,height))   
     }else
     .setCompressOption(new CompressOption(30,"400k",width,height))   
   */

Video Trim Accuracy:

.setAccurateCut(true) //default value is false 
  1. AccurateCut false makes video trimming faster and less accuracy(approx. 1-3secs)
  2. AccurateCut true makes video trimming slower and high accuracy

Hide Player Seekbar:

.setHideSeekBar(true) //default value is false 

Custom TrimTypes

TrimType Default:

TrimVideo.activity(videoUri)
          .start(this);

TrimType Fixed Duration:

TrimVideo.activity(videoUri)
          .setTrimType(TrimType.FIXED_DURATION)
          .setFixedDuration(30) //seconds
          .start(this);

TrimType Minimum Duration:

TrimVideo.activity(videoUri)
          .setTrimType(TrimType.MIN_DURATION)
          .setMinDuration(30) //seconds
          .start(this);

TrimType Min-Max Duration:

TrimVideo.activity(videoUri)
          .setTrimType(TrimType.MIN_MAX_DURATION)
          .setMinToMax(10, 30)  //seconds
          .start(this);

Proguard Rules

-dontwarn com.gowtham.library**
-keep class com.gowtham.library** { *; }
-keep interface com.gowtham.library** { *; }

Compatibility

  • Library - Android Kitkat 4.4+ (API 19)
  • Sample - Android Kitkat 4.4+ (API 19)

ChangeLog

Version 1.4.0

  • FFmpegMedia lib changed into Mobile-ffmpeg

Version 1.0.9

  • Library size reduced
  • Library size : 12mb(release build)
  • Constants class name changed into TrimmerConstants
  • Added TrimmerUtils class which has getVideoDuration() method and some more VideoUtils methods

Version 1.0.5

  • Fixed issue on Android Q.
  • Library size : 26mb(debug build).
  • Small UI updates.
  • Couple new things to configure.

Version 1.0.0

  • Initial Build

Thanks to

TanerSener

Support

Show your support by giving a star to this repository.that's how i know the usage of this library so i can try to make improvements

Collaboration

There are many ways of improving and adding more features, so feel free to collaborate with ideas, issues and/or pull requests.

android-video-trimmer's People

Contributors

a914-gowtham avatar themithuroy avatar

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.