命令行安装FFmpeg:git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg(或:到下载ffmpeg-iphone-build)
安装命令行工具(Command Line Tools)
打开终端,输入命令:xcode-select --install
选择“安装”,然后同意安装协议。
下载gas-preprocessor:, 先将gas-preprocessor.pl拷贝到/usr/sbin/目录中。
然后修改gas-preprocessor.pl文件的权限。注:需要有读,写和执行的权限。具体操作为,首先在命令行下进入/usr/bin目录,然后执行chmod命令,如下图所示:
运行build-ffmpeg.sh文件:
1、cd /build-ffmpeg.sh 脚本的所在目录下
2、sh build-ffmpeg.sh
#!/bin/bash############################################################################ Choose your ffmpeg version and your currently-installed iOS SDK version:#VERSION="2.0.2"SDKVERSION="7.0"############################################################################### Don't change anything under this line!############################################################################# No need to change this since xcode build will only compile in the# necessary bits from the libraries we createARCHS="armv7 armv7s i386"DEVELOPER=`xcode-select -print-path`cd "`dirname \"$0\"`"REPOROOT=$(pwd)# Where we'll end up storing things in the endOUTPUTDIR="${REPOROOT}/dependencies"mkdir -p ${OUTPUTDIR}/includemkdir -p ${OUTPUTDIR}/libmkdir -p ${OUTPUTDIR}/binBUILDDIR="${REPOROOT}/build"mkdir -p $BUILDDIR# where we will keep our sources and build from.SRCDIR="${BUILDDIR}/src"mkdir -p $SRCDIR# where we will store intermediary buildsINTERDIR="${BUILDDIR}/built"mkdir -p $INTERDIR########################################cd $SRCDIR# Exit the script if an error happensset -eif [ ! -e "${SRCDIR}/ffmpeg-${VERSION}.tar.bz2" ]; then echo "Downloading ffmpeg-${VERSION}.tar.bz2" curl -LO http://ffmpeg.org/releases/ffmpeg-${VERSION}.tar.bz2else echo "Using ffmpeg-${VERSION}.tar.bz2"fitar jxf ffmpeg-${VERSION}.tar.bz2 -C $SRCDIRcd "${SRCDIR}/ffmpeg-${VERSION}"set +e # don't bail out of bash script if ccache doesn't existCCACHE=`which ccache`if [ $? == "0" ]; then echo "Building with ccache: $CCACHE" CCACHE="${CCACHE} "else echo "Building without ccache" CCACHE=""fiset -e # back to regular "bail out on error" modefor ARCH in ${ARCHS}do if [ "${ARCH}" == "i386" ]; then PLATFORM="iPhoneSimulator" EXTRA_CONFIG="--arch=i386 --disable-asm --enable-cross-compile --target-os=darwin --cpu=i386" EXTRA_CFLAGS="-arch i386" EXTRA_LDFLAGS="-I${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk/usr/lib -mfpu=neon" else PLATFORM="iPhoneOS" EXTRA_CONFIG="--arch=arm --target-os=darwin --enable-cross-compile --cpu=cortex-a9 --disable-armv5te" EXTRA_CFLAGS="-w -arch ${ARCH} -mfpu=neon" EXTRA_LDFLAGS="-mfpu=neon" fi mkdir -p "${INTERDIR}/${ARCH}" ./configure --prefix="${INTERDIR}/${ARCH}" --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-iconv --disable-bzlib --enable-avresample --sysroot="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk" --cc="${DEVELOPER}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --as='/usr/local/bin/gas-preprocessor.pl' --extra-cflags="${EXTRA_CFLAGS} -miphoneos-version-min=${SDKVERSION} -I${OUTPUTDIR}/include" --extra-ldflags="-arch ${ARCH} ${EXTRA_LDFLAGS} -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk -miphoneos-version-min=${SDKVERSION} -L${OUTPUTDIR}/lib" ${EXTRA_CONFIG} --enable-pic --extra-cxxflags="$CPPFLAGS -I${OUTPUTDIR}/include -isysroot ${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk" make && make install && make clean donemkdir -p "${INTERDIR}/universal/lib"cd "${INTERDIR}/armv7/lib"for file in *.adocd ${INTERDIR}xcrun -sdk iphoneos lipo -output universal/lib/$file -create -arch armv7 armv7/lib/$file -arch armv7s armv7s/lib/$file -arch i386 i386/lib/$fileecho "Universal $file created."donecp -r ${INTERDIR}/armv7/include ${INTERDIR}/universal/echo "Done."
把/build/built/universal目录下的 lib 和 include 文件导入工程,并在header search path 配置 include文件 路径。