Home

Awesome

Build Status Release Issues

Project logo

Transcoder

Transcodes and compresses video files into the MP4 format, with audio support, using hardware-accelerated Android codecs available on the device. Works on API 21+.

// build.gradle.kts
dependencies {
    implementation("io.deepmedia.community:transcoder-android:0.11.2")
}

This project started as a fork of ypresto/android-transcoder. With respect to the source project, which misses most of the functionality listed above, we have also fixed a huge number of bugs and are much less conservative when choosing options that might not be supported. The source project will always throw - for example, accepting only 16:9, AVC Baseline Profile videos - we prefer to try and let the codec fail if it wants to.

Transcoder is trusted and supported by ShareChat, a social media app with over 100 million downloads.

Please check out the official website for setup instructions and documentation. You may also check the demo app (under /demo) for a complete example.

Transcoder.into(filePath)
    .addDataSource(context, uri) // or...
    .addDataSource(filePath) // or...
    .addDataSource(fileDescriptor) // or...
    .addDataSource(dataSource)
    .setListener(object : TranscoderListener {
         override fun onTranscodeProgress(progress: Double) = Unit
         override fun onTranscodeCompleted(successCode: Int) = Unit
         override fun onTranscodeCanceled() = Unit
         override fun onTranscodeFailed(exception: Throwable) = Unit
    }).transcode()