Amdroid直播开发之旅(5):详解ffmpeg编译与在Android平台上的移植

本文详细介绍了如何在Linux环境下编译ffmpeg并移植到Android平台。首先,文章讲述了在Linux环境下配置ffmpeg的编译环境,包括安装Ubuntu、NDK,以及ffmpeg的下载和解压。接着,通过编辑configure文件和执行编译命令,成功生成适用于Android的so库。然后,文章讨论了将编译好的库和头文件导入Android NDK工程的过程,并展示了在Java和C/C++层如何使用ffmpeg。最后,文章提到了Android.mk和Application.mk的配置,以及执行ndk-build生成so库的步骤。通过实例展示了ffmpeg在Android上解析视频信息的功能。
摘要由CSDN通过智能技术生成

(码字不易,转载请声明出处:http://blog.csdn.net/andrexpert/article/details/73823740)

一、ffmpeg在linux环境下的编译

1. 编译环境

(1) VirtualBox:VirtualBox_5.1.22.15126.exe
(2) Ubuntu:ubuntu-14.04.5-desktop-amd64.iso
(3) NDK:android-ndk-r14b-linux-x86_64.zip
(4) ffmpeg:ffmpeg-3.3.2.tar.bz2
      为了提高ffmpeg编译速度,这里选择在Linux环境下对其进行编译。VirtualBox安装Ubuntu比较简单,可自行查找相关资料,只是在为虚拟系统分配磁盘空间时建议大于20GB,因为NDK体积还是比较大的,默认的8GB根本不够用。其次,NDK的版本一定要与Ubuntu版本一致,我这里选择的是64位的,为什么这里要强调下,因为就是这个版本不一致问题,让我在configure ffmpeg时整整花了两天时间去找bug,只怪太相信自己的记忆力了。最后,解压NDK和ffmpeg到同一目录下即可,我的解压路径是/home/jiangdongguo/ffmpeg。
2. 配置ffmpeg
(1) 设置NDK路径
      为了方便配置configure命令的相关参数,这里我们使用export命令将NDK存储路径设置为全局的,另外,我们还需要设置一个临时目录,以便存储ffmpeg编译时产生的临时数据,当然,这里需要保证该目录已经存在且可读写。注:也可以将这两行命令放到脚本文件中。

jiangdongguo@jiangdg:~$ export NDK=/home/jiangdongguo/ffmpeg/android-ndk-r14b
jiangdongguo@jiangdg:~$ export TMPDIR=/home/jiangdongguo/ffmpeg/ffmpegTmpDir

(2) 配置ffmpeg
a) 创建执行configure命令脚本文件

root@jiangdg:/home/jiangdongguo/ffmpeg/ffmpeg-3.3.2# vim configure_arm.sh

     在创建配置ffmpeg的脚本文件时,有三个地方需要根据自身情况更改:SYSTEMROOT,用于指定ndk platform的路径,一定要选择比你的目标机器使用的版本低,比如你的手机是Android 6.0,那么需要选择android-23以下;TOOLCHAIN_PREFIX,指定编译ffmpeg编译工具链所在路径;PREFIX,用于指定编译完成后so文件输出目录,会自动在改路径目录下生成Android使用所需的include和lib目录。

     其中,--target-os选项指定目标系统类型、--arch选项指定目标系统架构、--enbale-shared、-ena

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值