美文网首页
编译Android平台的FFmpeg动态库

编译Android平台的FFmpeg动态库

作者: andev009 | 来源:发表于2018-11-21 15:25 被阅读72次

网上的教程很多了,这篇不错Android 集成 FFmpeg (一) 基础知识及简单调用,要提醒一点,按照网上的方法编译最新版的ffmpeg-4.1,会有各种问题,如果想节省时间,体验下编译的过程,最好找之前的版本编译。

亲测编译ffmpeg-3.3.2版本没有问题。这里给出ffmpeg历史版本地址,可以去找想要的版本编译:
ffmpeg历史版本

编译过程最重要就两步:
1、修改configure文件,目的是生成Android下可用的文件名。这四行

#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)'

2、编写新的编译脚本,下面给个脚本:

#!/bin/bash
export TMPDIR=/Users/name/ffmpeg/output
NDK=/Users/name/android-sdks/android-ndk-r10e
SYSROOT=$NDK/platforms/android-14/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffserver \
--disable-ffprobe \
--disable-doc \
--disable-symver \
--enable-small \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
build_one

编译后,在ffmpeg目录的android目录下会生成编译的文件夹。

相关文章

网友评论

      本文标题:编译Android平台的FFmpeg动态库

      本文链接:https://www.haomeiwen.com/subject/ksdcqqtx.html