Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Linux下NDK編譯FFMPEG包含neon參數,ndkffmpeg

Linux下NDK編譯FFMPEG包含neon參數,ndkffmpeg

編輯:關於android開發

Linux下NDK編譯FFMPEG包含neon參數,ndkffmpeg


FFMPEG編譯成Android庫已經有很多案例了,編譯優化neon的也很多,以下是我通過實踐成功的案例,這裡主要講編譯的配置文件,其他設置可結合Linux下使用NDK編譯FFMPEG(libstagefright)進行配置。

config_android.sh

NDK=/opt/android/android-ndk-r9
PLATFORM=$NDK/platforms/android-14/arch-arm/  
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
LOCAL_ARM_NEON=true  
CPU=armv7-a  
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon"
PREFIX=$(pwd)/android/$CPU

./configure --target-os=linux \
    --prefix=$PREFIX \
    --enable-cross-compile \
    --arch=arm \
    --enable-nonfree \
    --enable-asm \
    --cpu=armv7-a \
    --enable-neon \
    --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
    --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
    --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
    --sysroot=$PLATFORM \
    --extra-cflags="-fpic -DANDROID $OPTIMIZE_CFLAGS " \
    --enable-shared \
    --disable-static \
    --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog" \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --enable-avformat \
    --enable-avcodec \
    --disable-optimizations \
    --disable-debug \
    --disable-doc \
    --disable-stripping \
    --enable-pthreads \
    --disable-yasm \
    --enable-zlib \
    --enable-pic \
    --enable-small

關鍵的幾個參數是

    --enable-asm \
    --cpu=armv7-a \
    --enable-neon \
    --arch=arm \
    --enable-cross-compile \
    --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog" \
  --extra-cflags="-fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp -I$NDKROOT/platforms/android-9/arch-arm/usr/include" \

有一篇博客的參數"--extra-ldflags"是一大串的,而且還很多人copy,不知道他們是不是真的都成功了,反正我是沒成功

--extra-ldflags="-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x -Wl,-rpath-link=$NDKROOT/platforms/android-9/arch-arm/usr/lib -L$NDKROOT/platforms/android-9/arch-arm/usr/lib -nostdlib $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/crtbegin.o $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/crtend.o -lc -lm -ldl"

把黃色背景這部分去掉就可以了,也沒弄懂這部分是干嘛用的,如果有知道的大神,有不啬這一點時間的,請留言指點一下,先收下我的膝蓋!

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved