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