lonelysoul

Happy share, happy life.

导航

成功编译ffmpeg库 (模拟器版本)

前言:

最近处于离职状态,很想进同学那家公司,但是那唯一的职位必须是要会ffmpeg库的使用,我连编译都没有通过 - -,现在趁有时间整一下。

这次只编译了模拟器版本。

1、我把ffmpeg库放在~/Documents/下,打开终端,命令行进入Documents下,执行:

lonelysoul:Documents Michael $ git clone git://source.ffmpeg.org/ffmpeg.git ~/ffmpeg依靠你的网速确定下载速度;

2、下载完成之后,命令行进入ffmpeg文件夹下,执行:

lonelysoul:ffmpeg Michael $./configure --prefix=i386 --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-avresample --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk" --target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc" --extra-cflags="-arch i386 -mfpu=neon" --extra-ldflags="-arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk" --arch=i386 --cpu=i386 --enable-pic --disable-asm

PS:我电脑上iOS SDK的版本是7.1

执行以上代码时我遇到了这样的错误提示:c compiler test failed。经常查各种资料,在这里发现了问题所在,xcode5默认使用的是clang,因此修改命令,如下:

3、lonelysoul:ffmpeg Michael $./configure --prefix=i386 --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-avresample --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk" --target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc" --extra-cflags="-arch i386 -mfpu=neon -miphoneos-version-min=7.1" --extra-ldflags="-arch i386 -miphoneos-version-min=7.1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk" --arch=i386 --cpu=i386 --enable-pic --disable-asm

继续执行它,经过几分钟的时间,编译结束了,我收到大概的信息如下:

.........

Enabled indevs:

avfoundation lavfi

Enabled outdevs:

License: LGPL version 2.1 or later

Creating config.mak, config.h, and doc/config.texi...

WARNING: pkg-config not found, library detection may fail.

lonelysoul:ffmpeg Michael$

我也不知道有没有成功,只是警告而已,我也就没有去理会它,继续执行以下命令:

5、lonelysoul:ffmpeg Michael$ make clean && make && make install

如果不出意外,这里会非常的耗时,大概花了8分钟时间在编译

......

INSTALL libavdevice/libavdevice.a

INSTALL libavfilter/libavfilter.a

INSTALL libavformat/libavformat.a

INSTALL libavcodec/libavcodec.a

INSTALL libavresample/libavresample.a

INSTALL libswresample/libswresample.a

INSTALL libswscale/libswscale.a

INSTALL libavutil/libavutil.a

....

最后面无任何警告和错误,这应该算编译成功。

最后在~/Documents/ffmpeg/i386/lib/ 下可以看到有好多个静态库

 

相关链接:

http://blog.csdn.net/whf727/article/details/18089261

http://stackoverflow.com/questions/6854190/ffmpeg-integration-on-iphone-ipad-project/15429359#15429359

http://cdbit.com/read/how-to-build-ffmpeg-libraries-for-ios.html

http://www.cnblogs.com/smileEvday/p/ffmpeg.html

http://blog.csdn.net/nogodoss/article/details/19126651

http://blog.csdn.net/wangwei0327/article/details/8469556

posted on 2014-06-18 03:00  lonelysoul  阅读(517)  评论(0编辑  收藏  举报