Linux NDK 编译 FFMPEG

UNIX NDK 编译 FFMPEG

编写此文章主要是本人对编译FFmpeg过程中的一些注意事项进行总结和记录,便于以后需要用到时少走冤枉路。废话不多说进入主题!

准备工作
    虚拟机:VMware Workstation
    操作系统: Ubuntu 10.10
    NDK:android-ndk-r10d
    FFmpeg:FFMpeg3.2

假定我认为你已经安装好系统及NDK,如未安装请移步:Linux–Ubuntu安装NDK

所有准备工作做好后我们开始编译FFmpeg,编译FFmpeg有如下几步:

1、解压   将下载好的ffmpeg-3.2.tar.bz2拷贝到根目录下,打开命令终端(ctrl+alt+T) 输入命令进行解压:

tar -xjvf ffmpeg-3.2.tar.bz2

2、修改configure文件配置   进入ffmpeg-3.2目录打开configure文件找到如下代码并替换

BNAME_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之后保存即可。
修改好之后

3、新建build_android.sh文件   在ffmpeg-3.2目录下新建build_android.sh文件并打开,配置如下代码:

#!/bin/bash
export NDK=/home/lichengwei/android-ndk-r10d
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt
export PLATFORM=$NDK/platforms/android-21/arch-arm
export PREFIX=../simplefflib
function build_one(){
./configure \
--target-os=linux --prefix=$PREFIX \
--enable-cross-compile \
--enable-runtime-cpudetect \
--disable-asm \
--arch=arm \
--cc=$PREBUILT/linux-x86/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/linux-x86/bin/arm-linux-androideabi- \
--disable-stripping \
--nm=$PREBUILT/linux-x86/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--enable-gpl --enable-shared --disable-static --enable-small \
--disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-debug \
--extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a"
}

build_one
make
make install

大概是这个样子:
大概是这个样子
将配置中的NDK路径修改成你安装的NDK实际路径。切记千万不要有多余的空格,我就是因为配置中有空格导致编译失败N次。simplefflib目录你可以不用管,因为他会自动创建。确认OK之后咱们进行下一步!

4、开始编译   在终端进入ffmpeg-3.2目录

#小提示:输入ff的时候按一下Tab键可自动补充
cd ffmpeg-3.2\

将build_android.sh文件设置为可执行文件,

chmod +x build_android.sh

输入ls回车当build_android.sh变成绿色字体表示设置成功
打开命令窗口

输入以下命令开始编译ffmpeg

./build_android.sh

出现以下界面表示编译正常,正常情况下会编译几分钟至十来分钟左右,如果出现异常可根据异常信息进行百度、谷歌。
正在编译

编译完成后,根目录下会生成simplefflib文件加,所有编译的文件将保存在该目录下,如图:
编译完成

编译完成,祝您成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值