【Android 音视频开发打怪升级:FFmpeg音视频编解码篇】一、FFmpeg so库编译

库文件和头文件

下载FFmpeg源码

FFmpeg官网下载,直接DownLoad即可。

本文使用的是目前最新的版本 ffmpeg-4.2.2

下载好源码后,进入根目录,找到一个名为 congfigure 的文件,这是一个shell脚本,用于生成一些 FFmpeg 编译需要的配置文件。

这个文件非常重要,FFmpeg 的编译配置就是靠它完成的。

后面我们将对其中一些重要的内容进行分析,这是理解 FFmpeg 编译配置的关键。

有了以上基础以后,就可以对FFmpeg进行编译了。

配置脚本
  • 修改 configure 脚本
  1. 新增 cross_prefix_clang 参数

打开(注:不是双击运行) ffmpeg-4.2.2 根目录下的 configure 文件,搜索 CMDLINE_SET ,可以找到以下代码,然后新增一个命令行选项:cross_prefix_clang

CMDLINE_SET="
$PATHS_LIST
ar
arch
as
assert_level
build_suffix
cc
objcc
cpu
cross_prefix

新增命令行参数

cross_prefix_clang
custom_allocator
cxx
dep_cc

省略其他…

"

  1. 修改编译工具路径设置

搜索 ar_default="${cross_prefix}${ar_default}" , 找到以下代码

ar_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{ar_default}”
cc_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{cc_default}”
cxx_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{cxx_default}”
nm_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{nm_default}”
pkg_config_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{pkg_config_default}”

将中间两行修改为

ar_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{ar_default}”
#------------------------------------------------
cc_default=“ c r o s s p r e f i x c l a n g {cross_prefix_clang} crossprefixclang{cc_default}”
cxx_default=“ c r o s s p r e f i x c l a n g {cross_prefix_clang} crossprefixclang{cxx_default}”
#------------------------------------------------
nm_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{nm_default}”
pkg_config_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{pkg_config_default}”

至于为什么这么修改,将在后面的 configure 分析中详细讲解

  • 新建编译配置脚本

ffmpeg-4.2.2 根目录下新建 shell 脚本,命名为: build_android_clang.sh

#!/bin/bash
set -x

目标Android版本

API=21
CPU=armv7-a
#so库输出目录
OUTPUT=/Users/cxp/Desktop/FFmpeg/ffmpeg-4.2.2/android/$CPU

NDK的路径,根据自己的NDK位置进行设置

NDK=/Users/cxp/Desktop/FFmpeg/android-ndk-r20b

编译工具链路径

TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64

编译环境

SYSROOT=$TOOLCHAIN/sysroot

function build
{
./configure
–prefix= O U T P U T   − − t a r g e t − o s = a n d r o i d   − − a r c h = a r m   − − c p u = a r m v 7 − a   − − e n a b l e − a s m   − − e n a b l e − n e o n   − − e n a b l e − c r o s s − c o m p i l e   − − e n a b l e − s h a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值