编译ffmpeg configure详解

本文详细介绍了在Mac OS和Android平台上编译ffmpeg库的configure步骤,包括裁剪、设置目标平台、CPU架构、编译工具、第三方库路径和安装路径等关键配置。对于iOS和Android,由于涉及交叉编译,需要指定编译工具、SDK路径和第三方库,如openssl。文章提供了iOS和Android的示例脚本,并讲解了相关参数含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果是编译Mac OS或linux的ffmpeg库,是比较简单的,不存在交叉编译。直接在Mac OS 或linux的的执行以下命令(下载好ffmpeg的源码:Index of /releases 且cd到源码路径为前提执行下面步骤)

第一步:./configure (后面可以跟其他选项,如果不跟 是默认配置,此命令功能是生成makefile文件,具体的选项后面会讲解到)

./configure --prefix=/Users/feng/third-src/FFmpeg/FFmpeg-dir

第二步:make 或make -j10 (j10是同时开10个线程执行,此命令是执行makefile文件生成二进制文件比如 *.o *.bin *.lib)

make -j10

第二步:make install (把生成的二进制文件安装到configure设置的prefix路径)

make install

看了上面的步骤,是不是觉得很简单,是的,在当前系统编译当前系统的库比较简单,需要的编译的环境工具等等都不要再设置,系统都会设置好了。但是可能configure时需要一些其他的库,根据日志提示安装需要安装的库。这里提供一下安装方:安装和卸载方法


下面讲解iOS和android ffmpeg编译configure,在MAC上编译(可能其他环境有一些不一样,楼主不敢肯定)

其实书写的脚本思路和上面编译步骤差不多,只不过需要指定编译工具编译环境或者需要链接一些第三方库等等。

当然还可以添加源码下载,iOS合并.a android的.a生成.so等等功能。

这里拿一个iOS的脚本来分析:

# 定义宏 用来开启openssl OPENSSL=pwd/openssl # 1.裁剪FFMPEG CONFIGURE_FLAGS="--disable-everything \ --disable-debug --disable-programs --disable-doc \ --enable-cross-compile \ --enable-pic --enable-protocol=file \ --enable-network \ --enable-protocol=http --enable-protocol=tcp --enable-protocol=hls \ --enable-parser=h264 --enable-parser=hevc --enable-parser=aac \ --enable-demuxer=h264 --enable-decoder=hevc --enable-demuxer=aac --enable-demuxer=hls " #1.1.如果开启了openssl 需要增加的裁剪项目 if [ "$OPENSSL" ]; then CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-protocol=https \ --enable-openssl --enable-protocol=crypto --enable-protocol=tls_openssl" fi

#1.2.指定CPU架构,后面用到 ARCHS="arm64"

#1.3.指定支持目标平台的最小版本,后面用到 DEPLOYMENT_TARGET="8.0" for ARCH in $ARCHS do CFLAGS="-arch $ARCH" if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ];then #1.4.如果是模拟器版本,iOS平台SDK路径

PLATFORM="iPhoneSimulator"

CFLAGS="$CFLAGS -mios-simulator-version-min=$DEPLOYMENT_TARGET" else #1.5.如果是真机版本,iOS平台SDK路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值