ubuntu ffmpeg 4.0.1 android 编译过程记录

参考:https://blog.csdn.net/bobcat_kay/article/details/80889398

https://github.com/RoyGuanyu/build-scripts-of-ffmpeg-x264-for-android-ndk

音视频教学:链接: https://pan.baidu.com/s/1w9o5C6vIj07pj3zlNK0pfg 密码: r8qc

1.之前编译ffmepg 直接用git 放下下载下来,查百度 ffmpeg的编译步骤,但是在编译的时候总是在build.sh的时候第一步直接报各种错,最后思考是不是ffmpeg版本不匹配不上的问题。接下来就到fmpeg官网下载了4.0.1版本。

2.下载完成后搜索了红色链接中的,使用了里面build.sh内容,编译的时候能可以执行并看到了执行到最后warnning部分,说明了确实是之前的问题确实跟版本有关。因为链接中的build.sh 只生成了config.h ,修改build.sh 使得其可以去编译so库

#!/bin/bash
NDK=/home/zdy/ide/ndk/android-ndk-r10e
SYSROOT=$NDK/platforms/android-21/arch-arm/
CPU=armv7-a
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "


function build_android
{
#生成config.h
./configure \
--prefix=$PREFIX \
--enable-neon \
--enable-hwaccels \
--enable-shared \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--disable-static \
--disable-doc \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--enable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--cpu=armv7-a \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG


#开始编译
sed -i '' 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
sed -i '' 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
sed -i '' 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
sed -i '' 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
sed -i '' 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
sed -i '' 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
sed -i '' 's/HAVE_CBRT 0/HAVE_CBRT 1/g' config.h
sed -i '' 's/HAVE_RINT 0/HAVE_RINT 1/g' config.h
make clean
make -j4
make install
}
build_android

编译可以生成so

猜你喜欢

转载自blog.csdn.net/zdy10326621/article/details/81027189