原文:http://www.jb51.cc/article/p-xyabmdzp-ben.html
首先默认你的电脑已经配置好了ndk环境。
一、编译x264
1.下载x264
http://www.videolan.org/developers/x264.html
将下载下来的压缩包解压,我这里是解压到download目录下x264文件夹
1.在终端下进入x264目录:
cd /home/kim/download/x264(换成你自己的路径)
2. 在x264文件夹下建立build_x264.sh
gedit build_x264.sh
export NDK=/home/kim/Android-ndk
export PREBUILT=$NDK/toolchains/arm-Linux-androideabi-4.9/prebuilt
export PLATFORM=$NDK/platforms/android-21/arch-arm
export PREFIX=/home/kim/download/x264
./configure --prefix=$PREFIX \
--enable-static \
--enable-pic \
--disable-asm \
--disable-cli \
--host=arm-linux\
--cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \
--sysroot=$PLATFORM
4.在终端中输入
make
OK!一切顺利的话,你将会在x264文件夹下看到一个libx264.a的文件,编译成功!
…………………………………………………………error………………………………………………………………
当然,编译的过程有些人并非能一帆风顺,比如我就在make 的时候遇到一个错误:no working c compiler found x264,网上搜了很多方法,都没有解决。后来不得不去看config.log日志。发现是在配置-cross-prefix路径的时候填错了,编译的时候找不到路径。修改正确后,OK,编译通过!
所以,习惯看日志有多重要!!!
如果以上还是没能解决您的问题,这里留下我在编译的时候参考的文章,供您参考:
http://www.jb51.cc/article/p-odqhzzwn-qm.html
http://blog.csdn.net/seafit/article/details/46815263
http://www.jb51.cc/article/p-kocelkfe-bbt.html
二、编译ffmpeg
如果直接按照未修改的配置进行编译,结果编译出来的so文件类似libavcodec.so.55.39.101,版本号位于so之后,Android上似乎无法加载。因此需要按如下修改:
将该文件中的如下四行:
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
替换为:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
编写build_android.sh脚本文件