当前位置:操作系统 > 安卓/Android >>

Ubuntu 10.10 64bit下使用Android NDK r6编译FFmpeg 0.8.1

 

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

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,