FFmpeg-Android icon indicating copy to clipboard operation
FFmpeg-Android copied to clipboard

64bit support?

Open moster67 opened this issue 5 years ago • 106 comments

Hello and many thanks for your ffmpeg library for Android.

After reading about the new 64bit requirement for Android of native libraries, I noted that your library is not stored in Libs but in Assets. Instructions from Google says to verify for the presence of 64bit by looking at the Directory-names. If I unzip, it only contains Arm and x86 directories and does not give an indication if 64 libs is included.

See this: https://developer.android.com/distribute/best-practices/develop/64-bit

However, your readme seems to indicate support for 64bit when it says armv8 (and x86_64).

Can you confirm that your library is OK with Google's new requirements?

Thanks.

moster67 avatar Mar 14 '19 22:03 moster67

+1 for this question. That's a very interesting topic these days.

yagilofir avatar Mar 18 '19 08:03 yagilofir

Please confirm that this library supports 64 bit?

jitarun avatar Apr 04 '19 07:04 jitarun

There are currently no 64 bit libraries added. Will update back on this.

Brianvdb avatar May 01 '19 11:05 Brianvdb

Any changes ?

yarovoiag-cr avatar May 27 '19 05:05 yarovoiag-cr

Google play console must require 64bit support Please do asap to support this Library. currently 32bit is available , 64 bit folders not found

https://developer.android.com/distribute/best-practices/develop/64-bit#does_your_app_include_64-bit_libraries

Thanks

nikunjparadva avatar May 28 '19 06:05 nikunjparadva

Please suggest how to generate ffmpeg binaries for 64-bit. I followed https://github.com/WritingMinds/ffmpeg-android link to generate all architecture binaries but the last command in readme file ./android_build.sh fails with following error:

HOST_OS=linux HOST_EXE= HOST_ARCH=x86_64 HOST_TAG=linux-x86_64 HOST_NUM_CPUS=4 BUILD_NUM_CPUS=8 Auto-config: --arch=arm ERROR: Failed to create toolchain. ~/ffmpeg-android/x264 ~/ffmpeg-android Makefile:3: config.mak: No such file or directory ./configure platform: X86_64 byte order: little-endian system: LINUX cli: yes libx264: internal shared: no static: no asm: yes interlaced: yes avs: avxsynth lavf: yes ffms: no mp4: no gpl: yes thread: posix opencl: yes filters: resize crop select_every debug: no gprof: no strip: no PIC: no bit depth: 8 chroma format: all

You can run 'make' or 'make fprofiled' now. rm -f common/mc.o common/predict.o common/pixel.o common/macroblock.o common/frame.o common/dct.o common/cpu.o common/cabac.o common/common.o common/osdep.o common/rectangle.o common/set.o common/quant.o common/deblock.o common/vlc.o common/mvpred.o common/bitstream.o encoder/analyse.o encoder/me.o encoder/ratecontrol.o encoder/set.o encoder/macroblock.o encoder/cabac.o encoder/cavlc.o encoder/encoder.o encoder/lookahead.o common/threadpool.o common/x86/mc-c.o common/x86/predict-c.o common/opencl.o encoder/slicetype-cl.o common/x86/const-a.o common/x86/cabac-a.o common/x86/dct-a.o common/x86/deblock-a.o common/x86/mc-a.o common/x86/mc-a2.o common/x86/pixel-a.o common/x86/predict-a.o common/x86/quant-a.o common/x86/cpu-a.o common/x86/dct-64.o common/x86/bitstream-a.o common/x86/sad-a.o common/x86/trellis-64.o x264.o input/input.o input/timecode.o input/raw.o input/y4m.o output/raw.o output/matroska.o output/matroska_ebml.o output/flv.o output/flv_bytestream.o filters/filters.o filters/video/video.o filters/video/source.o filters/video/internal.o filters/video/resize.o filters/video/cache.o filters/video/fix_vfr_pts.o filters/video/select_every.o filters/video/crop.o filters/video/depth.o input/avs.o input/thread.o input/lavf.o *.a *.lib *.exp *.pdb x264 x264.exe .depend TAGS rm -f checkasm checkasm.exe tools/checkasm.o tools/checkasm-a.o common/oclobj.h x264_lookahead.clbin rm -f example example.exe example.o rm -f common/mc.gcda common/predict.gcda common/pixel.gcda common/macroblock.gcda common/frame.gcda common/dct.gcda common/cpu.gcda common/cabac.gcda common/common.gcda common/osdep.gcda common/rectangle.gcda common/set.gcda common/quant.gcda common/deblock.gcda common/vlc.gcda common/mvpred.gcda common/bitstream.gcda encoder/analyse.gcda encoder/me.gcda encoder/ratecontrol.gcda encoder/set.gcda encoder/macroblock.gcda encoder/cabac.gcda encoder/cavlc.gcda encoder/encoder.gcda encoder/lookahead.gcda common/threadpool.gcda common/x86/mc-c.gcda common/x86/predict-c.gcda common/opencl.gcda encoder/slicetype-cl.gcda x264.gcda input/input.gcda input/timecode.gcda input/raw.gcda input/y4m.gcda output/raw.gcda output/matroska.gcda output/matroska_ebml.gcda output/flv.gcda output/flv_bytestream.gcda filters/filters.gcda filters/video/video.gcda filters/video/source.gcda filters/video/internal.gcda filters/video/resize.gcda filters/video/cache.gcda filters/video/fix_vfr_pts.gcda filters/video/select_every.gcda filters/video/crop.gcda filters/video/depth.gcda input/avs.gcda input/thread.gcda input/lavf.gcda common/mc.gcno common/predict.gcno common/pixel.gcno common/macroblock.gcno common/frame.gcno common/dct.gcno common/cpu.gcno common/cabac.gcno common/common.gcno common/osdep.gcno common/rectangle.gcno common/set.gcno common/quant.gcno common/deblock.gcno common/vlc.gcno common/mvpred.gcno common/bitstream.gcno encoder/analyse.gcno encoder/me.gcno encoder/ratecontrol.gcno encoder/set.gcno encoder/macroblock.gcno encoder/cabac.gcno encoder/cavlc.gcno encoder/encoder.gcno encoder/lookahead.gcno common/threadpool.gcno common/x86/mc-c.gcno common/x86/predict-c.gcno common/opencl.gcno encoder/slicetype-cl.gcno x264.gcno input/input.gcno input/timecode.gcno input/raw.gcno input/y4m.gcno output/raw.gcno output/matroska.gcno output/matroska_ebml.gcno output/flv.gcno output/flv_bytestream.gcno filters/filters.gcno filters/video/video.gcno filters/video/source.gcno filters/video/internal.gcno filters/video/resize.gcno filters/video/cache.gcno filters/video/fix_vfr_pts.gcno filters/video/select_every.gcno filters/video/crop.gcno filters/video/depth.gcno input/avs.gcno input/thread.gcno input/lavf.gcno *.dyn pgopti.dpi pgopti.dpi.lock *.pgd *.pgc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all No working C compiler found.

I have searched alot but did not get anything.

Please help Thanks

kohiyadav avatar May 29 '19 04:05 kohiyadav

By August 1, 2019, all apps that use native code must provide a 64-bit version in addition to the 32-bit version in order to publish an update. This past January, we reiterated that this is required in order to make way for innovation and in anticipation of future Android devices that only support 64-bit code.As the deadline approaches, we wanted to remind you that at least one of your apps* uses native code but does not currently offer a 64-bit variant: By August 1, 2019, all apps that use native code must provide a 64-bit version in addition to the 32-bit version in order to publish an update. This past January, we reiterated that this is required in order to make way for innovation and in anticipation of future Android devices that only support 64-bit code.As the deadline approaches, we wanted to remind you that at least one of your apps* uses native code but does not currently offer a 64-bit variant: By August 1, 2019, all apps that use native code must provide a 64-bit version in addition to the 32-bit version in order to publish an update. This past January, we reiterated that this is required in order to make way for innovation and in anticipation of future Android devices that only support 64-bit code. As the deadline approaches, we wanted to remind you that at least one of your apps* uses native code but does not currently offer a 64-bit variant:
By August 1, 2019, all apps that use native code must provide a 64-bit version in addition to the 32-bit version in order to publish an update. This past January, we reiterated that this is required in order to make way for innovation and in anticipation of future Android devices that only support 64-bit code.As the deadline approaches, we wanted to remind you that at least one of your apps* uses native code but does not currently offer a 64-bit variant: By August 1, 2019, all apps that use native code must provide a 64-bit version in addition to the 32-bit version in order to publish an update. This past January, we reiterated that this is required in order to make way for innovation and in anticipation of future Android devices that only support 64-bit code. As the deadline approaches, we wanted to remind you that at least one of your apps* uses native code but does not currently offer a 64-bit variant:
By August 1, 2019, all apps that use native code must provide a 64-bit version in addition to the 32-bit version in order to publish an update. This past January, we reiterated that this is required in order to make way for innovation and in anticipation of future Android devices that only support 64-bit code.
As the deadline approaches, we wanted to remind you that at least one of your apps* uses native code but does not currently offer a 64-bit variant:

#How to create library that support 64 bit ..........

8285497507 avatar Jun 12 '19 10:06 8285497507

If you share the compiler script? Is the best option to reduce binary size or add https support

ghost avatar Jun 13 '19 19:06 ghost

Any updates on this? Is there a 64-bit library available yet? Time is edging closer to the cutoff point, and I assume many apps on Android use FFMPEG for video editing. Be useful to get it updated to 64 bit asap.

Also, any plans to implement hardware acceleration? Currently runs so slowly on the Pixel 3 doing basic operations.

niallwatchorn avatar Jun 14 '19 17:06 niallwatchorn

Hello guys,

I am working on 64-bit ffmpeg binaries. Once completed I will update you on it.

yadavkohi avatar Jun 15 '19 05:06 yadavkohi

@yadavkohi have you completed this 64bit update?, I am really waiting for that

nikunjparadva avatar Jun 24 '19 07:06 nikunjparadva

guys still working on it.

yadavkohi avatar Jun 24 '19 07:06 yadavkohi

Hi @yadavkohi ,

We are literally waiting for your update

sushinpv avatar Jun 25 '19 13:06 sushinpv

Any update ? Why i can not find any question in google search with this problem. It's so Critical @@

thucnd55 avatar Jun 25 '19 17:06 thucnd55

I can't even imagine, how many apps are using this library, and how many devs are waiting for update...

formatBCE avatar Jun 25 '19 18:06 formatBCE

@yadavkohi , any rough idea by when everyone can get it ? 32 bit support will shut down in 4 weeks

sysquare avatar Jun 26 '19 07:06 sysquare

I will try to finish it by mid july

yadavkohi avatar Jun 26 '19 07:06 yadavkohi

Guys , i got Solution for this problems. now wait for 2 days to confirmation

8285497507 avatar Jul 10 '19 06:07 8285497507

Hey guys. Could it be, that, since library is using ffmpeg binary by itself (copy -> run), it should work as is? There's no any pre-compilled .so files, referring to certain architecture. It's just binary executable file, which is launched by app itself, and has no influence in code (and it is in assets folder, btw). So it could be possible, that Google will know nothing about this binary during app publishing.

formatBCE avatar Jul 11 '19 10:07 formatBCE

android { compileSdkVersion 29 defaultConfig { applicationId "com.xyz.videoEditor" minSdkVersion 16 targetSdkVersion 29 versionCode 2 ndk.abiFilters 'arm64-v8a','x86_64' //Ads this line versionName "1.2"

    multiDexEnabled true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

8285497507 avatar Jul 11 '19 10:07 8285497507

In which world should it resolve current issue, and how? It just filters 64-bit architectures, but we don't want that!

formatBCE avatar Jul 11 '19 10:07 formatBCE

In short time, i'm using https://github.com/tanersener/mobile-ffmpeg for hot fix . It'seem be resolve 64-bit issue

thucnd55 avatar Jul 12 '19 03:07 thucnd55

@yadavkohi any update ? Also, may I know who are the persons who has ownership of this ticket. Can we know when and from whom we can expect this fix so that stop asking everyday. Its on SEV-1 now in our project

Does anyone has any idea that what worst can happen if we were not able to update before August1 and is there any workaround or temporary solution ?

sysquare avatar Jul 13 '19 12:07 sysquare

Hey ALL, I just uploaded a build on play store and its not showing me any warning for 64 bit, is there anything which got changed ?

sysquare avatar Jul 13 '19 13:07 sysquare

As i suggested, most probably we'll be all good with this library. Binary native file is used from assets folder, and Google takes eye on lib folder.

formatBCE avatar Jul 13 '19 13:07 formatBCE

May be you are true but my concern is that until my last upload on play store(which was approx 3 weeks before) google was giving me 64-bit warning but now its not. I have not changed anything.

sysquare avatar Jul 14 '19 05:07 sysquare

Hello guys,

I have created the 64-bit binaries. Please follow the below git repository.

https://github.com/yadavkohi/FFmpeg-64Bit

yadavkohi avatar Jul 16 '19 06:07 yadavkohi

Thanks @yadavkohi Do we have to just add binaries provided in above link under "src/main/assets/" ?? Thats it or something else needs to be done ?

sysquare avatar Jul 16 '19 06:07 sysquare

yes just add the binaries under "src/main/assets" and try with your ffmpeg commands.

yadavkohi avatar Jul 16 '19 06:07 yadavkohi

@yadavkohi
Thanks for the 64 Bit binary updates. I have integrated it into my project using like below

dependencies { implementation 'nl.bravobit:android-ffmpeg:1.1.7' }

Will I get 64 bit binaries automatically ? or Do I have to do something ?

Or do I need to add the library manually into assets folder. I would prefer the dependencies way.

shiv71 avatar Jul 16 '19 07:07 shiv71