2

//時間を節約して編集し、SFプロジェクトを参照します。IMO、それはスピードを上げるためにたくさんの仕事を節約するかもしれません.....

この問題にさらに取り組んだ後:

gitプロジェクトを追加しました

カスタムツールチェーンをインストールするとビルドが簡単になるため、コンパイラを簡単に呼び出すことができます

ndk-buildからのサンプルstdout

--元々はWindowsVistaのvmplayer内でubuntu12.04を使用していました。IMO linuxは、cygwinよりもビルドに適しています。

私はこれらの指示に従い、次の条件が存在する不確定な結果を取得します。

build_android.shは正常に終了するようです
config.logにエラーがあり、crosstoolchainからgccを確認すると
、すべての静的ライブラリが正常にビルドされます(./libavfilter、./libavcodecなど)
ffmpeg.oがあり、
okno./androidディレクトリを実行します。設定のプレフィックス設定

バイナリを携帯電話にプッシュして、シェルでテストできるようです。それでよければ、静的ライブラリのjniラッパーを探すことができます。

しかし、なぜビルドは--prefix = ./ android/armv7-aに何も書き込まなかったのですか?? そのパスはビルドの終了時に存在しません

詳細:

構成ログ処理内容:

FFMPEG_CONFIGURATION='--target-os=linux --prefix=./android/armv7-a 
--enable-libvpx --enable-libvorbis --enable-pthreads --logfile=config.log
--enable-cross-compile --extra-libs=-lgcc --arch=arm 
--cc=/home/rob/src/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc 
--cross-prefix=/home/rob/src/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- 
--nm=/home/rob/src/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-nm 
--sysroot=/home/rob/src/android-ndk-r8/platforms/android-14/arch-arm/ --extra-cflags='"'"' -O3 -fpic 
-DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums 
-fno-strict-aliasing -finline-limit=300 -mfloat-abi=softfp  -marm -march=armv7-a -mtune=cortex-a9 '"'"' 
--disable-shared --enable-static --extra-ldflags='"'"'
-Wl,-rpath-link=/home/rob/src/android-ndk-r8/platforms/android-14/arch-arm//usr/lib -L/home/rob/src/android-ndk-r8/platforms/android-14/arch-arm//usr/lib 
-nostdlib -lc -lm -ldl -llog'"'"' 
--disable-everything --enable-demuxer=mov --enable-demuxer=h264 
--disable-ffplay --enable-protocol=file 
--enable-avformat --enable-avcodec --enable-decoder=rawvideo 
--enable-decoder=mjpeg --enable-decoder=h263 --enable-decoder=mpeg4 
--enable-decoder=h264 --enable-parser=h264 --disable-network --enable-zlib --disable-avfilter --disable-avdevice'

構成ログの末尾にコンパイラチェックのエラーが含まれています

zmbv_test='yes'
zmbv_test_deps='zlib'
WARNING: /home/rob/src/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
mktemp -u XXXXXX
Yd2A0h
WARNING: Unknown C compiler /home/rob/src/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc, unable to select optimal CFLAGS
check_ld cc
check_cc
BEGIN /tmp/ffconf.m9Kg3cqt.c
    1   int main(void){ return 0; }
END /tmp/ffconf.m9Kg3cqt.c
/home/rob/src/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 -mfloat-abi=softfp -marm -march=armv7-a -mtune=cortex-a9 -c -o /tmp/ffconf.tO2EIBz5.o /tmp/ffconf.m9Kg3cqt.c
./configure: 640: ./configure: /home/rob/src/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: not found
C compiler test failed.

build_android.shstdoutのテールは問題ないようです

libavutil/opt.c: In function ‘av_find_opt’:
libavutil/opt.c:41:5: warning: ‘av_next_option’ is deprecated (declared at libavutil/opt.h:347) [-Wdeprecated-declarations]
CC  libavutil/pixdesc.o
libavutil/opt.c: In function ‘av_opt_set_defaults’:
libavutil/opt.c:601:5: warning: ‘av_opt_set_defaults2’ is deprecated (declared at libavutil/opt.h:370) [-Wdeprecated-declarations]
CC  libavutil/random_seed.o
CC  libavutil/rational.o
CC  libavutil/rc4.o
CC  libavutil/samplefmt.o
CC  libavutil/sha.o
CC  libavutil/timecode.o
CC  libavutil/tree.o
CC  libavutil/utils.o
CC  libavutil/x86/cpu.o
INSTALL libavdevice/avdevice.h
INSTALL presets/libvpx-1080p50_60.ffpreset
INSTALL presets/libvpx-1080p.ffpreset
INSTALL presets/libvpx-360p.ffpreset
INSTALL presets/libvpx-720p50_60.ffpreset
INSTALL presets/libvpx-720p.ffpreset
INSTALL presets/libx264-ipod320.ffpreset
INSTALL presets/libx264-ipod640.ffpreset
INSTALL doc/ffprobe.xsd
INSTALL libavdevice/libavdevice.pc
INSTALL libavfilter/asrc_abuffer.h
INSTALL libavfilter/avcodec.h
INSTALL libavfilter/avfilter.h
INSTALL libavfilter/avfiltergraph.h
INSTALL libavfilter/buffersink.h
INSTALL libavfilter/version.h
INSTALL libavfilter/vsrc_buffer.h
INSTALL libavfilter/libavfilter.pc
INSTALL libavformat/avformat.h
INSTALL libavformat/avio.h
INSTALL libavformat/version.h
INSTALL libavformat/libavformat.pc
INSTALL libavresample/avresample.h
INSTALL libavresample/version.h
INSTALL libavresample/libavresample.pc
INSTALL libavcodec/avcodec.h
INSTALL libavcodec/avfft.h
INSTALL libavcodec/dxva2.h
INSTALL libavcodec/vaapi.h
INSTALL libavcodec/vda.h
INSTALL libavcodec/vdpau.h
INSTALL libavcodec/version.h
INSTALL libavcodec/xvmc.h
INSTALL libavcodec/libavcodec.pc
INSTALL libswresample/libswresample.pc
INSTALL libswresample/swresample.h
INSTALL libswscale/swscale.h
INSTALL libswscale/libswscale.pc
INSTALL libavutil/adler32.h
INSTALL libavutil/aes.h
INSTALL libavutil/attributes.h
INSTALL libavutil/audio_fifo.h
INSTALL libavutil/audioconvert.h
INSTALL libavutil/avassert.h
INSTALL libavutil/avstring.h
INSTALL libavutil/avutil.h
INSTALL libavutil/base64.h
INSTALL libavutil/bprint.h
INSTALL libavutil/bswap.h
INSTALL libavutil/common.h
INSTALL libavutil/cpu.h
INSTALL libavutil/crc.h
INSTALL libavutil/error.h
INSTALL libavutil/eval.h
INSTALL libavutil/fifo.h
INSTALL libavutil/file.h
INSTALL libavutil/imgutils.h
INSTALL libavutil/intfloat.h
INSTALL libavutil/intfloat_readwrite.h
INSTALL libavutil/intreadwrite.h
INSTALL libavutil/lfg.h
INSTALL libavutil/log.h
INSTALL libavutil/lzo.h
INSTALL libavutil/mathematics.h
INSTALL libavutil/md5.h
INSTALL libavutil/mem.h
INSTALL libavutil/dict.h
INSTALL libavutil/opt.h
INSTALL libavutil/parseutils.h
INSTALL libavutil/pixdesc.h
INSTALL libavutil/pixfmt.h
INSTALL libavutil/random_seed.h
INSTALL libavutil/rational.h
INSTALL libavutil/samplefmt.h
INSTALL libavutil/sha.h
INSTALL libavutil/timecode.h
INSTALL libavutil/timestamp.h
INSTALL libavutil/avconfig.h
INSTALL libavutil/libavutil.pc
AR  libavdevice/libavdevice.a
AR  libavfilter/libavfilter.a
AR  libavformat/libavformat.a
AR  libavresample/libavresample.a
AR  libavcodec/libavcodec.a
AR  libswresample/libswresample.a
AR  libswscale/libswscale.a
AR  libavutil/libavutil.a
INSTALL libavdevice/libavdevice.a
INSTALL libavfilter/libavfilter.a
INSTALL libavresample/libavresample.a
INSTALL libswresample/libswresample.a
INSTALL libswscale/libswscale.a
INSTALL libavutil/libavutil.a
INSTALL libavformat/libavformat.a
LD  ffmpeg_g
INSTALL libavcodec/libavcodec.a
CP  ffmpeg
STRIP   ffmpeg
INSTALL install-progs-yes
INSTALL ffmpeg
4

3 に答える 3

4

「notfound」エラーは、arm-linux-androideabi-gccが見つからないことを示しているわけではなく、おそらく誤ったフラグが原因で、arm-linux-androideabi-gccからエラーが返されています。--cross-prefixが正しく設定されているので、-cc行と--nm行を削除できます。クロスプレフィックスを少し変更すると(たとえば、-を最後から外す)、notfoundエラーがあいまいさの少ないエラーに変わることがわかります。

余分なcflagsの「-DANDROID-mfloat-abi=softfp -marm -march = armv7-a」以外のすべてを削除し、クレイジーな余分な引用符を削除して、コンパイルされるかどうかを確認してください。

于 2012-07-03T16:11:23.780 に答える
0

これはあなたが従ったガイドが言うことです:

スクリプトの実行が完了すると、ffmpeg-0.8ディレクトリの下にandroidというフォルダーが作成されます。このフォルダーには、ビルドのすべての出力が含まれています。

于 2012-05-19T21:04:30.967 に答える
0

標準の「build_android.sh」の2つの項目を変更して、少なくとも$PREFIXに従ってターゲットディレクトリに出力を取得します。

変更の簡略リスト

NDK=/home/rob/src/android-ndk-r8
PLATFORM=$NDK/platforms/android-8/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
export PATH=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/:$PATH

..。

mkdir -p $PREFIX
..
make clean
  1. エクスポート2.ターゲットディレクトリを作成します

私が元のFAQで不満を言ったコンパイラチェックはまだそこにあります...

/home/rob/src/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gccは実行可能ファイルを作成できません。Cコンパイラのテストに失敗しました。

しかし、正しいフォルダーに出力バイナリを取得したので、それらを電話に移動し、シェルのCLIからテストして、電話で再生されるWEBMファイルを作成できるかどうかを確認します。

于 2012-05-21T03:08:45.573 に答える