1. 到https://github.com/gabriel/ffmpeg-iphone-build下载ffmpeg-iphone-build
2.先将gas-preprocessor.pl拷贝到/usr/sbin/目录中。
3.到这里下载最新的ffmpeg:http://ffmpeg.org/download.html
下载一个事例工程:git clone git://github.com/lajos/iFrameExtractor.git
然后到命令行下到ffmpeg的目录下,执行:
自己修改一下对应自己的SDK就可以了,我这儿是4.2
这个是模拟器的
./configure --disable-doc --disable-ffmpeg --disable-ffplay--disable-ffserver --disable-avfilter --disable-debug--disable-encoders
--enable-cross-compile --disable-decoders --disable-armv5te--enable-decoder=h264 --enable-pic
--cc=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc--as='gas-preprocessor/gas-preprocessor.pl
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc'
--extra-ldflags=-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/system
--sysroot=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk--target-os=darwin --arch=i386
--cpu=i386 --extra-cflags='-arch i386' --extra-ldflags='-arch i386'--disable-asm
---------------------------------------------------
这个是真机的
./configure --
cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
--as='gas-preprocessor.pl
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc'--
sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPh
oneOS4.2.sdk --extra-ldflags=-
L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.
2.sdk/usr/lib/system --target-os=darwin --arch=arm--cpu=cortex-
a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7'--
enable-pic --enable-cross-compile --enable-ffmpeg --disable-
ffplay --disable-ffserver --disable-asm --disable-encoders--
disable-decoders --enable-decoder=h264 --enable-decoder=mjpeg--
enable-decoder=mpeg4 --disable-doc
注意了,上面有--disable-asm\,这是没办法的,禁用了汇编,这样应该是会影响效率的,如果不禁用就编译不通过。谁有更好的办法不禁用,麻烦分享一下。
一般是ok的,如果提示permission deny,那就chmod 777configure(这个情况是我同事在windows上改了这个文件)
然后就make,完了再make install一下,如果出现权限不够使用 sudo makeinstall,然后输入密码;
如果给代码做了修改,就先make clean,然后make一下
使用Finder,前往文件夹,输入/usr/local
然后把lib和include放到你的工程中,你可以在你的工程根目录下创建一个叫ffmpeg的文件夹,把lib和linclude里面的东西放进去
工程中制定head file path:"$(SRCROOT)/ffmpeg/include"
工程中制定library file path:"$(SRCROOT)/ffmpeg/lib"
然后,打开iFrameExtractor这个工程,在ffmpeg这个文件夹建一个lib文件夹,把之前拷贝(就这个cp -rf lib*/src)出来的.a文件全部丢进去。为什么要这么做呢?应为iFrameExtractor里面的ffmpeg版本比较老,所以我没有编译它,没有编译,就不会产生一个lib文件夹。
然后在link binary with library中导入这些.a文件和libbz.2.1.0.dylib。
然后插上真机,运行工程,ok,成功啦!!!
ffmpeg configure参数说明:
Usage: configure [options]
Options: [defaults in brackets after descriptions]
Standard options: 基本选项参数
--help
--log[=FILE|yes|no]
--prefix=PREFIX
--libdir=DIR
--shlibdir=DIR
--incdir=DIR
--mandir=DIR
--enable-mp3lame
--enable-libogg
--enable-vorbis
--enable-faad
--enable-faadbin
--enable-faac
--enable-libgsm
--enable-xvid
--enable-x264
--enable-mingw32
--enable-mingwce
--enable-a52
--enable-a52bin
--enable-dts
--enable-pp
--enable-static
--disable-static
--enable-shared
--disable-shared
--enable-amr_nb
--enable-amr_nb-fixed
--enable-amr_wb
--enable-amr_if2
--enable-sunmlib
--enable-pthreads
--enable-dc1394
--enable-swscaler
--enable-avisynth
--enable-gpl
Advanced options (experts only): 高级选项参数(供专业人员使用)
--source-path=PATH
--cross-prefix=PREFIX
--cross-compile
--cc=CC
--make=MAKE
--extra-cflags=ECFLAGS
--extra-ldflags=ELDFLAGS 添加ELDFLAGS到LDFLAGS(默认-Wl,--as-needed)| addELDFLAGS to LDFLAGS [ -Wl,--as-needed]
--extra-libs=ELIBS
--build-suffix=SUFFIX
--arch=ARCH
--cpu=CPU
--powerpc-perf-enable
--disable-mmx
--disable-armv5te
--disable-iwmmxt
--disable-altivec
--disable-audio-oss
--disable-audio-beos
--disable-v4l
--disable-v4l2
--disable-bktr
--disable-dv1394
--disable-network
--disable-ipv6
--disable-zlib
--disable-simple_idct
--disable-vhook
--enable-gprof
--disable-debug
--disable-opts
--disable-mpegaudio-hp
--disable-protocols
--disable-ffserver
--disable-ffplay
--enable-small
--enable-memalign-hack
--disable-strip
--disable-encoder=NAME
--enable-encoder=NAME
--disable-decoder=NAME
--enable-decoder=NAME
--disable-encoders
--disable-decoders
--disable-muxer=NAME
--enable-muxer=NAME
--disable-muxers
--disable-demuxer=NAME
--enable-demuxer=NAME
--disable-demuxers
--enable-parser=NAME
--disable-parser=NAME
--disable-parsers