`
android_mylove
  • 浏览: 382029 次
社区版块
存档分类
最新评论

Android多媒体开发(2)————使用Android NKD编译原版FFmpeg

 
阅读更多

/********************************************************************************************
* author:conowen@大钟
* E-mail:conowen@hotmail.com
* 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内容如下:


然后在cygwin跳到ffmpeg目录下,执行成功之后会生成config.h,config.log,config.mak等文件,可以通过查看config.h,是否开启成功了。

如我的上面的config.sh里面时开启了neon汇编优化选项,所以在config.h可以发现以下语句后面的值为1,表示开启。


注意:

后面的

表示在config.h里面,把HAVE_SYMVER 0修改为1。


3.3、编写Android.mk文件



最终会在myplayer目录下的libs目录下生产一个libffmpeg.so文件。大概3~6M左右





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics