Android使用ffmpeg(一)

作者: 米奇米奇_ | 来源:发表于2019-04-08 14:05 被阅读0次

    Ubuntu下编译ffmpeg

    准备

    因为不想用虚拟机或者双系统,感觉麻烦,所以用的腾讯云服务器。

    云服务器是腾讯活动99元/年买的,配置登陆名密码什么的自己看着配置。

    配置

    别问为什么配置这么垃圾,没办法,穷。

    Xshell6 和 Xftp安装

    Xshell和Xftp个人免费下载链接

    Xshell和Xftp下载

    Xshell6

    使用Xshell的会话管理器,可以轻松地从主窗口同时创建、编辑和启动多个会话。定义多个会话属性来确定每个会话的行为。简单点说,我们可以用这个Xshell6进行登陆服务器操作,我反正不喜欢在网页上操作。

    打开Xshell6,左上角文件--->新建,然后回到云服务器信息网页找到公网IP,填入,填入完成,选择确定或者连接。


    公网IP Xshell6连接信息

    点击连接之后,输入用户名和密码登陆成功

    XFTP:

    用来在本地系统与云服务器之间文件管理简化

    Xftp打开之后左上角 文件-->新建 ,填入之后选择确定或者连接

    Xftp连接

    点击连接登陆成功

    Xftp连接成功

    Linux下常用操作大全

    Linux常用命令博客地址


    开始配置编译环境

    我这边腾讯云配好了,不想重复弄,趁阿里云还有几天,所以在阿里云上重新编译

    创建一个自己的文件夹,mkdir filename
    然后进入这个文件夹,创建一个ndk文件夹和ffmpeg文件夹,并赋予权限可以进行一些比如解压缩之类的操作

    分别下载NDK和FFMPEG


    Linux版本NDK下载链接

    FFMPEG 下载链接

    可以从官网直接下载版本,也可以直接在ubuntu下下载,这里在ubuntu下下载


    下载NDK

    进入ndk文件夹下,输入命令开始下载

    wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip

    !如果要下载其它版本的,只需要更改下载链接中的ndk版本号,即r14c即可

    下载完成后根据下载的文件格式进行解压缩

    unzip android-ndk-r14b-linux-x86_64.zip

    解压缩命令:

    下载FFMPEG

    进入ffmpeg文件夹下,输入链接开始下载

    wget http://ffmpeg.org/releases/ffmpeg-3.4.tar.gz

    !如果要下载其它版本的,只需要更改下载链接中的ffmpeg版本号,即3.4即可,为避免链接错误,可去ffmpeg下载地址查看具体文件名

    下载完成后根据下载的文件格式进行解压缩

    tar -zxvf ffmpeg-3.4.tar.gz

    ffmpeg解压完毕

    配置NDK的环境变量

    设置环境变量的三种用法

    使用命令vim ~/.bashrc 进入到环境变量配置文件进行编辑 

    添加 :

    export NDKROOT=ndk的路径

    export PATH=$NDKROOT:$PATH

    添加完成保存退出,使用命令source ~/.bashrc更新环境变量,ndk-build -v 查看是否配置成功

    ndk配置成功

    NDK环境变量配置完成

    开始编译FFMPEG

    进入ffmpeg文件夹下,在根目录创建ffmpeg_build.sh, ffmpeg版本大于3.4不需要更改configure文件

    echo "进入编译ffmpeg"

    export NDK=/home/clemence/kirito/ndk/android-ndk-r14b

    #架构下的so库和头文件

    export PLATFORM=$NDK/platforms/android-21/arch-arm

    #交叉编译工具 谁来用,用在哪

    export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

    export CPU=armv7-a

    #输出路径

    export PREFIX=./android/$CPU

    function buildFF

    {

    echo "开始编译...."

    ./configure \

        --prefix=$PREFIX \

        --target-os=android \

        --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \

        --arch=arm \

        --cpu=armv7-a  \

        --sysroot=$PLATFORM \

        --extra-cflags="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp " \

        --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \

        --nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \

        --enable-shared \

        --enable-runtime-cpudetect \

        --enable-gpl \

        --enable-small \

        --enable-cross-compile \

        --enable-asm \

        --enable-neon \

        --enable-jni \

        --enable-mediacodec \

        --enable-decoder=h264_mediacodec \

        --enable-hwaccel=h264_mediacodec \

        --disable-debug \

        --disable-static \

        --disable-doc \

        --disable-ffmpeg \

        --disable-ffplay \

        --disable-ffprobe \

        --disable-ffserver \

        --disable-postproc \

        --disable-avdevice \

        --disable-symver \

        --disable-stripping

    make -j8

    make install

    echo "编译完毕"

    }

    buildFF

    给ffmpeg_build.sh赋予权限并执行

    赋予权限并执行

    没有错误,就开始编译,等着吧

    等待好久 编译完毕

    ffmpeg文件夹下生成android文件夹编译成功

    错误列表

    make环境没有安装

    错误1

    解决办法:安装make环境. 

    命令:阿里云下: yum install make

    其它支持apt命令的可以用 apt-get install make

    安装make环境

    版本过高

    没有安装gcc编译器

    s

    相关文章

      网友评论

        本文标题:Android使用ffmpeg(一)

        本文链接:https://www.haomeiwen.com/subject/nxuuiqtx.html