一、Android平台
1. 进入网址https://ffmpeg.org/download.html,下载 FFmpeg压缩包。
2. 修改FFmpeg的configure。由于编译出来的动态库文件名的版本号在.so之后(例如“libavcodec.so.5.100.1”),而android平台不能识别这样文件名,所以需要修改这种文件名。在configure文件中找到下面几行代码:
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
替换为:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
3. 新建build_ffmpeg.sh脚本,执行脚本(./build_ffmpeg.sh)
export NDK=/tmp/android-ndk-r14b
export SYSROOT=$NDK/platforms/android-16/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
PREFIX=./output
ADDI_CFLAGS="-marm"
function build_ffmpeg
{
echo "start build ffmpeg $ARCH"
./configure --target-os=linux \
--prefix=$PREFIX \
--arch=$ARCH \
--enable-shared \
--enable-static \
--disable-yasm \
--disable-asm \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--enable-pic --enable-memalign-hack \
--disable-encoders --enable-encoder=libx264 --enable-encoder=aac \
--disable-decoders --enable-decoder=h264 --enable-decoder=aac \
--disable-demuxers --enable-demuxer=mpegts \
--enable-gpl --disable-zlib --enable-nonfree --disable-debug \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--sysroot=$SYSROOT \
--extra-cflag