手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2012-12-16] 来源:Linux社区  作者:shaobin0604 [字体: ]

编译过程参考在 Mac OS X 下使用 Android NDK r5b 编译 FFmpeg 0.8

1.下载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

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款