FFmpeg4.4 for Android so库源码编译教程

下载相关工具与源码

  1. 下载 Linux 的 NDK 工具包
    https://developer.android.google.cn/ndk/downloads/index.html
  2. 下载FFmpeg源码
    可以去Github下载,也可以使用命令git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

环境准备

将FFmpeg源码与NDK工具包放入Linux环境,并解压。我这里使用的是Ubuntu虚拟机。

编写编译脚本

进入FFmpeg源码根目录,创建android_build.sh脚本文件,里面写相关编译脚本。需要根据自己的源码与NDK来修改相关路径。

最好使用root用户来运行命令./android_build.sh

armv7-a编译脚本

#!/bin/bash

make clean

SYSROOT=/home/jerry/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64/sysroot
TOOLCHAIN=/home/jerry/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64

CPU=armv7-a
ARCH=arm
API=29

CROSS_PREFIX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-

CC=${CROSS_PREFIX}clang
CXX=CC=${CROSS_PREFIX}clang++

PREFIX=./android/${CPU}_${API}/
OPTIMIZE_CFLAGS="-march=$CPU"

./configure --target-os=android \
--prefix=$PREFIX \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--cpu=$CPU \
--strip=$TOOLCHAIN/bin/llvm-strip \
--nm=$TOOLCHAIN/bin/llvm-nm \
--enable-shared \
--disable-static \
--disable-doc \
--disable-x86asm \
--disable-yasm \
--disable-symver \
--enable-gpl \
--cross-prefix=$CROSS_PREFIX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG

make -j4
make install
# chmod -R 777 ./

armv8-a编译脚本

#!/bin/bash

make clean

SYSROOT=/home/jerry/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64/sysroot
TOOLCHAIN=/home/jerry/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64

CPU=armv8-a
ARCH=arm64
API=29

CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android$API-

CC=${CROSS_PREFIX}clang
CXX=${CROSS_PREFIX}clang++

PREFIX=./android/${CPU}_${API}/

OPTIMIZE_CFLAGS="-march=$CPU"

./configure --target-os=android \
--prefix=$PREFIX \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--cpu=$CPU \
--strip=$TOOLCHAIN/bin/llvm-strip \
--nm=$TOOLCHAIN/bin/llvm-nm \
--enable-shared \
--disable-static \
--disable-doc \
--disable-x86asm \
--disable-yasm \
--disable-symver \
--enable-gpl \
--cross-prefix=$CROSS_PREFIX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG

make -j4
make install
# chmod -R 777 ./
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值