Android NDK 編譯FFmpeg(不需要複雜的環境變數設定)

來源:互聯網
上載者:User

環境: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檔案。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.