ffmpeg编译过程(三)-->编译
来源:互联网 发布:木马编程 编辑:程序博客网 时间:2024/06/06 01:07
这篇文章主要介绍编译这一步骤。
1.首先得对shell脚本有所了解
shell脚本是Linux系统的外壳,为用户提供了使用操作系统的接口。他是命令语言、命令解释程序、以及程序设计语言的统称。
这边文章先不介绍shell脚本的编写,直接先用起来吧。
2.既然不介绍shell脚本的编写,那就先从网上下载一个脚本吧。(当然我自己有)
3.上传build_android.sh到ffmpeg-2.6.9文件夹下。
这个过程也有很多坑。。
--这个从window下编写的build_android .sh是window的编码,即便你已经成功上传,但是在Linux下也编译不了
--你在明明看到build_android.sh文件,但是使用./build_android.sh 的时候会报找不到文件的错误
解决这个问题呢有两种方式(推荐使用第二种)
a)在xshell下新建build_android.sh 文件 -->touch build_android.sh 这个时候就是Linux系统的编码
将新建的build_android.sh文件(空的)拷贝到window下编辑好后再重新上传
b).上传window下写好的build_android.sh 文件到Linux,利用 dos2unix 软件将window编码转为Linux编码。
你会发现dos2unix这个软件并没有,(又需要安装-->sudo apt-get install dos2unix )
然后直接执行命令:dos2unix 将整个文件夹下的文件都更变编码方式
5.如果还有一些权限问题的话都可以自己解决了。
6.编译
./build_android.sh
执行这个命令之后皆可以发现在build了,
编译完成后再ffmpeg-2.6.9 目录下会出现一个android目录。
android
*arm
*include
*lib
如下:
7.走到这里你以为就成功编译了吗??哈哈,,错误的,你可以发现lib 目录下出现很多.so.56这样的文件,还有大版本和小版本的区分。。
这样的文件在Android里面是不能用的。。编译失败了吗??其实已经基本成功了只需要更改一个配置就行了。在ffmpeg-2.6.9的目录下有这么一个文件
叫做configure。在build_adroid.sh脚本中引用了这个文件。修改这个文件(如下图修改)文件后,重新上传,再次编译,你会发现你想要的东西真的成功了。
8.总结
关于build_andoid.sh 这个脚本内容如下:
#!/bin/bash
make clean
export NDK=/usr/ndk/android-ndk-r10d
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-marm"
./configure --target-os=linux \
--prefix=$PREFIX --arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
一定注意格式,一个不小心就会报错。。
之后会带来怎么使用编译好了的so库。
- ffmpeg编译过程(三)-->编译
- 编译ffmpeg的过程
- Ffmpeg编译过程
- ffmpeg编译过程
- ffmpeg 编译笔记(三)
- 基于NDK编译ffmpeg库(三)
- ffmpeg编译过程(二)-->Linux下的编译常用命令
- 编译链接过程(三)
- ffmpeg windows下编译过程
- mingw中编译ffmpeg过程
- android studio编译ffmpeg过程
- FFMPEG 零基础编译过程
- 参照文章“ubuntu 10.04 编译ffmpeg”编译ffmpeg的 过程
- 三、gcc编译过程
- ffmpeg编译(一)
- ffmpeg编译(二)
- android编译过程详解(三)
- Android编译过程详解(三)
- linux exercise 13
- Mysql 经典8小时问题
- 1006. 换个格式输出整数 (15)
- angularjs 使用中的积累
- restful架构
- ffmpeg编译过程(三)-->编译
- JavaScript-02-优先级/提取行间事件
- Win7、Ubuntu双系统正确卸载Ubuntu系统
- linux 重写Tomcat启停脚本
- Android中使用Java开源库Javassist动态创建字节码的学习研究
- TTL和CMOS集成电路输入端接电阻的两种情况
- 判断邮件地址是否合法
- SpringMVC mvc:interceptor拦截器配置
- java分页工具封装