[原创]Android ndkr8编译 FFmpeg 0.11.1 "Happiness"

本文详细介绍了如何在Fedora 16系统中使用Android NDK版本ndk-r8和FFMPEG版本0.11.1进行编译,并解决了在编译过程中可能遇到的问题,包括添加环境变量、创建文件夹结构、编写Android.mk文件以及执行编译命令。同时,提供了多个参考资料以帮助解决常见问题。
[size=medium]编译环境:
Host:Fedora16
Ndk: ndk-r8
ffmpeg:0.11.1

ndk下载和ffmpeg下载:
ndk下载链接:
[url]http://developer.android.com/tools/sdk/ndk/index.html[/url]
ffmpeg链接
[url]http://ffmpeg.org/download.html[/url]
通过以下命令下载
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

配置一下环境变量:
vim ~/.bash_profile
添加以下两行
NDK_ROOT=/home/chenxiang/ndk/android-ndk-r8b
export NDK_ROOT

我的目录是
~/ndk/android-ndk-r8b
在下面的samples中新建FFMPEG文件夹。再在FFMPEG中新建jni文件夹。

在jni下面新建Android.mk文件,附录中有下载。

然后cd $NDK_ROOT
执行./ndk-build NDK_PROJECT_PATH=$NDK_ROOT/samples/FFMPEG
就可以开始编译了。

中间可能会遇到没有.h文件的错误,只要
在ffmpeg目录下运行
[color=red]cat libavcodec/avcodec.h | libavcodec/codec_names.sh config.h libavcodec/codec_names.h[/color]

最后编译好的so文件在附件中
[/size]

参考资料
[url]http://stackoverflow.com/questions/7782389/undefined-reference-ffmpeg-on-android-ndk[/url]
[url]http://stackoverflow.com/questions/5337833/ffmpeg-on-android-undefined-references-to-libavcodec-functions-although-it-is[/url]
[url]http://bbs.rosoo.net/thread-13749-1-1.html[/url]
[url]http://blog.youkuaiyun.com/kurama_sai/article/details/7211295[/url]
[url]http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html[/url]
[url]http://abitno.me/compile-ffmpeg-android-ndk[/url]
[url]http://www.cnblogs.com/binsys/articles/2073538.html[/url]
[url]http://blog.youkuaiyun.com/perfectpdl/article/details/6932696[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值