Mp4Composer-android

Additional

Language
Java
Version
v0.1.9 (Dec 14, 2018)
Created
Jan 15, 2018
Updated
Dec 14, 2018
Owner
Masayuki Suda (MasayukiSuda)
Contributors
Sosuke Masui (esmasui)
Masayuki Suda (MasayukiSuda)
andressantiago
3
Activity
Badge
Generate
Download
Source code
APK file

Commercial

Mp4Composer-android

This library generate an Mp4 movie using Android MediaCodec API and apply filter, scale, and rotate Mp4. Idea from: android-transcoder

Sample VideoNo filter

GlGlayScaleFilter apply


GlMonochromeFilter apply


GlWatermarkFilter apply


Gradle

Step 1. Add the JitPack repository to your build file

allprojects {
 repositories {
  ...
  maven { url 'https://jitpack.io' }
 }
}

Step 2. Add the dependency

dependencies {
        implementation 'com.github.MasayukiSuda:Mp4Composer-android:v0.1.9'
}

Usage

    new Mp4Composer(srcMp4Path, destMp4Path)
            .rotation(Rotation.ROTATION_90)
            .size((width) 540, (height) 960)
            .fillMode(FillMode.PRESERVE_ASPECT_FIT)
            .filter(new GlSepiaFilter())
            .listener(new Mp4Composer.Listener() {
                @Override
                public void onProgress(double progress) {
                    Log.d(TAG, "onProgress = " + progress);
                }

                @Override
                public void onCompleted() {
                    Log.d(TAG, "onCompleted()");
                    runOnUiThread(() -> {
                        Toast.makeText(context, "codec complete path =" + destPath, Toast.LENGTH_SHORT).show();
                    });
                }

                @Override
                public void onCanceled() {
                    Log.d(TAG, "onCanceled");
                }

                @Override
                public void onFailed(Exception exception) {
                    Log.e(TAG, "onFailed()", exception);
                }
            })
            .start();

Builder Method

method description
rotation Rotation of the movie, default Rotation.NORMAL
size Resolution of the movie, default same resolution of src movie
fillMode Options for scaling the bounds of an movie. PRESERVE_ASPECT_FIT is fit center. PRESERVE_ASPECT_CROP is center crop , default PRESERVE_ASPECT_FIT
filter This filter is OpenGL Shaders to apply effects on video. Custom filters can be created by inheriting GlFilter.java. , default GlFilter(No filter). Filters is here.
videoBitrate Set Video Bitrate, default video bitrate is 0.25 * 30 * outputWidth * outputHeight
mute Mute audio track on exported video. Default mute = false.
flipVertical Flip Vertical on exported video. Default flipVertical = false.
flipHorizontal Flip Horizontal on exported video. Default flipHorizontal = false.

References And Special Thanks to

Sample Dependencies

License

MIT License