NDK 编译 ffmpeg_2.0

下载最新的 ffmpeg 2.0版本

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg


去http://sourceforge.net/projects/ffmpeg4android/ 网站下载 ffmpeg4android项目里的几个 makefile 文件

地址:http://sourceforge.net/u/faywong/ffmpeg4android/ci/master/tree/makefiles/

NDK 编译 ffmpeg_2.0_第1张图片

但是这几个文件是得配合Android源码一起用的,比较麻烦还得下源码, 在这个网站上又找到了一份,只用NDK就可以编译的makefile文件

地址:http://sourceforge.net/u/pelya/ffmpeg4android/ci/master/tree/makefiles/

NDK 编译 ffmpeg_2.0_第2张图片


如果想编译ffmpeg 1.2 版本以前的话 就可以直接用这几个makefile文件了

我测试了一下ffmpeg 1.1版本是可行的


现在我们有了两份 makefile 文件  然后我们根据下载的第二份makefile文件去修改 下载的第一份makefile文件

我修改的可以到这里下载:

http://download.csdn.net/detail/yukuilongqq/5924999


然后创建一个项目目录  如ffmpeg_2.0_test

cd ffmpeg_2.0_test

创建 jni文件夹  mkdir jni

cd jni

把ffmpeg 2.0 源码ffmpeg文件夹移到 jni目录下

cd ffmpeg 

然后把修改完的那三个文件复制到ffmpeg目录下

NDK 编译 ffmpeg_2.0_第3张图片


回到ffmpeg_2.0_test目录下创建 Application.mk 和 Android.mk 两个文件


NDK 编译 ffmpeg_2.0_第4张图片

Application.mk内容如下



主要指定编译平台


Android.mk 内容如下



用来引用 ffmpeg目录下的 Android.mk文件


好了所有的makefile 文件整理完了,接下来开始编译

进入 jni目录 cd jni

运行 ndk-build

ffmpeg 2.0 就开始编译了 ,途中回报两处错误,分别修改 ffmpeg源码如下

1,文件位于 ffmpeg/compat/strtod.c

double avpriv_strtod函数 改为 static double avpriv_strtod

2,文件位于 ffmpeg/libavformat/unix.c

添加头文件 #include <linux/socket.h>

修改完后编译一切顺利


NDK 编译 ffmpeg_2.0_第5张图片


NDK 编译 ffmpeg_2.0_第6张图片


你可能感兴趣的:(android,ffmpeg,NDK)