FFMPEG移植到Android

我是在window 7系统上开发的,总之问题多多,查了很多的博客,按照别人的一步一步来都不行,ndk试过r9的,没成功,后面换成了r10的,虽然步骤很简单 ,但是整整弄了三天,直到今天才编译出.so文件,真心有点小激动。
1.准备:
(1) vmware 12.1.1.6932。
http://sw.bos.baidu.com/sw-search-sp/software/d34ff7ffac8/VMware-workstation_full_12.1.1.6932.exe

(2)ubuntu-16.04-desktop-amd64。
http://cn.ubuntu.com/download/

(3)android-ndk32-r10b-linux-x86_64.tar.bz2
http://wear.techbrood.com/tools/sdk/ndk/index.html

(4)ffmpeg-3.1.2.tar.bz2
https://ffmpeg.org/download.html

2.安装好vmware,创建虚拟机,不知道的可以网上查 ,很多相关教程。
进入到ubuntu系统下面,默认有个火狐浏览器,下载好nkd和ffmpeg压缩包文件。创建一个文件,把ndk和ffmpeg解压到改文件夹下面。
解压命令:

tar jxvf FileName.tar.bz2

这里写图片描述
解压后就是这样子的,解压有我把ffmpeg-3.1.2改成了ffmpeg,感觉等一下敲命令的时候可以容易点。

3.打开ffmpeg文件夹,修改里面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)'

4.在ffmpeg文件下,新建一个build_android.sh文件,填写如下内容:

#!/bin/bash
NDK=/home/lwm/lwm/android-ndk-r10b
SYSROOT=$NDK/platforms/android-L/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPU=arm
PREFIX=../simplefflib
ADDI_CFLAGS="-marm"
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--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

其中需要改成你自己的NDK、SYSROOT和TOOLCHAIN路径,PREFIX是指生成的.so文件放在这里。编辑完后保存文件。

5.通过命令窗口,进入到ffmpeg文件下,通过cd 命令来进入。然后给build_android.sh文件权限,命令为:

sudo chmod +x build_android.sh

输入密码后,执行build_andorid.sh文件,命令为:

./build_android.sh 

后面会等五分钟的样子,编译完后在ffmpeg同级目录下生成一个simplefflib文件,里面包括:一个include和lib。lib里面就是生成的.so文件。
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值