ffmpeg 如何编译出单一的so文件
发布时间:2020-12-14 01:49:44 所属栏目:百科 来源:网络整理
导读:写在前面的废话 接上一篇,介绍了如何编译出多个so文件。本片介绍如何编译出单一的so文件。网上对于编译出单一库文件大致分为两种方式: 1、利用NDK 环境,编写mk文件生成 2、先编译出FFmpeg模块的库文件,然后链接模块的库文件 对于以上两种方式,笔者更倾
写在前面的废话 接上一篇,介绍了如何编译出多个so文件。本片介绍如何编译出单一的so文件。网上对于编译出单一库文件大致分为两种方式: 1、先贴出sh文件# build_andorid.sh
NDK=xxx/android-ndk-r10e
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64
function build_one
{
./configure
--prefix=$PREFIX --enable-neon --enable-hwaccel=h264_vaapi --enable-hwaccel=h264_vaapi --enable-hwaccel=h264_dxva2 --enable-hwaccel=mpeg4_vaapi --enable-hwaccels --enable-static --enable-jni --enable-mediacodec --enable-asm --disable-shared --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-doc --disable-symver --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- --target-os=linux --arch=arm --enable-cross-compile --sysroot=$SYSROOT --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS" $ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
$TOOLCHAIN/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
$TOOLCHAIN/bin/arm-linux-androideabi-ld -rpath-link=$SYSROOT/usr/lib -L$SYSROOT/usr/lib -soname libffmpeg.so -shared -nostdlib -z noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libavfilter/libavfilter.a libswscale/libswscale.a libavdevice/libavdevice.a libswresample/libswresample.a -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker $TOOLCHAIN/lib/gcc/arm-linux-androideabi/4.8/libgcc.a
}
CPU=armv7-a
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8"
PREFIX=./android/$CPU
ADDITIONAL_CONFIGURE_FLAG=--enable-neon
build_one
笔者通过这种方式编译出来之后,生成的libffmpeg.so文件大小是70多兆,相比于多个模块的多个so文件要大很多 2、鸣谢 本文参考链接: 只是改动了几处
ps:在NDK 9之后,以上两个命令有所改变,第一个要把“,”替换为空格,第二个没有找到替换的东西,所有笔者就给删除了 到此,FFmpeng的编译工作结束。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |