cropsly / ffmpeg-android-java

Android java library for FFmpeg binary compiled using https://github.com/writingminds/ffmpeg-android
http://writingminds.github.io/ffmpeg-android-java
GNU General Public License v3.0
3.32k stars 830 forks source link

Support for 64-bit ?? #337

Open ashirmehmood1996 opened 5 years ago

ashirmehmood1996 commented 5 years ago

is any one there from the original developers of this library to provide the support for 64 bit architecture??? at least guide us to a genuine solution...

ArjunBhilare commented 5 years ago

Capture

Between the previous and this update there is 4 shown under Native platform. Does that have something to do with this warning?

ashirmehmood1996 commented 5 years ago

stackoverflow may be you doing something like him

ArjunBhilare commented 5 years ago

manifest

This is the uses feature in my app.. I did not change anything in the manifest from the previous update...

ArjunBhilare commented 5 years ago

It seems like some configuration changed from you previous playstore build, so it will re-install the app on existing users instead of updating the existing app.

Ohhh but it also says app being available for new installs on fewer types of devices.

ashirmehmood1996 commented 5 years ago

add required: false if it is not necessary for this app to work

ArjunBhilare commented 5 years ago

Yes I'll do that

ArjunBhilare commented 5 years ago

qq

qq1

@ashirmehmood1996 @yadavkohi I think the warning is because of native platform value. In the latest one (1st image) it says it supports 5 native platforms and in the second one (the previous update) it shows all native platforms. So that's why it might be showing that warning. What are the maximum number of native platforms?

shah-Foram commented 5 years ago

Thanks to yadavkohi https://github.com/yadavkohi/FFmpegAndroid.git

  1. he has developed 64 bit lbinaries for this project all you need is to put the 64 bit assets in asset folders from the above link
  2. you need some code changes that are explained by yadavkohi in this comment link or you can simple get them from the above repository link.
  3. and dont forget to metion abi filters in app level gradle https://developer.android.com/distribute/best-practices/develop/64-bit#building_with_android_studio_or_gradle

Thank you so much @yadavkohi it's working like charm. you save my day.

equationl commented 5 years ago

Hey guys, I just found a project from this which support 64bit. But I think the size too big to me, so I just edited a project like this, Use download instead of packaging all binaries. Now it just 20kb.

4leyam commented 4 years ago

thank you guys, @yadavkohi for your work, @ashirmehmood1996 for your complete helpful comments and orientations, @ArjunBhilare for your screenshots. your help was very precious....

surabhiverma1 commented 4 years ago

@ashirmehmood1996 @yadavkohi Now the error is gone. But I'm getting this warning

aaa

are these changes running for android 10?

robmr88 commented 4 years ago

2. link

Hi, do you know where the java files are that need to be modified? I can't find them

robmr88 commented 4 years ago

Hi everyone, I'm also trying to make a project using this library to be 63 bit compatible. I added the ffmpeg.so in the assets and after I build the apk and analyze it I have the assets folder that contains x86, x86_64 , armeabi-v7a and arm64-v8a. So that's ok. BUT the lib folder has this file called libARM_ARCH.so that is only contained in armeabi-v7a and x86. It is not present in the 64 bit folders. Has anyone had this issue? @ashirmehmood1996 @yadavkohi

pratikbutani commented 4 years ago

I got a solution and My app is published successfully without warning. I have also tested in Firebase Testlab with 5 different devices.

The build.gradle may help you:

apply plugin: 'com.android.application'
// Apply the Firebase Crashlytics plugin.
apply plugin: 'com.google.firebase.crashlytics'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId 'com.example.demo'
        minSdkVersion 21
        targetSdkVersion 28
        multiDexEnabled true
        versionCode 3
        versionName '1.2'
        resConfigs "en"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary true

        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
        ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
    }
    dataBinding {
        enabled true
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            //Other parameters
            debuggable false
            jniDebuggable false
            renderscriptDebuggable false
            //signingConfig playStoreConfig //Add your own signing config
            pseudoLocalesEnabled false
            zipAlignEnabled true
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }
       aaptOptions {
            ignoreAssetsPattern "!*ffprobe"
            ignoreAssetsPattern "!*ffmpeg"
            ignoreAssetsPattern "!arm"
            ignoreAssetsPattern "!x86"
            additionalParameters "--no-version-vectors"
            cruncherEnabled = false
        }
    compileOptions {
             sourceCompatibility JavaVersion.VERSION_1_8
             targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0'

    implementation 'com.google.firebase:firebase-firestore:21.4.3'
    implementation 'com.firebaseui:firebase-ui-firestore:6.0.2'
    implementation 'com.google.firebase:firebase-analytics:17.4.0'
    implementation 'com.google.firebase:firebase-messaging:20.1.6'
    implementation 'com.google.firebase:firebase-config:19.1.4'
    implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
    implementation 'com.google.android.gms:play-services-ads:19.1.0'
    implementation 'com.google.firebase:firebase-auth:19.3.1'
    implementation 'com.google.android.gms:play-services-auth:18.0.0'

    implementation 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

    annotationProcessor 'androidx.annotation:annotation:1.1.0'

    implementation 'io.github.inflationx:calligraphy3:3.1.1'
    implementation 'io.github.inflationx:viewpump:2.0.3'

    testImplementation 'junit:junit:4.13'
    implementation 'androidx.multidex:multidex:2.0.1'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    implementation 'com.squareup.retrofit2:retrofit:2.8.1'
    implementation 'com.squareup.retrofit2:converter-gson:2.8.1'

    implementation 'com.danikula:videocache:2.7.1'
    implementation 'com.github.HamidrezaAmz:MagicalExoPlayer:1.0.14'

    implementation 'com.github.AppIntro:AppIntro:5.1.0'
    implementation 'com.writingminds:FFmpegAndroid:0.3.2'
}

apply plugin: 'com.google.gms.google-services'

I made three changes in that:

  1. Added lines in default config:
                renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
        ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
  1. added packagingOptions
  2. added aaptOptions

Try. May you will get success.

robmr88 commented 4 years ago

I got a solution and My app is published successfully without warning. I have also tested in Firebase Testlab with 5 different devices.

The build.gradle may help you:

apply plugin: 'com.android.application'
// Apply the Firebase Crashlytics plugin.
apply plugin: 'com.google.firebase.crashlytics'

android {
  compileSdkVersion 29
  buildToolsVersion "29.0.2"
  defaultConfig {
      applicationId 'com.example.demo'
      minSdkVersion 21
      targetSdkVersion 28
      multiDexEnabled true
      versionCode 3
      versionName '1.2'
      resConfigs "en"
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
      vectorDrawables.useSupportLibrary true

      renderscriptTargetApi 19
      renderscriptSupportModeEnabled true
      ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
  }
  dataBinding {
      enabled true
  }
  buildTypes {
      release {
          minifyEnabled true
          shrinkResources true
          proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

          //Other parameters
          debuggable false
          jniDebuggable false
          renderscriptDebuggable false
          //signingConfig playStoreConfig //Add your own signing config
          pseudoLocalesEnabled false
          zipAlignEnabled true
      }
  }
  packagingOptions {
      exclude 'META-INF/DEPENDENCIES'
      exclude 'META-INF/LICENSE'
      exclude 'META-INF/LICENSE.txt'
      exclude 'META-INF/license.txt'
      exclude 'META-INF/NOTICE'
      exclude 'META-INF/NOTICE.txt'
      exclude 'META-INF/notice.txt'
      exclude 'META-INF/ASL2.0'
  }
       aaptOptions {
            ignoreAssetsPattern "!*ffprobe"
            ignoreAssetsPattern "!*ffmpeg"
            ignoreAssetsPattern "!arm"
            ignoreAssetsPattern "!x86"
            additionalParameters "--no-version-vectors"
            cruncherEnabled = false
        }
  compileOptions {
             sourceCompatibility JavaVersion.VERSION_1_8
             targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  implementation 'androidx.appcompat:appcompat:1.1.0'
  implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
  implementation 'com.google.android.material:material:1.1.0'

  implementation 'com.google.firebase:firebase-firestore:21.4.3'
  implementation 'com.firebaseui:firebase-ui-firestore:6.0.2'
  implementation 'com.google.firebase:firebase-analytics:17.4.0'
  implementation 'com.google.firebase:firebase-messaging:20.1.6'
  implementation 'com.google.firebase:firebase-config:19.1.4'
    implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
    implementation 'com.google.android.gms:play-services-ads:19.1.0'
    implementation 'com.google.firebase:firebase-auth:19.3.1'
    implementation 'com.google.android.gms:play-services-auth:18.0.0'

  implementation 'com.github.bumptech.glide:glide:4.11.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

  annotationProcessor 'androidx.annotation:annotation:1.1.0'

  implementation 'io.github.inflationx:calligraphy3:3.1.1'
  implementation 'io.github.inflationx:viewpump:2.0.3'

  testImplementation 'junit:junit:4.13'
  implementation 'androidx.multidex:multidex:2.0.1'
  androidTestImplementation 'androidx.test:runner:1.2.0'
  androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    implementation 'com.squareup.retrofit2:retrofit:2.8.1'
    implementation 'com.squareup.retrofit2:converter-gson:2.8.1'

  implementation 'com.danikula:videocache:2.7.1'
  implementation 'com.github.HamidrezaAmz:MagicalExoPlayer:1.0.14'

  implementation 'com.github.AppIntro:AppIntro:5.1.0'
  implementation 'com.writingminds:FFmpegAndroid:0.3.2'
}

apply plugin: 'com.google.gms.google-services'

I made three changes in that:

  1. Added lines in default config:
                renderscriptTargetApi 19
      renderscriptSupportModeEnabled true
      ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
  1. added packagingOptions
  2. added aaptOptions

Try. May you will get success.

Hi, thank you for your help. But I ended up replacing this library with another one that is more up to date

pratikbutani commented 4 years ago

I got a solution and My app is published successfully without warning. I have also tested in Firebase Testlab with 5 different devices. The build.gradle may help you:

apply plugin: 'com.android.application'
// Apply the Firebase Crashlytics plugin.
apply plugin: 'com.google.firebase.crashlytics'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId 'com.example.demo'
        minSdkVersion 21
        targetSdkVersion 28
        multiDexEnabled true
        versionCode 3
        versionName '1.2'
        resConfigs "en"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary true

        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
        ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
    }
    dataBinding {
        enabled true
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            //Other parameters
            debuggable false
            jniDebuggable false
            renderscriptDebuggable false
            //signingConfig playStoreConfig //Add your own signing config
            pseudoLocalesEnabled false
            zipAlignEnabled true
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }
       aaptOptions {
            ignoreAssetsPattern "!*ffprobe"
            ignoreAssetsPattern "!*ffmpeg"
            ignoreAssetsPattern "!arm"
            ignoreAssetsPattern "!x86"
            additionalParameters "--no-version-vectors"
            cruncherEnabled = false
        }
    compileOptions {
             sourceCompatibility JavaVersion.VERSION_1_8
             targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0'

    implementation 'com.google.firebase:firebase-firestore:21.4.3'
    implementation 'com.firebaseui:firebase-ui-firestore:6.0.2'
    implementation 'com.google.firebase:firebase-analytics:17.4.0'
    implementation 'com.google.firebase:firebase-messaging:20.1.6'
    implementation 'com.google.firebase:firebase-config:19.1.4'
    implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
    implementation 'com.google.android.gms:play-services-ads:19.1.0'
    implementation 'com.google.firebase:firebase-auth:19.3.1'
    implementation 'com.google.android.gms:play-services-auth:18.0.0'

    implementation 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

    annotationProcessor 'androidx.annotation:annotation:1.1.0'

    implementation 'io.github.inflationx:calligraphy3:3.1.1'
    implementation 'io.github.inflationx:viewpump:2.0.3'

    testImplementation 'junit:junit:4.13'
    implementation 'androidx.multidex:multidex:2.0.1'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    implementation 'com.squareup.retrofit2:retrofit:2.8.1'
    implementation 'com.squareup.retrofit2:converter-gson:2.8.1'

    implementation 'com.danikula:videocache:2.7.1'
    implementation 'com.github.HamidrezaAmz:MagicalExoPlayer:1.0.14'

    implementation 'com.github.AppIntro:AppIntro:5.1.0'
    implementation 'com.writingminds:FFmpegAndroid:0.3.2'
}

apply plugin: 'com.google.gms.google-services'

I made three changes in that:

  1. Added lines in default config:
                renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
        ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
  1. added packagingOptions
  2. added aaptOptions

Try. May you will get success.

Hi, thank you for your help. But I ended up replacing this library with another one that is more up to date

Which library have you used?

robmr88 commented 4 years ago

https://github.com/tanersener/mobile-ffmpeg @pratikbutani

Apsalogics commented 3 years ago

I Solve this 64 bit Uploading Issue from below answer https://github.com/WritingMinds/ffmpeg-android-java/issues/337#issuecomment-625092159