转载于http://www.cnblogs.com/shaobin0604/archive/2011/08/05/2128619.html

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

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



更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. PhoneGap 搭建Android应用环境
  6. Android中的ClassLoader
  7. Tiny210 从源代码开始创建Android
  8. Android读写文件和TextView的滚动
  9. Android(安卓)源码 URLUTIL 判断文件类型问题

随机推荐

  1. 基于 CentOS 使用 Jenkins 实现 Android(
  2. Android中自定义属性的格式详解
  3. 将war包部署到android服务器上
  4. Android —— Retrofit 请求注解分析
  5. Android killer和Apktool回编译错误No re
  6. Android记事本NotePad应用功能拓展(五)
  7. Android开发之旅:应用程序基础及组件
  8. Arduino+Android互动智作
  9. 使用adb shell dumpsys检测Android的Acti
  10. TextView 点击事件无效的完美解决