博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android-ffmpeg编译so文件
阅读量:5989 次
发布时间:2019-06-20

本文共 2475 字,大约阅读时间需要 8 分钟。

Android中如果需要用到ffmpeg做视频处理,那么最好的方法就是从头到尾亲自从编译到集成。踏入ffmpeg的第一步自然就是通过编译得到Android中可以用的so文件

环境准备

  1. centerOS7虚拟机,提供下载centerOS7的镜像文件
  2. jdk环境,可参考
  3. android ndk 环境 ,本文是android-ndk-r13b,
  4. ffmpeg-3.2.12,

请大家按我提供的版本环境进行编译,不然会有很多坑要爬哦。本人就是一路爬坑,最后才编译成功0.0

首先

  1. 解压好ffmpeg,ndk的压缩包
tar -zxvf ffmpeg-3.2.12.tar.gz //解压ffmpegyum install -y unzip zip //安装zip压缩解压客户端unzip android-ndk-r13b-linux-x86_64.zip复制代码
  1. 配置环境变量
vi /etc/profileANDROID_NDK=/home/mmcc/android-ndk-r13bJAVA_HOME=/home/mmcc/jdk1.8PATH=$JAVA_HOME/bin:$ANDROID_NDK/bin:$PATH:.CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport JAVA_HOMEexport PATHexport CLASSPATHsource /etc/profile #生效环境变量复制代码

配置ffmpeg

  1. 进入ffmpeg创建一个临时目录ffmpegtemp
[root@master ffmpeg-3.2.12]# mkdir ffmpegtemp复制代码
  1. 配置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)'复制代码
  1. 创建编译脚本vi android_build.sh
#!/bin/bashexport TMPDIR=/home/mmcc/ffmpeg-3.2.12/ffmpegtemp  #此处替换NDK=/home/mmcc/android-ndk-r13b   #此处替换SYSROOT=$NDK/platforms/android-14/arch-arm  TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64CPU=armPREFIX=./android/$CPUADDI_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 -j4    make install}build_one复制代码

脚本文件大家可以自行去研究,可以根据需要编译自己所需的东西

  1. android_build.sh赋予执行权限
[root@master ffmpeg-3.2.12]# chmod +x android_build.sh 复制代码
  1. 执行脚本
[root@master ffmpeg-3.2.12]# ./android_build.sh 复制代码

接下来等执行完毕后,就可以在ffmpeg根目录下发现一个android目录

里面有个arm目录进去有一个includelib

include下面就是我们编译得到的ffmpeg的头文件

lib下的带版本号的so文件就是我们编译ffmpeg得到的android可用的so文件 ,接下来我们把编译到的ffmpeg文件集成到Android中

转载地址:http://kiilx.baihongyu.com/

你可能感兴趣的文章
Netflix开源类库archaius(一)概述
查看>>
10 vMotion 迁移
查看>>
我的友情链接
查看>>
Nutch、heritrix、crawler4j优缺点
查看>>
Confluence 6 使用 Velocity 宏
查看>>
Python 手记-5
查看>>
linux下搭建生成HLS所需的.ts和.m3u8文件
查看>>
cocos2d-x 生成android.mk文件路径
查看>>
Oracle 学习之---Oracle 下查看隐含参数
查看>>
Python之装饰器
查看>>
Android程序员必备精品资源
查看>>
老KING的电脑网页不能打印的解决方法
查看>>
使用yum快速搭建zabbix2.2
查看>>
快速构建Windows 8风格应用27-漫游应用数据
查看>>
CentOS安装Docker
查看>>
调用WebService获取手机号的归属地
查看>>
常用Emacs命令整理
查看>>
使用OWA发送签名加密邮件
查看>>
WM_PAINT
查看>>
工作中那些不得不注意的事儿!
查看>>