環境:CentOS6.2——64位 在根目錄下建立work檔案夾:cd / && mkdir worka) 先把要用到的安裝包下載到本地: FFmpeg:git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg 一定要看好下載對應本地系統的軟體包版本。建立好的目錄結構是:work/ffmpeg work/android-ndk-r8bb)配置環境變數:(可以省略)export ANDROID_NDK_HOME=/work/android-ndk-r8bexport PATH=$ANDROID_NDK_HOME:$PATHc) 進入ffmpeg目錄,建立config.sh檔案,並將下面的文字部分寫入檔案:[plain] export ANDROID_NDK=/work/android-ndk-r8b export TOOLCHAIN=/work/tmp/ffmpeg export SYSROOT=$TOOLCHAIN/sysroot/ $ANDROID_NDK/build/tools/make-standalone-toolchain.sh --platform=android-14 --install-dir=$TOOLCHAIN export PATH=$TOOLCHAIN/bin:$PATH export CC=arm-linux-androideabi-gcc export LD=arm-linux-androideabi-ld export AR=arm-linux-androideabi-ar CFLAGS="-O3 -Wall -mthumb -pipe -fpic -fasm \ -finline-limit=300 -ffast-math \ -fstrict-aliasing -Werror=strict-aliasing \ -fmodulo-sched -fmodulo-sched-allow-regmoves \ -Wno-psabi -Wa,--noexecstack \ -D__ARM_ARCH_5__ -D__ARM_ARCH_5E__ \ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5TE__ \ -DANDROID -DNDEBUG" EXTRA_CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=softfp -mvectorize-with-neon-quad" EXTRA_LDFLAGS="-Wl,--fix-cortex-a8" FFMPEG_FLAGS="--prefix=/tmp/ffmpeg/build \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --cc=arm-linux-androideabi-gcc \ --cross-prefix=arm-linux-androideabi- \ --enable-shared \ --disable-symver \ --disable-doc \ --disable-ffplay \ --disable-ffmpeg \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-avfilter \ --disable-encoders \ --disable-muxers \ --disable-filters \ --disable-devices \ --disable-everything \ --enable-protocols \ --enable-parsers \ --enable-demuxers \ --disable-demuxer=sbg \ --enable-decoder=h264 \ --enable-bsfs \ --enable-network \ --enable-swscale \ --enable-asm \ --enable-version3" ./configure $FFMPEG_FLAGS --extra-cflags="$CFLAGS $EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" make clean make -j4 make install 當然,configure的參數可以根據自己的需要指定。d) 執行檔案:./config.sh這時候可能就會出現各種各樣的問題了,不要慌,看看config.log檔案,這時候如果有類似/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 這種問題,這時候就要藉助google大神了,萬能的google,程式員的福音,好像是缺少什麼庫依賴,沒關係,執行 yum install alibc.i686問題似乎可以解決了,接下來繼續執行./config.sh又報出錯誤:/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/as: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory一大堆,不過不要緊,有萬能的google在,好像是缺少了zlib,好,跟前面一樣執行yum install zlib.i686可能會提示安裝失敗什麼的,這時候就要去官網下載最新版本的zlib了:http://zlib.net/下載後解壓,進入目錄後依次執行./configuremakemake install這時候問題看似都解決了,不過我的機器報出錯了,lib檔案安錯位置了,configure預設安裝到了/usr/local/lib裡,沒關係,這時候設定一個軟連結就好了:mv ./lib/libz.so.1 ./lib/libz.so.1_backupln -s /usr/local/lib/libz.so.1 ./lib/libz.so.1再次進入ffmpeg目錄執行:./config.sh如果問題沒有解決,提示mysql什麼的,告訴你一個狠招yum install mysql-embedded.i686^ o ^ 這下沒問題了,執行./config.sh……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………漫長的編譯過程……最終大功告成,進入/tmp/ffmpeg/sysroot/usr裡就看到了你想得到的標頭檔和庫檔案,而對應的ffmpeg所有的lib檔案夾下也產生了對應的.so檔案。