Android使用ffmpeg(一)

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容