Skip to content

anilbeesetti/nextlib

Repository files navigation

NextLib

Build nextlib

NextLib is a library for adding ffmpeg codecs to Media3.

Currently supported decoders

  • Audio: Vorbis, Opus, Flac, Alac, pcm_mulaw, pcm_alaw, MP3, Amrnb, Amrwb, AAC, AC3, EAC3, dca, mlp, truehd
  • Video: H.264, HEVC, VP8, VP9

Setup

NextLib is available at JitPack's Maven repo.

First, you have to add the jitpack's maven repo to your build.gradle

Kotlin DSL:

repositories {
    maven { url = uri("https://jitpack.io") }
}

Groovy DSL:

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

Now, you have to add the dependency to nextlib in your build.gradle

Kotlin DSL:

dependencies {
    implementation("com.github.anilbeesetti.nextlib:nextlib-media3ext:INSERT_VERSION_HERE") // To add media3 software decoders and extensions
    implementation("com.github.anilbeesetti.nextlib:nextlib-mediainfo:INSERT_VERSION_HERE") // To get media info through ffmpeg
}

Groovy DSL:

dependencies {
    implementation "com.github.anilbeesetti.nextlib:nextlib-media3ext:INSERT_VERSION_HERE" // To add media3 software decoders and extensions
    implementation "com.github.anilbeesetti.nextlib:nextlib-mediainfo:INSERT_VERSION_HERE" // To get media info through ffmpeg
}

Usage

To use Ffmpeg decoders in your app, Add NextRenderersFactory (is one to one compatible with DefaultRenderersFactory) to ExoPlayer

val renderersFactory = NextRenderersFactory(applicationContext) 

ExoPlayer.Builder(applicationContext)
    .setRenderersFactory(renderersFactory)
    .build()