linux下编译安卓ffmpeg
本次编译属于2013年6月项目的一部分,重新修改使用。
为统一工程版本
ffmpeg版本为1.2.1
本次的目录结构为
工程目录/jni/Android.mk
工程目录/jni/Application.mk
工程目录/jni/ffmpeg/(ffmpeg source code)
工程目录/jni/ffmpeg/Android.mk
工程目录/jni/ffmpeg/av.mk
工程目录/jni/ffmpeg/config.sh
工程目录/jni/ffmpeg/config.mak
工程目录/jni/jni/Android.mk
工程目录/jni/jni/FFAudioJni.cpp
工程目录/jni/jni/FFAudioCodec.h
工程目录/jni/jni/FFAudioCodec.cpp
......
1.下载ffmpeg 1.2.1 原码 ffmpeg-1.2.1.tar.bz2
2.解压到文件夹ffmpeg。跟目录下添加文件 config.sh
3.项目中需要的几个ffmpeg库为libavformat libavcodec libavutil libpostproc libswresample libswscale
所以,在ffmpeg文件夹libavformat libavcodec libavutil libpostproc libswresample libswscale这几个文件夹下各地添加一个文件Android.mk
并且各自文件夹下的Makefile的第一句include $(SUBDIR)../config.mak 使用#注释掉
即是由include $(SUBDIR)../config.mak
变成#include $(SUBDIR)../config.mak
4.ffmpeg 文件夹下,命令行运行
$ ./config.sh
$ make
$ make install
5.工程目录下运行
$ ndk-build
6. ndk-build 会报如下错误
找不到intmath.h
解决方法:将ffmpeg源码中/home/gong/android/workspace/HelloJni/jni/ffmpeg/libavutil/intmath.h 拷贝添加intmath.h到编译结果include路径下
7. ndk-build 会报如下错误
libavutil/parseutils.c:441:7: error: conflicting types for ‘av_small_strptime’
libavutil/parseutils.h:158:7: note: previous declaration of ‘av_small_strptime’ was here
原因是:
ndk-build 默认带 -I 参数。这样导致.c文件搜索路径顺序,当前路径比android sysroot路径优先。而ffmpeg 1.0 以后版本调用系统一些方法如time.h,被ffmpeg目录的time.h替代。导致错误。
参考:https://trac.ffmpeg.org/ticket/1783
http://weimingtom.iteye.com/blog/1483566
解决方法:
修改所有lib***文件夹下的Android.mk中local路径
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/..
改为
LOCAL_C_INCLUDES :=
LOCAL_C_INCLUDES += $(SYSROOT_INC)/usr/include
#LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
注释掉$(LOCAL_PATH)目录并提前sysroot的优先顺序
linux下编译安卓ffmpeg的更多相关文章
- Linux下编译安装FFmpeg
FFmpeg官网:http://www.ffmpeg.org 官网介绍 FFmpeg is the leading multimedia framework, able to decode, enco ...
- linux下编译ffmpeg 引入外部库x264
Found no assembler Minimum version is nasm-2.13 If you really want to compile without asm, configure ...
- [编译] 7、在Linux下搭建安卓APP的开发烧写环境(makefile版-gradle版)—— 在Linux上用命令行+VIM开发安卓APP
April 18, 2020 6:54 AM - BEAUTIFULZZZZ 目录 0 前言 1 gradle 安装配置 1.1 卸载系统默认装的gradle 1.2 下载对应版本的二进制文件 1.3 ...
- ubuntu下编译原生ffmpeg
本文主要介绍Linux 系统下如何编译Ffmpeg,编译环境是Ubuntu 16.04,Ffmpeg版本是3.4.2.Windows环境 下如何编译ffmpeg前面有博文介绍,也录有视频,感兴趣的同学 ...
- linux下编译gcc6.2.0
linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...
- LINUX下编译安装PHP各种报错大集合
本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...
- linux下编译安装vim7.4并安装clang_complete插件
linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...
- linux下编译出现空间不足解决办法
linux下编译出现空间不足解决办法 编译内核出现问题: AS .tmp_kallsyms1.o .tmp_kallsyms1.S:2: fatal error: when writing ...
- linux下编译安装curl
linux下编译安装curl 1.下载curl git clone https://github.com/curl/curl.git 2.在curl目录下生成configure文件 ./buldcon ...
随机推荐
- cocos2dx3.4 解析json文件
头文件: #include "json/document.h" #include "json/stringbuffer.h" #include "js ...
- Bootstrap简易使用指南
1.框架 1.1全局样式 使用HTML5的doctype,scaffolding.less中定义全局样式,从2开始使用normalize.css,并使用reset.less进行简化 1.2默认栅格系统 ...
- SQL2008附加数据库提示错误:5120
前几天在附加数据库时,出现了这个错误 在win7 x64系统上使用sql2008进行附加数据库(包括在x86系统正在使用的数据库文件,直接拷贝附加在X64系统中)时,提示无法打开文 ...
- 在安装MySQL Workbentch的时候出现如下问题,已经解决。
mysql workbench cannot be executed from a path that contains non-ASCII characters. this problem is i ...
- 如何使用 Xcode Targets 管理开发和生产版本?
在开始此教程之前,我们假设你已经完成了应用程序的开发和测试,现在准备提交生产发布.问题是,某些 Web 服务 URLs 指向测试服务器,而 API keys 则为测试环境而配置.在提交应用程序给苹果审 ...
- ASP.NET 使用mode=”InProc”方式保存Session老是丢失,无奈改成StateServer 模式。
http://blog.csdn.net/fox123871/article/details/8165431 session是工作在你的应用程序进程中的.asp.net进程.iis往往会在20分钟之后 ...
- Memcached总结三:Memcached常用命令及使用说明
一.存储命令 存储命令的格式: 1 2 <command name> <key> <flags> <exptime> <bytes> < ...
- UVALive 5903 Piece it together
一开始用的STL一直超时不能过,后来发现AC的代码基本都用的普通邻接表,然后改了一下13s,T=T,效率太低了.然后把某大神,详情戳链接http://acm.hust.edu.cn/vjudge/pr ...
- 文件过滤驱动实现目录重定向(一)good
文件过滤驱动拦截的IRP主要包括以下几个:IRP_MJ_CREATE,文件创建操作,文件的任何操作,都是从这里开始的.IRP_MJ_CLEANUP,文件的HANDLE句柄全部关闭会触发这个消息IRP_ ...
- Autodesk 2014全套密钥
AUTODESK 2014通用安装序列号: 666-69696969 667-98989898 400-45454545 066-66666666 AUTODESK 2014全系列产品密钥 001F1 ...