本文参照 http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/ 在linux下的编译,在MAC下也差不多,只需做一点点小改动,在LINUX下也可以参考。最好不要在windows下用cygwin,各种错误会搞得各种烦燥。 1、下载NDK,到 http://developer.android.com/tools/sdk/ndk/index.html#download 下载最新的NDKr9,选择Mac下的NDKr9版本,一般你的系统都是64bit的,选64bit的版本下载。查看你的系统版本可以在终端里输入 uname -a 查询 下载完,只要找个地方解压就好了,后面我们用$NDK代替解压后的全路径。
2、下载最新的ffmpeg http://www.ffmpeg.org/download.html 目前最新的release版是2.0.1. 下载后,解压到$NDK/sources文件夹下。
3、复制以下代码,在ffmpeg目录下建立build_android.sh文件 #!/bin/bash NDK=$HOME/NDK SYSROOT=$NDK/platforms/android-9/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64 #这里要注意,如果是linux换成linux-x86_64,看你的系统情况定 function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --disable-everything \ --enable-decoder=h264 \ #要什么解码器或编码器看着办 --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG make clean make make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one
做完后就可以开始编译了 在终端上运行: sudo chmod +x build_android.sh ./build_android.sh 接下来就等编完了,完了后,可以在ffmpeg/android下发现一个arm文件夹,里面有lib和include两个目录,lib里就有你想要的.so文件了。
具体怎么用这个.so,这里有个例 子,https://github.com/roman10/android-ffmpeg-tutorial 最后,祝你们好运。 (mjh1021) |