a914-gowtham / android-video-trimmer

Helps to trim local videos with compress option on Android applications using Exoplayer 2 and FFmpeg.
Other
362 stars 115 forks source link

After adding the library, my .apk file increased by about 70mb. #16

Closed pranishres closed 10 months ago

a914-gowtham commented 3 years ago

Add these snippets build.gradle(app level) inside the android tag.And use Android App bundle It will make huge difference in size

sourceSets.main {
        assets.srcDirs = ['assets']
        jni.srcDirs = [] //disable automatic ndk-build
        jniLibs.srcDirs = ['libs']
    }

    sourceSets {
        main {
            assets.srcDirs = ['src/main/assets', 'src/main/assets/']
            res.srcDirs = ['src/main/res', 'src/main/res/drawable']
        }
    }
pranishres commented 3 years ago

Add these snippets build.gradle(app level) inside the android tag

sourceSets.main { assets.srcDirs = ['assets'] jni.srcDirs = [] //disable automatic ndk-build jniLibs.srcDirs = ['libs'] }

sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] res.srcDirs = ['src/main/res', 'src/main/res/drawable'] } }

And use Android bundle.It will make huge difference in size

I just can't copy/paste these lines. Gives me this error

No signature of method: java.util.ArrayList.call() is applicable for argument types: (ArrayList) values: [[src/main/res, src/main/res/drawable]]
Possible solutions: tail(), tail(), wait(), last(), tails(), max()
a914-gowtham commented 3 years ago

Check this code

pranishres commented 3 years ago

Check this code

Thank you. I used it but still, my .aab release file is 50mb. Will the size decrease if I don't use compression and remove those codes? I just want to crop the video for 15 secs.

a914-gowtham commented 3 years ago

Don't consider the app bundle size. It doesn't decide the app size. If you want find the Apk size,you could upload your app bundle in Internal testing in Play console and check the size for every device or else Use can also use BundleTool for get Specific Apk for your device

pranishres commented 3 years ago

Don't consider the app bundle size. It doesn't decide the app size. If you want find the Apk size,you could upload your app bundle in Internal testing in Play console and check the size for every device or else Use can also use BundleTool for get Specific Apk for your device

So I just want to know is there any way I can reduce the size of the library? Because yours is the best one I found.

a914-gowtham commented 3 years ago

Sorry..there is no way besides Using this

pranishres commented 3 years ago

Sorry..there is no way besides Using this

Using this still my apk size increased from 20Mb to 50 Mb. So what can I do. Its not feasible to accept more than doubled the apk size for a video cropper.

a914-gowtham commented 3 years ago

It would be less than 20Mb,when you use app bundle and that snippet.I don't know what were wrong.I will check and get back to you asap

pranishres commented 3 years ago

It would be less than 20Mb,when you use app bundle and that snippet.I don't know what were wrong.I will check and get back to you asap

Thank you

pranishres commented 3 years ago

Please let me know if there are any updates from your side on this. After adding the library, my .aab increased from 17MB to 50MB.

a914-gowtham commented 3 years ago

Have you tried to publish your app bundle on Internal track testing and did you see the app size from App bundle explorer

pranishres commented 3 years ago

Have you tried to publish your app bundle on Internal track testing and did you see the app size from App bundle explorer

I couldn't even upload the .aab to the play store after including the library.

a914-gowtham commented 3 years ago

Really sorry for the inconvenience.I'm going to test an app to publish

pranishres commented 3 years ago

Really sorry for the inconvenience.I'm going to test an app to publish

thank you for your active support

pranishres commented 3 years ago

Really sorry for the inconvenience.I'm going to test an app to publish

I just downgraded my version from 1.4.0 to 1.3.0 which helped me reduce the application size by 20mb. But still its a huge app size.

a914-gowtham commented 3 years ago

Yeah I used EpMedia library for ffmpeg in 1.3.0.That's is small is size however,It doesn't work in few devices.that's why i moved to mobile-ffmpeg

a914-gowtham commented 3 years ago

Check this Demo app .You might get a warning about native crash report while trying to upload the app.Just ignore that

pranishres commented 3 years ago

Check this Demo app .You might get a warning about native crash report while trying to upload the app.Just ignore that

Thank you so much for your support. My release .apk and aab were about 87 MB and 55 MB respectively. But while downloading from playstore, it was just 22 MB.

braver-tool commented 3 years ago

I added the below lines in my app-level build. gradle file

defaultConfig { ........ ndk { abiFilters "arm64-v8a","x86_64" }

which means, app is not containing 32bit libraries, Is that correct or not? to reduce apk file size. Please give your reply..! Thanks in advance ...);-

a914-gowtham commented 3 years ago

yes , that code is correct. but, mobile-ffmpeg is being used as a maven dependency so, it might not work. however, this library has an issue with release builds. so, you better refer this repo i have used mobile-ffmpeg as aar dependency for the release build issue workaround, and you can use abiFilters while using that aar

braver-tool commented 3 years ago

Thanks for your response..! I added aar file as you said, and also i removed abiFilters in build.gradle file. Because i tested with above abiFilters, Some devices not supporting "arm64-v8a,x86_64" archs. They only supports "armeabi-v7a,x86,armeabi" archs. So facing apk file size problem. My release build increased 30 MB than before. Any better solution to reduce apk file size?

apk_analyzer

a914-gowtham commented 3 years ago

just use android app bundle to reduce the size

DoozyDoz commented 1 year ago

Faced the issue before, the only working solution is to compile different builds of FFmpeg for specific target functionality and codecs. for a user that only uses trimming part of the library the size should be small, for example for a user that simply extracts audio from video the library size should be south of 3MBs

a914-gowtham commented 10 months ago

yes @DoozyDoz , that is a great idea. i need to get familiar with ffmpeg libraries. i will try this sometime.

if you can afford, it is good to move the video processing to backend. i believe whatsapp, telegram does the same.

imgsrc: yt/neetcode Screenshot from 2023-08-16 11-05-09