使用NDK编译ffmpeg

测试编译平台为linux,首先去ffmpeg官网下载linux版本ffmpeg并解压缩,本人编译版本为2.6.9。需要下载linux版本ndk并解压缩,版本为r10e。
修改修改下载目录中的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)'

下面附上我改好的configure文件,直接覆盖原文件即可:点击下载
编写shell脚本直接生成类库

#!/bin/bash
make clean
export NDK=/usr/ndk/android-ndk-r10e
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-marm"

./configure --target-os=linux \
--prefix=$PREFIX --arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install

下面附上我写好的shell脚本文件点击下载
注意:shell脚本的名字为sh
编译生成

把shell脚本放入ffmpeg目录里面,也就是和configure文件在同一个目录,直接运行脚本就会生成我们需要的库文件,运行命令 ./脚本名称。

注意:我们的ffmpeg的文件可能没有权限运行,使用 chmod 777 -R ffmpeg使ffmpeg文件加下的所有文件获得最高权限

编译成功后会出现一个android文件夹,包含的是arm平台的动态库,我们只需要取出ffmpeg八大模块对应大版本库就行了
这里写图片描述
你会发现android目录下还有一个include文件夹,那是我们生成的头文件。

易错点

有时候我们传入shell脚本并不能运行,可能我们的文件格式不对,需要使用dos2unix把格式转换(linux下)。
shell脚本的NDK变量代表我们下载NDK并解压后的目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值