如果是编译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路