【FFmepg】Clang编译ffmpeg android库

作者 : 开心源码 本文共1786个字,预计阅读时间需要5分钟 发布时间: 2022-05-13 共148人阅读

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库

发表回复