在ubuntu18.4平台上编译FFmpeg-3.4 for Android



注:视频:https://download.csdn.net/download/long_24k_os/10453389


1、点击官网(https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip)下载,解压到当前用户目录。



2、到官网http://www.ffmpeg.org/download.html  复制  git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg后到ubuntu打开命令行粘贴,按回车键之后就在当前用户目录下产生ffmpeg文件夹。



3、在android-ndk-r16b/build/tools目录下执行命令:

python3 make_standalone_toolchain.py --arch arm --stl=libc++  --install-dir /home/你Ubuntu的用户名/my_toolchains/arm --force
python3 make_standalone_toolchain.py --arch arm64 --stl=libc++  --install-dir /home/你Ubuntu的用户名/my_toolchains/arm64 --force
python3 make_standalone_toolchain.py --arch x86 --stl=libc++  --install-dir /home/你Ubuntu的用户名/my_toolchains/x86 --force
python3 make_standalone_toolchain.py --arch x86_64 --stl=libc++  --install-dir /home/你Ubuntu的用户名/my_toolchains/x86_64 --force


注意:这里我的Ubuntu用户名longwei , 从这里  可以看到 @前面点击用户名,@后面是实例名

执行完命令后的目录:



4、然后复制build_all.sh、build_arm64-v8a.sh、build_armeabi-v7a.sh、build_armeabi.sh、build_x86.sh、build_x86_64.sh六个文件到ffmpeg目录下,再用管理员(su)给755权限:

build_all.sh

#!/bin/bash

./build_armeabi.sh
./build_armeabi-v7a.sh
./build_arm64-v8a.sh
./build_x86.sh
./build_x86_64.sh

build_arm64-v8a.sh

#!/bin/bash

TOOLCHAIN=/home/longwei/my_toolchains/arm64
CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
rm -f $(pwd)/compat/strtod.o
function build_one
{
./configure --prefix=$PREFIX --enable-shared --disable-static --enable-protocol=file --enable-pic --enable-small --disable-programs --disable-doc --disable-symver --target-os=android --enable-cross-compile --cross-prefix=$CROSS_PREFIX --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS" --sysroot=$TOOLCHAIN/sysroot $ADDITIONAL_CONFIG_FLAG
make clean
make -j2
make install
}

CPU=arm64-v8a
mkdir -p $(pwd)/android/$CPU
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-march=armv8-a"
ADDI_LDFLAGS="-L$TOOLCHAIN/sysroot/usr/lib"
ADDITIONAL_CONFIG_FLAG="--arch=aarch64 --enable-yasm"
build_one

build_armeabi.sh

#!/bin/bash

TOOLCHAIN=/home/longwei/my_toolchains/arm
CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
rm -f $(pwd)/compat/strtod.o
function build_one
{
./configure --prefix=$PREFIX --enable-shared --disable-static --enable-protocol=file --enable-pic --enable-small --disable-doc --disable-programs --disable-symver --target-os=android --enable-cross-compile --cross-prefix=$CROSS_PREFIX --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS" --sysroot=$TOOLCHAIN/sysroot $ADDITIONAL_CONFIG_FLAG
make clean
make -j2
make install
}

CPU=armeabi
mkdir -p $(pwd)/android/$CPU
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm -march=armv5te -mtune=arm9tdmi -msoft-float"
ADDI_LDFLAGS=""
ADDITIONAL_CONFIG_FLAG="--arch=arm --cpu=armv5te --enable-armv5te --disable-asm --disable-stripping"
build_one

build_armeabi-v7a.sh

#!/bin/bash

TOOLCHAIN=/home/longwei/my_toolchains/arm
CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
rm -f $(pwd)/compat/strtod.o
function build_one
{
./configure --prefix=$PREFIX --enable-shared --disable-static --enable-protocol=file --enable-pic --enable-small --disable-programs --disable-doc --disable-symver --target-os=android --enable-cross-compile --cross-prefix=$CROSS_PREFIX --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS" --sysroot=$TOOLCHAIN/sysroot $ADDITIONAL_CONFIG_FLAG
make clean
make -j2
make install
}

CPU=armeabi-v7a
mkdir -p $(pwd)/android/$CPU
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm -march=armv7-a -mfloat-abi=softfp -mthumb -mfpu=vfpv3-d16 -mtune=cortex-a8"
ADDI_LDFLAGS="-marm -march=armv7-a -Wl,--fix-cortex-a8"
ADDITIONAL_CONFIG_FLAG="--arch=arm --disable-asm"
build_one

build_x86.sh

#!/bin/bash

TOOLCHAIN=/home/longwei/my_toolchains/x86
CROSS_PREFIX=$TOOLCHAIN/bin/i686-linux-android-
rm -f $(pwd)/compat/strtod.o
function build_one
{
./configure --prefix=$PREFIX --enable-shared --disable-static --enable-protocol=file --enable-pic --enable-small --disable-programs --disable-doc --disable-symver --target-os=android --enable-cross-compile --cross-prefix=$CROSS_PREFIX --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS" --sysroot=$TOOLCHAIN/sysroot $ADDITIONAL_CONFIG_FLAG
make clean
make -j2
make install
}

CPU=x86
mkdir -p $(pwd)/android/$CPU
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
ADDI_LDFLAGS=""
ADDITIONAL_CONFIG_FLAG="--arch=x86 --cpu=i686 --enable-x86asm"
build_one

build_x86_64.sh:

#!/bin/bash

TOOLCHAIN=/home/longwei/my_toolchains/x86_64
CROSS_PREFIX=$TOOLCHAIN/bin/x86_64-linux-android-
rm -f $(pwd)/compat/strtod.o
function build_one
{
./configure --prefix=$PREFIX --enable-shared --disable-static --enable-protocol=file --enable-pic --enable-small --disable-programs --disable-doc --disable-symver --target-os=android --enable-cross-compile --cross-prefix=$CROSS_PREFIX --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS" --sysroot=$TOOLCHAIN/sysroot $ADDITIONAL_CONFIG_FLAG
make clean
make -j2
make install
}

CPU=x86_64
mkdir -p $(pwd)/android/$CPU
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-march=x86-64"
ADDI_LDFLAGS=""
ADDITIONAL_CONFIG_FLAG="--arch=x86_64 --enable-x86asm"
build_one

chmod 755 build_all.sh build_arm64-v8a.sh build_armeabi-v7a.sh build_armeabi.sh build_x86.sh build_x86_64.sh




进行编译:./build_all.sh


编译执行中。。。。


编译完成:



5、编译完成的andoird目录结构:



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值