我下面这个站点的建议成功的Android的ffmpeg和chromaprint:编译在某些设备上
https://bitbucket.org/phorton1/chromaprint
从我抄multi-configure
和multi-make
脚本ffmpeg的和chromaprint库的网站。我使用了最近的ffmpeg 3.0和chromaprint 1.3.2的克隆。我为arm,x86和armv7工作'.so'文件。我没有编译问题。我将它们加载到我的应用程序(一个非常简单的应用程序,只是为了测试这个库),我尝试在我的两个设备上。一个是三星Galaxy TabPro(SM-T320,api 19),另一个是三星S4(api 21)。我让程序在两者上运行。我可以使用'-version'命令获取chromaprint版本信息。当我尝试对音频文件进行指纹识别时,该软件适用于旧版平板电脑,但不适用于s4。在s4上,错误信息是'错误解码音频'。
我试过ffmpeg 0.9,因为bitbucket网站建议。我也有同样的问题。我试过ffmpeg 2.7,我认为这是工作。现在我无法获得2.7的工作。和之前的代码一样在api 19设备上运行,而不是s4。
Tab是一个armeabi-v7a设备,s4是一个armeabi/armeabi-v7设备,所以我想通过删除'armeabi'二进制文件我会在两台机器上都有相同的文件,并且他们必须工作。这个尝试什么都没做。我正在使用android studio。
下面是我的一些ffmpeg配置的列表。它们来自多配置脚本。
--enable-static
--disable-shared
--disable-doc
--disable-txtpages
--disable-iconv
--enable-memalign-hack
--enable-debug
--disable-avdevice
--disable-avfilter
--disable-swscale
--disable-ffmpeg
--disable-ffplay
--disable-ffserver
--disable-network
--disable-muxers
--disable-demuxers
--enable-rdft
--enable-demuxer=aac
--enable-demuxer=ac3
--enable-demuxer=ape
--enable-demuxer=asf
--enable-demuxer=flac
--enable-demuxer=matroska_audio
--enable-demuxer=mp3
--enable-demuxer=mpc
--enable-demuxer=mov
--enable-demuxer=mpc8
--enable-demuxer=ogg
--enable-demuxer=tta
--enable-demuxer=wav
--enable-demuxer=wv
--disable-bsfs
--disable-filters
--disable-parsers
--enable-parser=aac
--enable-parser=ac3
--enable-parser=mpegaudio
--disable-protocols
--enable-protocol=file
--disable-indevs
--disable-outdevs
--disable-encoders
--disable-decoders
--enable-decoder=aac
--enable-decoder=ac3
--enable-decoder=alac
--enable-decoder=ape
--enable-decoder=flac
--enable-decoder=mp1
--enable-decoder=mp2
--enable-decoder=mp3
--enable-decoder=mpc7
--enable-decoder=mpc8
--enable-decoder=tta
--enable-decoder=vorbis
--enable-decoder=wavpack
--enable-decoder=wmav1
--enable-decoder=wmav2
--enable-decoder=pcm_alaw
--enable-decoder=pcm_dvd
--enable-decoder=pcm_f32be
--enable-decoder=pcm_f32le
--enable-decoder=pcm_f64be
--enable-decoder=pcm_f64le
--enable-decoder=pcm_s16be
--enable-decoder=pcm_s16le
--enable-decoder=pcm_s16le_planar
--enable-decoder=pcm_s24be
--enable-decoder=pcm_daud
--enable-decoder=pcm_s24le
--enable-decoder=pcm_s32be
--enable-decoder=pcm_s32le
--enable-decoder=pcm_s8
--enable-decoder=pcm_u16be
--enable-decoder=pcm_u16le
--enable-decoder=pcm_u24be
--enable-decoder=pcm_u24le
--enable-decoder=rawvideo
这里是关于我从系统信息应用程序获得的s4的一些信息。
Build Info
Build.BOARD: MSM8960
Build.BRAND: Verizon
Build.DEVICE: jfltevzw
Build.DISPLAY: LRX22C.I545VRUGOF1
Build.PRODUCT: jfltevzw
Build.HARDWARE: qcom
Build.FINGERPRINT: Verizon/jfltevzw/jfltevzw:5.0.1/LRX22C/I545VRUGOF1:user/release-keys
Build.CPU_ABI: armeabi-v7a
Build.SUPPORTED_32_BIT_ABIS: [armeabi-v7a, armeabi]
Build.SUPPORTED_64_BIT_ABIS: []
Build.SUPPORTED_ABIS: [armeabi-v7a, armeabi]
Build.HOST: SWDD6122
Build.ID: LRX22C
Build.MANUFACTURER: samsung
Build.MODEL: SCH-I545
Build.PRODUCT: jfltevzw
Build.TAGS: release-keys
Build.TIME: 2015-07-15T03:39:01.000-0400
Build.TYPE: user
Build.USER: dpi
Build.BOOTLOADER: I545VRUGOF1
Build.TAGS: release-keys
Build.VERSION.CODENAME: REL
Build.VERSION.INCREMENTAL: I545VRUGOF1
Build.VERSION.RELEASE: 5.0.1
Build.VERSION.SDK_INT: 21
编辑:
这是我的项目减去API的关键是个人的完整的源代码。 https://github.com/radiodee1/awesome-fpcalc代码被安排在git仓库里面的部分。 'fpcalc-testapp'部分只有Android Studio项目。 'fpcalc-build'部分是我尝试使用ffmpeg,chromaprint和kissfft的最新版本。 'fpcalc-build-complete'部分是一系列重现P.Horton ffmpeg 2.7场景的脚本。再见,我相信最好的库是在“构建完成”文件夹中生成的。
我正在使用ndk r12b。 –