Android android-ndk-r8b 编译 FFMPEG 2.5

测试机器:

Vmware9.0 + Fedora10

1.创建/opt/Qt4Android目录

2.下载android-ndk-r8b-linux-x86.tar.bz2,并解压到/opt/Qt4Android

3.下载ffmpeg-2.5.tar.bz2,并解压到/opt/Qt4Android

4.配置ffmpeg

a.cd ffmpeg-2.5 进入/opt/Qt4Android/ffmpeg-2.5目录

    创建config.sh文件,文件内容如下:

********************************

#!/bin/sh
export PREBUILT=/opt/Qt4Android/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86
export PLATFORM=/opt/Qt4Android/android-ndk-r8b/platforms/android-14/arch-arm
export TMPDIR=/opt/Qt4Android/ffmpeg_android/tmp

 ./configure \
 --target-os=linux \
 --arch=arm \
 --enable-ffmpeg \
 --disable-ffplay \
 --disable-ffprobe \
 --disable-ffserver \
 --disable-avdevice \
 --disable-avfilter \
 --disable-postproc \
 --disable-swresample \
 --disable-avresample \
 --disable-symver \
 --disable-debug \
 --disable-stripping \
 --disable-yasm \
 --disable-asm \
 --enable-gpl \
 --enable-version3 \
 --enable-nonfree \
 --disable-doc \
 --enable-static \
 --disable-shared \
 --enable-cross-compile \
 --prefix=/opt/Qt4Android/ffmpeg_android \
 --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
 --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
 --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
 --extra-cflags="-fPIC -DANDROID -I$PLATFORM/usr/include" \
 --extra-ldflags="-L$PLATFORM/usr/lib -nostdlib"  
   
 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    
 sed -i 's/HAVE_CBRT 0/HAVE_CBRT 1/g' config.h    
 sed -i 's/HAVE_CBRTF 0/HAVE_CBRTF 1/g' config.h    
 sed -i 's/HAVE_ISINF 0/HAVE_ISINF 1/g' config.h    
 sed -i 's/HAVE_ISNAN 0/HAVE_ISNAN 1/g' config.h    
 sed -i 's/HAVE_SINF 0/HAVE_SINF 1/g' config.h    
 sed -i 's/HAVE_RINT 0/HAVE_RINT 1/g' config.h  
 sed -i 's/#define av_restrict restrict/#define av_restrict/g' config.h

***********************************

b.文件config.sh加上可执行选项,chmod 777 config.sh

c.执行配置文件

    ./config.sh

    过程可能会有告警信息,可以忽略,如果是错误信息就需要处理了。

d. 执行make ,编译ffmpeg2.5

编译时出现了错误信息,错误处理

注释/opt/Qt4Android/android-ndk-r8b/platforms/android-14/arch-arm/usr/include/stdlib.h文件,

54行 extern char *getenv(const char *);

修改/opt/Qt4Android/ffmpeg-2.5/libavutil/time_internal.h文件,

26行static inline struct tm *gmtime_r(const time_t* clock, struct tm *result) 整个函数注释

37行static inline struct tm *localtime_r(const time_t* clock, struct tm *result)整个函数注释

编译成功。

e.执行make install ,安装ffmpeg2.5的头文件和静态库文件到/opt/Qt4Android/ffmpeg_android。

编译好的库文件和头文件可以用来开发android 应用程序。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值