ffmpeg移植Android方法以及常见问题汇总:
1.在ffmpeg官网下载源码包,比如ffmpeg-2.3。在ffmpeg目录下增加Android.mk 和av.mk config.sh三个文件。
2.config.sh用于配置ffmpeg环境脚本,可键入
#!/bin/sh
PREBUILT=...android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
PLATFORM=...android-ndk-r7b/platforms/android-14/arch-arm
exportTMPDIR=.../ tmp
./configure--target-os=linux \
--arch=arm\
--enable-cross-compile\
--cc=$PREBUILT/bin/arm-linux-androideabi-gcc-4.4.3\
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi-\
--nm=$PREBUILT/bin/arm-linux-androideabi-nm\
--extra-cflags="-fPIC-DANDROID" \
--enable-static\
--disable-shared\
--disable-asm\
--disable-yasm\
--extra-ldflags="-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib$PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/crtbegin.o$PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/crtend.o -lc -lm -ldl"
PREBUILT、PLATFORM、TMPDIR是需要修改的,配置自己的ndk路径,通常这一步出错概率极高。TMPDIR路径一定要存在且可以访问。
常见错误:
arm-linux-androideabi-gccis unable to create an executable file,一般是tmp文件没有设置。
UnknownC compiler/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/ arm-linux-androideabi-gcc,一般是NDK配置错误。
./config.sh:line 8: --arch: comm