博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mac系统编译 ffmpeg ios 静态库
阅读量:4200 次
发布时间:2019-05-26

本文共 3989 字,大约阅读时间需要 13 分钟。

1、源码下载
ffmpeg 源码:
gas-preprocessor 工具 (编译脚本会自己下载)
ffmpeg ios 编译脚本:
2、编译
修改 编译脚本
如果系统里面缺工具,脚本会自动进行下载
#!/bin/sh# directoriesSOURCE="ffmpeg"FAT="FFmpeg-iOS"SCRATCH="scratch"# must be an absolute pathTHIN=`pwd`/"thin"# absolute path to x264 library#X264=`pwd`/fat-x264#FDK_AAC=`pwd`/../fdk-aac-build-script-for-iOS/fdk-aac-ios #--disable-yasmCONFIGURE_FLAGS="--enable-cross-compile --disable-debug --disable-programs \                 --disable-doc --enable-pic "if [ "$X264" ]then	CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-gpl --enable-libx264"fiif [ "$FDK_AAC" ]then	CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libfdk-aac"fi# avresample#CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-avresample"ARCHS="arm64 armv7 armv7s x86_64 i386"COMPILE="y"LIPO="y"DEPLOYMENT_TARGET="6.0"if [ "$*" ]then	if [ "$*" = "lipo" ]	then		# skip compile		COMPILE=	else		ARCHS="$*"		if [ $# -eq 1 ]		then			# skip lipo			LIPO=		fi	fifiif [ "$COMPILE" ]thenif [ ! `which yasm` ]then	echo 'Yasm not found'	if [ ! `which brew` ]	then		echo 'Homebrew not found. Trying to install...'                  ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" \		|| exit 1	fi	echo 'Trying to install Yasm...'	brew install yasm || exit 1fi	if [ ! `which gas-preprocessor.pl` ]then	echo 'gas-preprocessor.pl not found. Trying to install...'	(curl -L https://github.com/libav/gas-preprocessor/raw/master/gas-preprocessor.pl \			-o /usr/local/bin/gas-preprocessor.pl \			&& chmod +x /usr/local/bin/gas-preprocessor.pl) \			|| exit 1fi	if [ ! -r $SOURCE ]	then		echo 'FFmpeg source not found. Trying to download...'		curl http://www.ffmpeg.org/releases/$SOURCE.tar.bz2 | tar xj \			|| exit 1	fi	CWD=`pwd`	for ARCH in $ARCHS	do		echo "building $ARCH..."		mkdir -p "$SCRATCH/$ARCH"		cd "$SCRATCH/$ARCH"		CFLAGS="-arch $ARCH"		if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]		then		    PLATFORM="iPhoneSimulator"		    CFLAGS="$CFLAGS -mios-simulator-version-min=$DEPLOYMENT_TARGET"		else		    PLATFORM="iPhoneOS"		    CFLAGS="$CFLAGS -mios-version-min=$DEPLOYMENT_TARGET -fembed-bitcode"		    if [ "$ARCH" = "arm64" ]		    then		        EXPORT="GASPP_FIX_XCODE5=1"		    fi		fi		XCRUN_SDK=`echo $PLATFORM | tr '[:upper:]' '[:lower:]'`		CC="xcrun -sdk $XCRUN_SDK clang"		CXXFLAGS="$CFLAGS"		LDFLAGS="$CFLAGS"		if [ "$X264" ]		then			CFLAGS="$CFLAGS -I$X264/include"			LDFLAGS="$LDFLAGS -L$X264/lib"		fi		if [ "$FDK_AAC" ]		then			CFLAGS="$CFLAGS -I$FDK_AAC/include"			LDFLAGS="$LDFLAGS -L$FDK_AAC/lib"		fi		TMPDIR=${TMPDIR/%\/} $CWD/$SOURCE/configure \		    --target-os=darwin \		    --arch=$ARCH \		    --cc="$CC" \		    $CONFIGURE_FLAGS \		    --extra-cflags="$CFLAGS" \		    --extra-ldflags="$LDFLAGS" \		    --prefix="$THIN/$ARCH" \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-ffserver \--disable-iconv \--disable-bzlib \--enable-avresample \--enable-avresample  \--enable-pic	\--disable-doc	\--disable-decoders \--enable-decoder=h264 \--disable-encoders \--disable-demuxers \--enable-demuxer=avi \--disable-muxers \--enable-muxer=avi \--disable-filters \		|| exit 1		make -j3 install $EXPORT || exit 1		cd $CWD	donefiif [ "$LIPO" ]then	echo "building fat binaries..."	mkdir -p $FAT/lib	set - $ARCHS	CWD=`pwd`	cd $THIN/$1/lib	for LIB in *.a	do		cd $CWD		echo lipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIB 1>&2		lipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIB || exit 1	done	cd $CWD	cp -rf $THIN/$1/include $FATfiecho Done
把ffmpeg源码解压到当前文件夹,文件夹名字修改为ffmpeg
编译程序:
./build-ffmpeg.sh
编译成功后,可以在FFmpeg-iOS目录下面看到 include lib 文件
ternencedeMac-mini:lib ternence$ lipo -info libavcodec.a
Architectures in the fat file: libavcodec.a are: armv7 armv7s i386 x86_64 arm64
我们这里编译 armv7 armv7s i386 x86_64 arm64 这几个平台的库出来了
大家可以根据需要自由的进行裁剪和修改
3、编译库文件
我编译了ffmpeg-2.0.2.tar.bz2 ffmpeg-3.2.2.tar.bz2
源码和编译后的库文件大家可以到下面的路径进行下载:
源码:链接:http://pan.baidu.com/s/1qYARLBu 密码:hsnc
编译出来的库文件:链接:http://pan.baidu.com/s/1sljf1b3 密码:drkm
修改后的编译脚本:链接:http://pan.baidu.com/s/1jHGn5A2 密码:ss71

转载地址:http://ghfli.baihongyu.com/

你可能感兴趣的文章
关于mongodb的 数组分组 array group
查看>>
MongoDB新的数据统计框架介绍
查看>>
mongodb fulltextsearch 关于语言的设置选项
查看>>
mongodb 增加全文检索索引
查看>>
symfony
查看>>
yourls 短连接 安装
查看>>
yii2 php namespace 引入第三方非namespace库文件时候,报错:Class not found 的解决
查看>>
softlayer 端口开放
查看>>
操作1:mongodb安装
查看>>
操作2:mongodb使用语法
查看>>
如何给分类增加一个属性(后台)
查看>>
linux设置环境变量 临时设置 和 永久设置
查看>>
检查网站在世界各地的打开速度
查看>>
jquery 向上(顶部),向下(底部)滑动
查看>>
seo
查看>>
10个出色的NoSQL数据库
查看>>
MySQL: InnoDB 还是 MyISAM?
查看>>
MySQL性能优化的最佳20+条经验
查看>>
SQL语言的组成部分 ddl dcl dml
查看>>
mysql数据库从库同步延迟的问题
查看>>