编译安卓平台ffmpeg
1下载
ffmpeg-7.0.2 官网下载即可
NDK下载的r25C;注意有些NDK是包含 -ar 之类的文件的,老的编译方式中是使用到了这些文件的,如:
aarc64-linux-android-nm -ar -as
如果你使用的是一些老的编译指令,但是使用的是新的NDK,编译可能会出现缺少 *** -ar交叉编译连,对此,可以下载老版本NDK,是包含这些文件的;
如r19C:android-ndk-r19c\toolchains\llvm\prebuilt\linux-x86_64\bin
我们这里直接使用R25C;ffmepg7.0;我主要是想使用硬件编解码
在平级目录下创建编译文件 **.sh;然后./sh 会创建一个build 编译
#!/bin/bash # 指定ndk路径 # 指定交叉编译链 export NDK=/mnt/***/r25c/linux_ndk/android-ndk-r25c TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64 mkdir build cd build parentDir=$(dirname "$PWD") function build_android { $parentDir/ffmpeg-7.0.2/configure \ --prefix=$PREFIX \ --disable-postproc \ --disable-debug \ --disable-doc \ --enable-ffmpeg \ --enable-ffplay \ --enable-ffprobe \ --disable-symver \ --disable-doc \ --disable-avdevice \ --disable-shared \ --enable-static \ --disable-vulkan \ --enable-gpl \ --enable-neon \ --enable-hwaccels \ --enable-jni \ --enable-small \ --enable-mediacodec \ --enable-decoder=h264_mediacodec \ --enable-decoder=hevc_mediacodec \ --enable-decoder=mpeg4_mediacodec \ --enable-hwaccel=h264_mediacodec \ --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" make clean make -j8 make install } #arm64-v8a ARCH=arm64 CPU=armv8-a API=26 CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++ SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot NM=$TOOLCHAIN/bin/llvm-nm CROSS_PREFIX=$TOOLCHAIN/bin/llvm- PREFIX=$(pwd)/androidOut/$CPU OPTIMIZE_CFLAGS="-march=$CPU" #注意红色(加粗的两行)的部分是新的NDK使用的;使用老的NDK,红色部分可能要使用这句话 CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android- build_android echo "=****************** armv8a build end*****************"
编译之后


浙公网安备 33010602011771号