Ubuntu下编译ffmpeg
准备
因为不想用虚拟机或者双系统,感觉麻烦,所以用的腾讯云服务器。
云服务器是腾讯活动99元/年买的,配置登陆名密码什么的自己看着配置。
配置
别问为什么配置这么垃圾,没办法,穷。
Xshell6 和 Xftp安装
Xshell和Xftp下载
Xshell6
使用Xshell的会话管理器,可以轻松地从主窗口同时创建、编辑和启动多个会话。定义多个会话属性来确定每个会话的行为。简单点说,我们可以用这个Xshell6进行登陆服务器操作,我反正不喜欢在网页上操作。
打开Xshell6,左上角文件--->新建,然后回到云服务器信息网页找到公网IP,填入,填入完成,选择确定或者连接。
公网IP
Xshell6连接信息
点击连接之后,输入用户名和密码登陆成功
XFTP:
用来在本地系统与云服务器之间文件管理简化
Xftp打开之后左上角 文件-->新建 ,填入之后选择确定或者连接
Xftp连接
点击连接登陆成功
Xftp连接成功
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