FFMpeg安装(Linux)

前言

ffmpeg是一个源于Linux的工具软件,是FLV视频转换器,可以轻易地实现FLV向其它格式avi、asf、 mpeg的转换或者将其它格式转换为flv。

ffmpeg设备相关的操作取决于操作系统,MAC和WIN是不统一的。

Linux上安装

Yum安装

Yum中最新只能安装2.8版本

安装EPEL Release

因为安装需要使用其他的repo源,所以需要EPEL支持

1
sudo yum install -y epel-release rpm

安装Nux-Dextop源

1
2
3
4
5
6
7
8
# 导入一个Code
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

# 安装nux-dextop 源
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

# 查看repo源是否安装成功
sudo yum repolist

安装ffmpeg

1
2
yum list ffmpeg
sudo yum install -y ffmpeg

查看版本

1
ffmpeg -version

官方编译

下载列表地址:https://johnvansickle.com/ffmpeg/

下载

1
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz

解压

1
tar xvJf ffmpeg-release-amd64-static.tar.xz -C /data/tools

打开文件

1
sudo vi /etc/profile

添加

1
2
export FFMPEG_HOME=/data/tools/ffmpeg-7.0.2-amd64-static/
export PATH=$FFMPEG_HOME:$PATH

生效

1
source /etc/profile

测试

1
ffmpeg -version

显示信息

ffmpeg version 7.0.2-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: –enable-gpl –enable-version3 –enable-static –disable-debug –disable-ffplay –disable-indev=sndio –disable-outdev=sndio –cc=gcc –enable-fontconfig –enable-frei0r –enable-gnutls –enable-gmp –enable-libgme –enable-gray –enable-libaom –enable-libfribidi –enable-libass –enable-libvmaf –enable-libfreetype –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libopenjpeg –enable-librubberband –enable-libsoxr –enable-libspeex –enable-libsrt –enable-libvorbis –enable-libopus –enable-libtheora –enable-libvidstab –enable-libvo-amrwbenc –enable-libvpx –enable-libwebp –enable-libx264 –enable-libx265 –enable-libxml2 –enable-libdav1d –enable-libxvid –enable-libzvbi –enable-libzimg

官方编译的可能没有我们需要的编码器,下面是我们自己编译的方式

自己编译

安装编译环境

1
2
yum install -y automake autoconf libtool gcc gcc-c++ 
yum install make

安装yasm插件

1
2
3
4
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure && make && make install

安装nasm

查看nasm的版本

1
nasm -version

版本低于2.13安装编译x264会报错 版本满足条件可跳过

Found no assembler
Minimum version is nasm-2.13

安装nasm

1
yum list nasm

发现只有2.10.07-7.el7版本 看来只能自己编译了

下载列表地址:https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/

1
2
3
4
5
6
7
cd ~
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz
tar -zxvf nasm-2.14.02.tar.gz
cd nasm-2.14.02
./configure
make && make install
cd ..

安装x264视频编码器

1
2
3
4
5
6
wget https://code.videolan.org/videolan/x264/-/archive/stable/x264-stable.tar.gz
tar -zxvf x264-stable.tar.gz
cd x264-stable
./configure --enable-static --enable-shared
make && make install
cd ..

安装完成后路径

1
whereis libx264.a

libx264: /usr/local/lib/libx264.a

安装fdk-aac音频编码器

1
2
3
4
5
6
wget https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.5.tar.gz
tar -zxvf fdk-aac-0.1.5.tar.gz
cd fdk-aac-0.1.5
./configure
make && make install
cd ..

安装ffmpeg

查看所有可下载版本

网址:http://www.ffmpeg.org/releases/

1
2
3
4
5
wget https://ffmpeg.org/releases/ffmpeg-4.1.3.tar.gz
tar zxvf ffmpeg-4.1.3.tar.gz
cd ffmpeg-4.1.3
./configure --enable-gpl --enable-libx264 --enable-nonfree --enable-libfdk-aac
make && make install

或者下载源码后按照上面步骤安装

1
2
yum install git
git clone https://github.com/FFmpeg/FFmpeg.git

安装完成后路径

1
whereis ffmpeg

ffmpeg: /usr/local/bin/ffmpeg

自定义安装位置

默认不添加–prefix 这相当于

1
./configure --prefix=/usr/local

安装后的文件就会遍布在/usr/local的子文件夹中

我们可以按照下面写法自定义位置

1
./configure --prefix=/usr/local/ffmpeg

这样文件的位置就是

1
/usr/local/ffmpeg/bin/ffmpeg

这时我们运行ffmpeg -version 提示

-bash: /usr/local/bin/ffmpeg: No such file or directory

要么我们在安装时直接设置

1
./configure --prefix=/usr/local

这样不方便卸载,因为安装生成的文件在多个文件夹中

要么我们配置一下搜索的路径

1
vi /etc/profile

在开始注释后添加

1
PATH=$PATH:/usr/local/ffmpeg/bin

保存并立即生效

1
source /etc/profile

查看版本

1
ffmpeg -version

卸载

1
make uninstall

测试ffmpeg

1
ffmpeg -version

报错:

ffmpeg: error while loading shared libraries: libx264.so.157: cannot open sh

解决方法

1
vi /etc/ld.so.conf

添加libx264.so所在路径

1
/usr/local/lib

退出后执行

1
ldconfig