/********************************************************************************************
* author:conowen@大钟
* E-mail:[email protected]
* http://blog.csdn.net/conowen
* 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。
********************************************************************************************/
首先说明一点,此FFmpeg时官方原版,没有实现JNI层与java层,个人推荐使用移植havlenapetr的FFMpeg工程,已经实现了实现JNI层与java层,工作量少很多。
havlenapetr的FFMpeg工程编译可以参考我的博文:http://blog.csdn.net/conowen/article/details/7526398
一、编译环境说明
系统:windows 7 (64bit)+cygwin
NDK版本:android-ndk-r7b(windows)
FFmpeg版本:FFmpeg 0.10.2 "Freedom"
二、安装工具
2.1、安装cygwin的时候,默认为在线安装
当出现Select Packages对话框时,搜索“devel”,为了以防万一,把安装选项“default”更改为“install”,安装所以必须的编译工具。然后进入漫长的下载状态,差不多一两个小时,接下来的步骤默认就行。
2.2、安装Android NDK
安装完cygwin后,去到其安装目录,可以发现有一个“home”目录,里面有一个“当前windows用户名”的文件夹,就相当于linux系统下面的/home/userName了。然后把Android NDK(windows版本)安装到home目录下的那个“当前windows用户名”文件夹中。
2.3、配置NDK环境变量
在home目录下的那个“当前windows用户名下,用文本编辑器打开“.bash_profile”文件,在后面加入如下配置信息
2.4、完毕
打开cygwin,执行
三、编译FFmpeg
3.1、在http://ffmpeg.org/download.html网站可以下载最近的FFmpeg源码包,也可以通过git clone方式下载。
然后在windows系统中,随便在一个地方新建一个目录,如“myplayer”,在其下新建一个名为“jni”的目录,然后把下载回来的FFmpeg源码包解压在这里,文件名可以命名为“ffmpeg”。
3.2、下载下来的FFmpeg是一份纯C&C++的代码,为了编译它,需要configure,来配置所需要的模块和开启哪些功能,然后才能make。
在ffmpeg里面新建一个config.sh批处理文件,来实现configure。
config.sh内容如下:
如我的上面的config.sh里面时开启了neon汇编优化选项,所以在config.h可以发现以下语句后面的值为1,表示开启。
注意:
后面的
表示在config.h里面,把HAVE_SYMVER 0修改为1。3.3、编写Android.mk文件