title: ffmpeg for android build - is it complete
body: <p>//EDIT save time and refer to the <a href="http://sourceforge.net/projects/ffmpeg4android/" rel="nofollow">SF project</a> . IMO, it may save a ton of work getting up to speed.....</p>
  
  <p>after more work on this issue:</p>
  
  <p>added a git <a href="https://github.com/rowntreerob/android-ffmpeg" rel="nofollow">project</a></p>
  
  <p>build is easier with custom toolchain installed so that you can invoke <a href="http://source-android.frandroid.com/ndk/docs/STANDALONE-TOOLCHAIN.html" rel="nofollow">compiler the easy way</a></p>
  
  <p>sample stdout from <a href="http://pastebin.com/y04cmXBM" rel="nofollow">ndk-build</a></p>
  
  <p>--
  originally used ubuntu 12.04 inside vmplayer on windows vista. IMO linux is better for builds than cygwin.</p>
  
  <p>I follow these <a href="http://www.roman10.net/how-to-build-ffmpeg-for-android/comment-page-5" rel="nofollow">instructions</a> getting a indeterminant outcome in which the following conditions exist.</p>
  
  <blockquote>
    <p>build_android.sh seems to exit normally<br>
    config.log has error where confirming gcc from crosstoolchain<br>
    all the static libs are built ok
       (./libavfilter, ./libavcodec etc )<br>
    ffmpeg.o is there and executes ok<br>
    no  ./android directory as per the prefix setting to config</p>
  </blockquote>
  
  <p>it looks like i can just push the binaries to my phone and test in a shell. If that's ok then i can look to a jni wrapper for the static libs.</p>
  
  <p>But why didn't the build write anything to --prefix=./android/armv7-a  ??
  that path does not exist at the conclusion of the build</p>
  
  <p>Details:</p>
  
  <p>config log what was processed:</p>
  
  <pre><code>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'
  </code></pre>
  
  <p>tail of config log contains error on compiler check</p>
  
  <pre><code>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.
  </code></pre>
  
  <p>tail of build_android.sh stdout looks OK</p>
  
  <pre><code>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
  </code></pre>