Ubuntu 10.10 64bit下使用Android NDK r6編譯FFmpeg 0.8.1 – Android移動開發技術文章_手機開發 Android移動開發教學課程

 

1.下載NDK r6和FFmpeg 0.8.1

Android NDK r6

FFmpeg 0.8.1

2.解壓縮

android-ndk-r6-linux-x86.tar.bz2 解壓到/home/pekall/opt 目錄下,並將NDK的路徑加入到PATH環境變量中

ffmpeg-0.8.1.tar.gz 解壓到/home/pekall/Projects_private/FFmpegPlayer/lib 目錄下

將目錄/home/pekall/Projects_private/FFmpegPlayer/lib/ffmpeg-0.8.1 重命名為/home/pekall/Projects_private/FFmpegPlayer/lib/jni

3.編寫FFmpeg配置腳本

在目錄/home/pekall/Projects_private/FFmpegPlayer/lib/jni下新建腳本文件config.sh,並加上可執行權限。

 

./configure \

    –disable-static \

    –enable-shared \

    –enable-gpl \

    –enable-version3 \

    –enable-nonfree \

    –disable-doc \

    –disable-ffmpeg \

    –disable-ffplay \

    –disable-ffprobe \

    –disable-ffserver \

    –disable-avdevice \

    –disable-avfilter \

    –disable-postproc \

    –enable-small \

    –cross-prefix=/home/pekall/opt/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- \

    –enable-cross-compile \

    –target-os=linux \

    –extra-cflags='-I/home/pekall/opt/android-ndk-r6/platforms/android-9/arch-arm/usr/include' \

    –extra-ldflags='-L/home/pekall/opt/android-ndk-r6/platforms/android-9/arch-arm/usr/lib -nostdlib' \

    –arch=arm \

    –disable-symver \

    –disable-debug \

    –disable-stripping \

   

sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h

sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h

sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h

sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h

sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h

sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h

以下幾個屬性需要根據ndk安裝的位置做相應的修改

 

cross-prefix

extra-cflags

extra-ldflags

4.編寫Android.mk文件

可以通過這個鏈接獲得,內容和參考的文件完全相同

 

5.生成FFmpeg配置文件

打開終端,在/home/pekall/Projects_private/FFmpegPlayer/lib/jni目錄下執行config.sh

 

6.編譯FFmpeg

打開終端,在/home/pekall/Projects_private/FFmpegPlayer/lib目錄下執行ndk-build,編譯完成之後會在/home/pekall/Projects_private/FFmpegPlayer/lib/libs/armeabi目錄下生成大約5.4M的文件libffmpeg.so

發佈留言