切换语言为:繁体
Centos7.9 源码编译安装 FFmpeg7

Centos7.9 源码编译安装 FFmpeg7

  • 爱糖宝
  • 2024-09-22
  • 2042
  • 0
  • 0

FFmpeg 是一个被广泛使用的开源音视频处理库,几乎所有流行的音视频编辑工具、播放器中都有它的身影.

在windows上安装它非常简单,下载压缩包,解压后得到3个exe即可使用了。

但在Linux系统上,除非直接使用系统源,例如yum apt等方式安装,否则直接源码编译安装还是挺费劲的,可惜系统源自带的ffmpeg一般都非常古老,现在最新ffmepg已到7.x版本,而CentOS源仍是 2.x/3.x的远古版。

即便网络上并且借助ai更新了一些三方源,但最新仍只到4.x,网络上也鲜少CentOS7系上源码编译最新ffmpeg的可用方法。经过一番折腾,总算在CentOS7上成功安装了最新版的ffmpeg,整理下记录下。

Centos7.9 源码编译安装 FFmpeg7

0. 先更新 yum 源

分别执行以下命令

yum clean all

yum -y update

更新后,再安装一堆依赖

yum install -y autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel libass-devel lame-devel opus-devel

如果遇到提示输入 [y/n/a]时输入 y 回车.

为什么要执行 yum update呢,不执行可不可以?当然可以,但更新是更好的选择,不仅可以更新软件包列表,更重要的是可能会解决一些潜在的依赖问题。

yum update 命令会自动解决软件包的依赖关系,并安装所有必要的依赖包。如果系统中缺少一些依赖包,yum install 命令可能会失败。

1. 创建一个空目录

源码编译要先提前先编译一堆编解码库,互相之间都有依赖关系,位置很重要,为避免出错,在家目录下创建一个ffmpeg_source目录,所有操作前需先执行 cd ~/ffmpeg_source先进入该目录中,忘记这步操作会出现很多报错,类似pkg_config等,如果复制该报错信息去搜索,只会导致错上加错,这里踩过大坑。

mkdir ~/ffmpeg_source && cd ~/ffmpeg_source

之后的所有操作都在 ~/ffmpeg_source目录中

2. 安装 NASM

这是一个汇编器,缺少它可能影响编译速度

执行以下命令安装

cd ~/ffmpeg_source
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
tar xjvf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make && make install

3. 安装 Yasm

类似上方,另一个汇编器,不用深究,装就是了。

同样依次执行命令

cd ~/ffmpeg_source
curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make && make install

4. 安装 libx264 libx265

要处理视频,这2个是必须的

依次执行

cd ~/ffmpeg_source
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make && make install


cd ~/ffmpeg_source
git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
cd ~/ffmpeg_sources/x265_git/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make && make install

5. 安装 ### libfdk_aac

aac编码器,必不可少

libfdk_aac 是一个用于编码和解码 AAC (Advanced Audio Coding) 音频的开源库。它是 Fraunhofer FDK AAC 库的一个分支,Fraunhofer FDK AAC 库是 AAC 音频格式的官方参考实现。

cd ~/ffmpeg_source
git clone --depth 1 https://github.com/mstorsjo/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make && make install

6. 安装 ### libmp3lame

mp3格式音频编码器

libmp3lame 是一个用于编码 MP3 音频的库。它提供了对 LAME 编码器的访问,LAME 编码器是一个高质量的开源 MP3 编码器。

cd ~/ffmpeg_source
curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make && make install

7. 安装 libopus

libopus 是一个用于编码和解码 Opus 音频格式的库。Opus 是一种免版税、高品质的音频编解码器,专为交互式语音和音乐传输而设计。

cd ~/ffmpeg_source
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make && make install

8. 安装 libvpx

VP8/VP9 编解码器

libvpx 是一个用于编码和解码 VP8 和 VP9 视频格式的库。VP8 和 VP9 是由 Google 开发的开源视频编解码器,以其高质量和高压缩率而闻名。

cd ~/ffmpeg_source
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make && make install

如果以上安装完毕并且未报错的话,接下来下载ffmpeg最新版源码进行编译安装。如果报错,一般是缺少一些依赖,按照提示尝试 yum install -y xxxx

9. 下载ffmpeg源码并编译安装

cd ~/ffmpeg_source

curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2

tar xjvf ffmpeg-snapshot.tar.bz2

cd ffmpeg


PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs=-lpthread \
  --extra-libs=-lm \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libfdk_aac \
  --enable-libfreetype \
  --enable-libharfbuzz \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree \
  --enable-libass
make && make install

如果没有报错,那么安装就完成了,尝试执行 ffmpeg -version看看版本

如果出现报错,可能的一个原因是,在执行安装某个库之前,没有进入之前提到的 ~/ffmpeg_source目录,导致找不到对应的依赖,可重新安装,记得先 cd ~/ffmpeg_source

0条评论

您的电子邮件等信息不会被公开,以下所有项均必填

OK! You can skip this field.