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库。






   

    

1 0
原创粉丝点击