ffmpeg移植android中 测试成功

经过两天努力 终于成功移植FFMPEG0.7.6到 ADNROID中 下面是在移植过程遇到的问题 ,欢迎转载 请注明出处

tools:  

ffmpeg-0.7.6
   android-ndk-r4b
   ubuntu 10.11
路径:root\android\android-ndk-r4b\
samples\FFMPEG\jni\ffmpeg-0.7.6
移植过程需要注意几点 :
 1 :修改libavutil/libm.h中静态方法 前面的static全部去掉
 2:修改ffmpeg-0.7.6中./config.sh执行后的config.h文件中的 一些标志 如下:
  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_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
  sed -i 's/HAVE_SYMVER 1/HAVE_SYMVER 0/g' config.h
  sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
  sed -i 's/#define restrict restrict/#define restrict  /g' config.h
 3: 出现如下错误
  /home/chf0001/android-ndk/android-ndk-r5/samples/ffmpeg/obj/local/armeabi/libavutil.a(inverse.o):(.rodata+0x0): multiple definition of `ff_inverse'
/home/chf0001/android-ndk/android-ndk-r5/samples/ffmpeg/obj/local/armeabi/libavcodec.a(inverse.o):(.rodata+0x0): first defined here
 直接修改libavcodec/Makefile,把下面一行删掉:
 OBJS-$(!CONFIG_SMALL)                  += inverse.o
 4:分别把libavutil、libavcodec、libavformat、libavfilter、libpostproct和libswscale下的Makefile文件中下面两行删除掉:
 include $(SUBDIR)../subdir.mak
 include $(SUBDIR)../config.mak
 5:需要记住在ffmpeg-0.7.6下面创建av.mk
 6:若用ndk-r4b 最后生成的ffmpeg.so是 1.6k,则需要在build/core/build-binary.mk中的添加whole_satatic_libraries定义
 7:以上各点必需正确做到准确无误,有一个出错编绎不会成功,正常的ffmpeg.so>=3.2M.上述原因就不多说了.这是我这一两天来出现问题的总结 希望对大家有所帮助,下面我将上传各目录下面的 Android.mk.如果你的环境和我一样 可以直接用.

Android.mk文件地址
 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值