【FFmepg】Clang编译ffmpeg android库
Android新版的NDK移除GCC的编译,改为CLANG,FFmpeg的编译脚本也需要相应修改。以下脚本实测通过NDK20没问题。与GCC编译的脚本相比,主要修改点在几个地方:
1.TOOLCHAIN的路径变化,这是最重要的,从gcc的$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
修改到现地址
2.增加了cc和cxx,指定为clang编译,至于API的支持版本网上有,不要太低都能支持的
3.OPTIMIZE_CFLAGS里面-DBIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD
宏的目的是处理少量系统函数编译时提醒mismatch,千万不要删除
4.可以修改的地方是disable和enable的各种功能,根据自己项目实际开发需要对库进行缩减
5.ARCH和CPU也是根据自己项目进行修改,不一律列举
【提个问】NDK20b和NDK14b编译出来的ffmpeg库在工程设置为NDK14的项目都可以正常运作,当工程的NDK设为20的时候,ffmpeg解码同样的音频流会出现两种格式?
#!/bin/bashexport NDK=/home/Android/android-ndk-r20bTOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64/API=21#armv7-aARCH=armCPU=armv7-aCC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clangCXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysrootCROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-PREFIX=$(pwd)/android/$CPUOPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU -DBIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD" echo "Compiling FFmpeg for $CPU" ./configure \ --prefix=$PREFIX \ --disable-asm \ --enable-neon \ --enable-hwaccels \ --enable-shared \ --enable-jni \ --enable-mediacodec \ --enable-decoders \ --disable-encoders \ --enable-postproc\ --enable-demuxers \ --enable-muxers \ --enable-parsers \ --enable-protocols \ --enable-decoder=h264_mediacodec \ --enable-hwaccel=h264_mediacodec \ --enable-gpl \ --disable-bsfs \ --disable-indevs \ --disable-outdevs \ --disable-filters \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --enable-avdevice \ --disable-symver \ --disable-ffserver \ --cross-prefix=$CROSS_PREFIX \ --target-os=android \ --arch=$ARCH \ --cpu=$CPU \ --cc=$CC \ --cxx=$CXX \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAGmake cleanmake -j4make install
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 【FFmepg】Clang编译ffmpeg android库
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 【FFmepg】Clang编译ffmpeg android库