如何在 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
要在CentOS和RHEL发行版上安装FFmpeg,您需要使用以下命令在系统上启用EPEL和RPM 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 '命令中删除' –enable-encoder_name ' ,以便安装顺利完成。
您可以安装许多编码器,但就本文的目的而言,我不会安装所有编码器,但您可以使用以下官方指南来安装它们。
结论
在第一部分中,我们向读者介绍了有关 FFmpeg 多媒体框架的最新消息,并向他们展示了如何在 Linux 机器上安装它。下一部分将完全学习如何使用这个领先的多媒体框架中的神奇工具。
更新:本 FFmpeg 系列的第 2 部分已发布,其中展示了一些有用的 ffmpeg 命令行用法,用于执行各种音频、视频和图像转换过程:15 个用于 Linux 中视频、音频和图像转换的有用的“FFmpeg”命令。