4

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のすべての投稿を読みましたが、何も役に立ちませんでした。私が間違っていることを教えてください。私にリンクを投稿しないでください: 私を信じてください、私はそれらすべてを見ました!

4

3 に答える 3

3

これは、iOS 5.0 と Snow Leopard でうまくいきました。Xcode が別のフォルダーに移動されたため、ldflags、sysroot、および cc を変更して、Mountain Lion のファイルへの有効なパスを提供する必要があります。

./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
于 2012-09-13T10:38:56.513 に答える
2

ルートコンパイルconfig.logディレクトリ内のファイルを調べて、「Cコンパイラテストに失敗しました。」を検索します。試行されたコマンドと失敗した正確な理由(つまり、コンパイラ出力)がすぐそこにあります。

コンパイラのインストールディレクトリが/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/でないか、一部のライブラリが見つからないなどの可能性があります。

実際、私が見ているのは、configureコマンドラインでいくつかのパスを指定しているということです。Xcodeのバージョンに適していることを確認しましたか?

于 2012-09-13T10:23:52.490 に答える
1

ffmpeg 11 が必要な場合 Snow leopard または lion を使用する必要がある場合があります。Mountain lion には重要な gcc コンパイラ コンポーネントが不足しているようです。このためのビルド スクリプトの修正を検討しています。

バージョンがそれほど重要でない場合は、ffmpeg 8 用に事前に構築されたフレームワークがあります。実際には、2 つの使用に大きな違いはなく、ffmpeg 8 の方がパフォーマンスの問題が少ないことがわかります。

https://github.com/mooncatventures-group/ffmpegDecoder

ライオンまたはユキヒョウのビルド ボックスがある場合は、おそらくビルド スクリプトを変更して ffmpeg 11 をビルドできます。他の人はこれを行っています。

于 2012-09-18T19:39:42.127 に答える