作者sinread (电脑真耗钱)
看板MacDev
标题Re: [问题] ffmpeg + iphone
时间Thu Mar 24 13:10:24 2011
※ 引述《tocute (小飘)》之铭言:
: 你好 小弟最近刚好也想在 mac 上编译 ffmpeg
: 刚好看到你有相关的经验
: 前来讨教
: 我在网路上看到
: http://www.waterworld.com.hk/zh-hant/blog/how-compile-ffmpeg-iphone
: 他说要先安装 http://github.com/yuvi/gas-preprocessor/
: 可是我在这一步就有问题了 当我 perl gas-preprocessor.pl
: 他就说 unrecognized input file type
: 请问你是透过什麽方式编译 ffmpeg 呢
: 再请教 在mac 上编译跟在iphone 上编译 ffmpeg 有什样的不同呢??
: 谢谢你的指导
: ※ 引述《sinread (电脑真耗钱)》之铭言:
: : 目前已知的是 "/usr/local/lib" 是ffmpeg build时候预设的目的目录
: : 当程式开启时候, 由於我的link library是设定require,
: : 所以会马上去load libavcodec,
: : 但是奇怪的是, 明明我project内部就是使用libavcodec.a,
: : 但是我用otool -L 去看build出来的binary的时候,
: : 却看到里面的path 却是 /usr/local/lib/libavcodec.dylib,
: : 请问我的project设定需要改什麽地方??
Build iDevice用的ffmpeg for armv7
我是把gas-preprocessor放在ffmpeg下面
写个script如下
#!/bin/tcsh -f
if (! -d armv7) mkdir armv7
rm armv7/*.a
make clean
./configure --disable-doc --disable-ffmpeg --disable-ffplay
--disable-ffserver --enable-cross-compile --arch=arm --target-os=darwin
--cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
--as='gas-preprocessor/gas-preprocessor.pl
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc'
--sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk
--cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7'
--enable-pic --disable-encoders --disable-decoders --enable-decoder=h264
--disable-parsers --enable-parser=h264 --disable-protocols --disable-network
--enable-hardcoded-tables --disable-bsfs --disable-devices --disable-filters
--enable-fastdiv --disable-aandct --disable-rdft --disable-mdct --disable-fft
--disable-encoders --disable-amd3dnow --disable-amd3dnowext --disable-altivec
--disable-mmx --disable-mmx2 --disable-sse --disable-mmi --disable-neon
--disable-vis --disable-bsfs --disable-mpegaudio-hp
make
mv libavcodec/libavcodec.a armv7/
mv libavcore/libavcore.a armv7/
mv libavdevice/libavdevice.a armv7/
mv libavformat/libavformat.a armv7/
mv libavfilter/libavfilter.a armv7/
mv libavutil/libavutil.a armv7/
mv libswscale/libswscale.a armv7/
打完收工
上面script的重点在於
1. --as='gas-preprocessor/gas-preprocessor.pl
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' 记得
指定gas-preprocessor.pl 的位置
2. --cpu=cortex-a8 这个如果是armv6的话要换 (还有其他很明显的要换)
3. --sysroot 的地方 要注意你的sdk在哪里
最後xcode的project 要指定 header search 和 library search的地方
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.219.26.209
1F:推 tocute:可是我遇到 gcc is unable to create an executable file 04/13 17:52
2F:→ tocute:不知你有遇到过吗 ?? 04/13 17:52
3F:推 jack7923love: 需要将这个档案的权限打开最高级 chmon777? 08/18 03:41