我正在尝试为iOS5编译ffmpeg库。我尝试了不同的选择但没有效果。
我下载了这个:https://github.com/ciphor/ffmpeg4ios。
我尝试了原始的build_armv7,但它没有用。我编辑了build_arm7文件,现在它看起来像这样:
#!/bin/tcsh -f
if (! -d armv7) mkdir armv7
if (! -d lib) mkdir lib
rm armv7/*.a
make clean
./configure --disable-network --disable-mpegaudio-hp --disable-lpc --disable-vaapi
--disable-vdpau --disable-hwaccels --disable-mmx --disable-mmx2 --disable-sse
--disable-ssse3 --disable-avx --disable-amd3dnow --disable-amd3dnowext --disable-vis
--disable-mmi --disable-doc --disable-yasm --disable-ffmpeg --disable-ffplay
--disable-ffprobe --disable-ffserver --disable-rdft --disable-dxva2 --disable-encoders
--disable-decoders --enable-decoder=h264 --disable-bsfs --disable-protocols
--disable-indevs --disable-outdevs --disable-devices --disable-filters --disable-demuxers --enable-demuxer=h264
--disable-muxers --disable-parsers --enable-parser=h264 --enable-cross-compile --arch=arm
--target-os=darwin
--cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 --as='gas-preprocessor/gas-preprocessor.pl /Aplications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2'
--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk --cpu=cortex-a8
--extra-cflags='-pipe -Os -gdwarf-2 -issysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -m${thumb_opt:-no-thumb}
-mthumb-interwork' --extra-ldflags='-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk' --enable-pic
make
mv libavcodec/libavcodec.a armv7/
mv libavdevice/libavdevice.a armv7/
mv libavformat/libavformat.a armv7/
mv libavutil/libavutil.a armv7/
mv libswscale/libswscale.a armv7/
rm lib/*.a
cp armv7/*.a lib/
但是我收到了这个错误:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2无法创建可执行文件。 C编译器测试失败。
我在互联网上看了一遍。我已经阅读了关于stackoverflow的所有帖子,但没有人帮助我。请告诉我我做错了什么,请不要发布链接:相信我,我看到了所有这些!
答案 0 :(得分:3)
这适用于iOS 5.0和Snow Leopard。 您必须更改ldflags,sysroot和cc以提供Mountain Lion中文件的有效路径 因为Xcode被移动到另一个文件夹。
./configure \
--extra-ldflags=-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/system \
--disable-muxers \
--disable-demuxers \
--disable-devices \
--disable-parsers \
--disable-protocols \
--disable-filters \
--disable-bsfs \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-avfilter \
--disable-avformat \
--disable-ffserver \
--disable-decoders \
--disable-encoders \
--disable-network \
--enable-decoder=h261 \
--enable-decoder=h263 \
--enable-decoder=h263p \
--enable-encoder=h261 \
--enable-encoder=h263 \
--enable-encoder=h263p \
--enable-cross-compile \
--enable-hardcoded-tables \
--enable-memalign-hack \
--enable-neon \
--arch=arm \
--target-os=darwin \
--cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc \
--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk \
--cpu=cortex-a8 \
--extra-cflags='-arch armv7 -mno-thumb -mfpu=neon -mfloat-abi=softfp' \
--extra-ldflags='-arch armv7 -mno-thumb -mfpu=neon -mfloat-abi=softfp' 2>&1 | tee configure.log
make clean
make
答案 1 :(得分:2)
检查根编译目录中的config.log
文件并搜索“C编译器测试失败。”您将在那里找到尝试过的命令及其失败的确切原因(即编译器输出)
可能是编译器安装目录不是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/,或者找不到某些库等... < / p>
实际上,我看到你在configure
命令行中指定了几条路径。你有没有检查过他们的Xcode版本是否正确?
答案 2 :(得分:1)
如果你需要ffmpeg 11 你可能需要使用雪豹或狮子,山狮似乎缺少关键的gcc编译器组件。我们正在考虑修复我们的构建脚本
如果版本对您来说不是那么重要,我们有一个预先构建的ffmpeg 8框架,真的 我们发现使用这两者之间并没有发现任何重大差异,并且发现ffmpeg 8的性能问题较少。
https://github.com/mooncatventures-group/ffmpegDecoder
如果你有一个带有狮子或雪豹的构建盒,你可以修改我们的构建脚本并构建ffmpeg 11,其他人已经这样做了。