在Ubuntu编译Android版本的FFMPEG

编译成多个so文件的脚本:

cd ffmpeg-3.4.1

make clean
  
export NDK=/home/zxb/ext/lost+found/android-ndk-r11c
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt
export PLATFORM=$NDK/platforms/android-8/arch-arm
export PREFIX=./android/armeabi
build_one(){
  ./configure --target-os=linux --prefix=$PREFIX \
--enable-cross-compile \
--enable-runtime-cpudetect \
--enable-libx264 \
--enable-libx265 \
--enable-libfreetype \
--arch=arm \
--cc=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \
--disable-stripping \
--nm=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--enable-gpl --enable-shared --disable-static --enable-version3 --enable-small \
--disable-devices \
--disable-avdevice \
--disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-debug \
--extra-cflags="-I/home/zxb/ext/lost+found/android-lib/include -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv6" \
--extra-ldflags="-L/home/zxb/ext/lost+found/android-lib/lib"
}

build_one

make
make install


cd ..

编译成一个so文件的脚本(里面带有h264,h265和libfreetype),如果本地没有编译出的版本,就把他们删除掉就可以了

#!/bin/bash
cd ffmpeg-3.4.1
make clean
export NDK=/home/zxb/android-ndk-r9d
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt
export PLATFORM=$NDK/platforms/android-16/arch-arm
export PREFIX=../ff-onelib
export PKG_CONFIG_PATH=/home/zxb/android-lib/lib/pkgconfig
build_one(){
  ./configure --target-os=android --prefix=$PREFIX \
--enable-cross-compile \
--enable-runtime-cpudetect \
--arch=arm \
--cc=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-gcc \
--cxx=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-g++ \
--cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \
--disable-stripping \
--nm=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--extra-cflags="-I/home/zxb/android-lib/include" \
--extra-ldflags="-L/home/zxb/android-lib/lib" \
--enable-gpl --enable-static --disable-shared --enable-small \
--enable-zlib --disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-debug --disable-doc \
--extra-cflags=" -O3 -fpic -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 -mfloat-abi=softfp -mfpu=vfp -marm -march=armv6" \
--enable-libx264 \
--enable-libx265 \
--enable-libfreetype \
--enable-avfilter \
--enable-neon
}

build_one
make
make install
$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -L$PREFIX/lib -L/usr/local/lib -soname libffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavfilter/libavfilter.a libswresample/libswresample.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a libpostproc/libpostproc.a libavdevice/libavdevice.a /home/zxb/android-lib/lib/libx264.a /home/zxb/android-lib/lib/libfreetype.a -lx265 -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker $PREBUILT/linux-x86_64/lib/gcc/arm-linux-androideabi/4.8/libgcc.a
cd ..


可直接下载ffmpeg+x264+265资源地址:

ffmpeg+x264+265


猜你喜欢

转载自blog.csdn.net/zxb3121999/article/details/80855852