Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android NDK 編譯FFmpeg(不需要復雜的環境變量設置)

Android NDK 編譯FFmpeg(不需要復雜的環境變量設置)

編輯:關於Android編程

環境: CentOS6.2——64位   在根目錄下創建work文件夾:cd  / && mkdir work a) 先把要用到的安裝包下載到本地:   FFmpeg:git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg   一定要看好下載對應本地系統的軟件包版本。 創建好的目錄結構是:work/ffmpeg    work/android-ndk-r8b b)配置環境變量:(可以省略) export ANDROID_NDK_HOME=/work/android-ndk-r8b export PATH=$ANDROID_NDK_HOME:$PATH c) 進入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/ 下載後解壓,進入目錄後依次執行 ./configure make make install 這時候問題看似都解決了,不過我的機器報出錯了,lib文件安錯位置了,configure默認安裝到了/usr/local/lib裡,沒關系,這時候設置一個軟鏈接就好了: mv ./lib/libz.so.1 ./lib/libz.so.1_backup ln -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文件。  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved