注:我實在Ubuntu中編譯的,配置ndk環境 ,可參考我的另一個文章:http://www.cnblogs.com/x-bing/p/5394496.html
1.到FFmpeg官方網站http://www.ffmpeg.org/上去下載源代碼
選擇”Download”進入下載頁面,
選擇該下方的”Downloadgzip tarball”進行下載

2.將下載的文件通過共享文件夾方式從windows系統copy到ubuntu系統中
具體操作可參考筆者另一篇文檔:http://www.cnblogs.com/x-bing/p/5217804.html
3.在ubuntu系統中 將ffmpeg文件copy到你想要操作的工作目錄,隨便新建一個即可
如筆者的操作目錄:/home/zhaobing/Date
4.解壓文件:ffmpeg-3.0.1.tar.bz2
進入當前操作目錄再解壓,如圖所示:

之后修改ffmpeg-3.0.1/configure文件
如果直接按照未修改的配置進行編譯,結果編譯出來的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)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
5.進入解壓的文件目錄並創建文件build_android.sh文件,
如圖:
build_android.sh具體類容如下:
#!/bin/bash
NDK=$NDK_HOME:紅色字體修改真正的NDK安裝目錄
echo It is ok
SYSROOT=$NDK_HOME/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86
export NDK
export SYSROOT
export TOOLCHAIN
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffserver \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
注意修改NDK_HOME為你們安裝的ndk目錄
6從命令行進入該目錄
並給該文件添加可執行屬性:chmod +x build_android.sh
然后運行該文件生成config.h文件
后調用以下命令編譯:
- make
- make install
完成之后,在ffmpeg-2.2目錄下生成一個android目錄,其中/home/dennis/ffmpeg-2.2/android/arm/lib目錄下的so庫文件如下:

