网站搜索

如何在 Linux 中安装 FFmpeg


FFmpeg 是最好的多媒体框架之一,包含用于不同任务的各种工具。例如,ffplay是一个便携式媒体播放器,可以用来播放音频/视频文件,ffmpeg可以在不同的文件格式之间进行转换,ffserver > 可用于流式传输直播,ffprobe 能够分析多媒体流。

由于可用工具的多样性,该框架非常强大,可以为用户提供最佳的技术解决方案。根据FFmpeg在官方网站上的描述,之所以拥有如此出色的多媒体框架,是因为它结合了可用的最佳免费软件选项。

FFmpeg框架提供了很高的安全性,其原因是开发人员在审查代码时的认真性,始终考虑到安全性。

我非常确信,当您想做一些数字音频和视频流或录制时,您会发现这个框架非常有用。在 FFmpeg 框架的帮助下,您还可以做许多其他实际的事情,例如将 wav 文件转换为 mp3 文件、对视频进行编码和解码,甚至缩放视频。

根据官方网站,FFmpeg 能够执行以下操作。

  • 解码多媒体文件
  • 编码多媒体文件
  • 转码多媒体文件
  • 多路复用器多媒体文件
  • 解复用多媒体文件
  • 流式传输多媒体文件
  • 过滤多媒体文件
  • 播放多媒体文件

让我举一个例子,一个非常简单的例子。以下命令会将您的 mp4 文件转换为 avi 文件,就这么简单。

ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi

上述命令仅用于解释,不建议在实践中使用,因为未声明编解码器、比特率和其他细节。

在下一部分中,我们将练习一些 FFmpeg 多媒体框架工具,但在此之前我们必须将它们安装在 Linux 机器中。

如何在 Linux 中安装 FFmpeg 多媒体框架

由于 FFmpeg 软件包是为最常用的 Linux 发行版提供的,因此安装相对容易。让我们从在基于 Ubuntu 的发行版中安装 FFmpeg 框架开始。

在 Ubuntu 和 Linux Mint 上安装 FFmpeg

我将从默认存储库安装FFmpeg。打开新终端 (CTRL+ALT+T),然后运行以下命令。

sudo apt update
sudo apt install ffmpeg
ffmpeg -version

在 Debian 上安装 FFmpeg

FFmpeg 软件包包含在官方 Debian 存储库中,可以使用软件包管理器进行安装,如图所示。

sudo apt update
sudo apt install ffmpeg
ffmpeg -version

在 CentOS 和 RHEL 上安装 FFmpeg

要在CentOSRHEL发行版上安装FFmpeg,您需要启用EPELRPM Fusion

要安装并启用EPEL,请使用以下命令。

yum install epel-release

要安装并启用RPM Fusion,请在您的发行版上使用以下命令。

-------------- On CentOS & RHEL 8.x -------------- 
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm

-------------- On CentOS & RHEL 7.x -------------- 
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

-------------- On CentOS & RHEL 6.x --------------
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm

启用存储库后,运行以下命令安装FFmpeg

yum install ffmpeg ffmpeg-devel
ffmpeg -version

在 Fedora 上安装 FFmpeg

在 Fedora 上,您需要安装并启用 RPM Fusion 才能安装 FFmpeg,如图所示。

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install ffmpeg ffmpeg-devel
ffmpeg -version

在 Arch Linux 上安装 FFmpeg

sudo pacman -S ffmpeg
yay -S ffmpeg-git
yay -S ffmpeg-full-git
ffmpeg -version

在 openSUSE 上安装 FFmpeg

-------------- On openSUSE Tumbleweed --------------
sudo zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/' packman
sudo zypper refresh
sudo zypper install --from packman ffmpeg
ffmpeg -version

-------------- On openSUSE Leap --------------
sudo zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman
sudo zypper refresh
sudo zypper install --from packman ffmpeg
ffmpeg -version

FFmpeg 从源代码编译

从源代码编译软件并不是世界上最简单的事情,但只要有正确的说明,我们就能够做到。首先,确保您的系统满足所有依赖项。这些依赖项的安装可以借助以下命令来完成。

首先,告诉系统下载最新的软件包。

sudo apt-get update

使用以下命令安装依赖项。

-------------- On Debian & Ubuntu --------------
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \
libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev \
libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
-------------- On CentOS and RHEL --------------
yum install glibc gcc gcc-c++ autoconf automake libtool git make nasm pkgconfig SDL-devel \
a52dec a52dec-devel alsa-lib-devel faac faac-devel faad2 faad2-devel freetype-devel giflib gsm gsm-devel \
imlib2 imlib2-devel lame lame-devel libICE-devel libSM-devel libX11-devel libXau-devel libXdmcp-devel \
libXext-devel libXrandr-devel libXrender-devel libXt-devel libogg libvorbis vorbis-tools mesa-libGL-devel \
mesa-libGLU-devel xorg-x11-proto-devel zlib-devel libtheora theora-tools ncurses-devel libdc1394 libdc1394-devel \
amrnb-devel amrwb-devel opencore-amr-devel

然后使用以下命令为 FFmpeg 源创建一个新目录。这是将下载源文件的目录。

mkdir ~/ffmpeg_sources

现在通过运行以下命令编译并安装 FFmpeg 使用的 yasm 汇编器。

cd ~/ffmpeg_sources
wget http://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
make distclean
export "PATH=$PATH:$HOME/bin"

成功安装 yasm 汇编器后,就可以安装一些将与特定 FFmpeg 工具一起使用的各种编码器了。使用以下命令安装H.264视频编码器。

cd ~/ffmpeg_sources
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
cd x264-snapshot*
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install
make distclean

另一个很好用的编码器是libfdk-aac AAC音频编码器。

cd ~/ffmpeg_sources
wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master
unzip fdk-aac.zip
cd mstorsjo-fdk-aac*
autoreconf -fiv
$./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

安装libopus音频解码器和编码器。

cd ~/ffmpeg_sources
wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
tar xzvf opus-1.1.tar.gz
cd opus-1.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

现在,是时候从源代码安装ffmpeg了。

cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
export PKG_CONFIG_PATH
./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" \
   --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-libs="-ldl" --enable-gpl \
   --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus \
   --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
make
make install
make distclean
hash -r

注意:如果您尚未安装某些编码器,请务必从上面的“. /configure'命令,这样安装就完成了,没有任何问题。

您可以安装许多编码器,但出于本文的目的,我不会安装所有编码器,但您可以使用以下官方指南来安装它们。

  1. Ubuntu 下的 FFmpeg 编译指南
  2. CentOS 下的 FFmpeg 编译指南

结论

在第一部分中,我们向读者介绍了 FFmpeg 多媒体框架的最新消息,并向他们展示了如何在 Linux 计算机上安装它。下一部分将完全是关于学习如何使用这个领先的多媒体框架内的令人惊叹的工具。

更新:该 FFmpeg 系列的第 2 部分已发布,其中展示了一些有用的 ffmpeg 命令行用法来执行各种音频、视频和图像转换程序:Linux 中用于视频、音频和图像转换的 15 个有用的“FFmpeg”命令。