详解-FFmpeg2.7移植android-(一)- 源码编译
来源:互联网 发布:matlab矩阵转置 编辑:程序博客网 时间:2024/06/08 08:01
声明,本文章源于网络上解决方案的参考和说明
需求:
Linux环境(本人用的虚拟机,linux 14.04)
make工具(自行安装,可以下载离线包,也可以git,不过才装的linux不带git,可以安上,这个很常用)
android NDK(注意是for linux,我的版本是r9c,下载后解压)
FFmpeg2.7源码(可以下载Linux包,也可以git官方获取最新版,目前为2.7,若是下载的需解压)
步骤:
0.需改configure文件,将下面4行
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
替换为
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
1.在FFmpeng源码根目录下创建build_android.sh文件便于生成FFmpeg的配置
内容如下:
注意在linux用到了$HOME,其他模拟linux环境可能用的是/home,该脚本执行了configure文件,其参数的意义可以从./configure --help中获得
说明注意参数:
prefix 输出目录$PERFIX--->$(pwd)/android/$ARCH--->./android/arm
enable-shared 生成.so共我们的androi程序调用
disablea-ffserver android用不着
disablea-doc 不生成文档,提示生成的速度
enable-cross-compile 启用交叉编译
cross-prefix 交叉编译前缀,比如你的是/bin/,那么它就会把gcc编译器设置为/bin/gcc,如果没找到$(cross-prefix)gcc文件,执行构建时肯定会找不到GCC编译器
target-os 当前OS
arch 目标构架
2.给build_android.sh添加执行权限
chmod +x build_android.sh
3.执行build_android.sh,叫上sudo是启用root权限执行,会请求密码,输入时不会显示
sudo ./build_android.sh
执行成功会生成几个文件,其中含有config.h
4.修改config.h
将
#difine av_restrict restirct
改为
#define av_restrict
#define restrict
即他们在源码中都无实际意义
4.执行make命令
sudo make
会执行一段时间,生成了很多.o和.d文件
5.执行make install
sudo make install
执行完后,在android/arm/bin下会找到生成的.so和.h文件
至此FFmpeg已经完全生成我们需要的.so库,这些库和.h将会在我们后续的android工程中用到
0 0
- 详解-FFmpeg2.7移植android-(一)- 源码编译
- 详解-FFmpeg2.7移植android-(二)- FFmpeg库测试
- Android NDK 编译移植FFmpeg2.5
- android ndk r9 移植 live555 ffmpeg2.0 sdl2.0.1最新库整合编译
- android移植之编译android源码
- 用NDKr9编译最新ffmpeg2.0.1(ffmpeg2.0.2)到android平台
- 用NDKr9编译最新ffmpeg2.0.1(ffmpeg2.0.2)到android平台
- 用NDKr9编译最新ffmpeg2.0.1(ffmpeg2.0.2)到android平台
- 用NDKr9编译最新ffmpeg2.0.1(ffmpeg2.0.2)到android平台
- 用NDKr9编译最新ffmpeg2.0.1(ffmpeg2.0.2)到android平台
- linux下编译libjingle源码(android移植)
- mac下编译ffmpeg2.6.3入门笔记一
- ubuntu下载编译android源码(一)
- Ubuntu上编译android源码(一)
- 编译android源码一(设置环境)
- 用NDKr9编译最新ffmpeg2.0.1到android平台
- 用NDKr9编译最新ffmpeg2.0.1到android平台
- 用NDKr9编译最新ffmpeg2.0.1到android平台
- 解决adb连接不上问题
- 分享百万皇后求解
- linux如何安装jdk
- 一些自己用得着的SQL语句!
- 让linux默认启动到命令行的方法
- 详解-FFmpeg2.7移植android-(一)- 源码编译
- 使用 Spring Boot 快速构建应用服务
- swift type identify 类型检查
- 黑马程序员_多线程技术
- Java基础之I/O详解(二)类库设计模式
- 【华为oj】挑7
- root上传
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- Go开发环境的搭建和HelloWold工程的建立