在 Ubuntu 20.04 上安装和使用 FFmpeg


FFmpeg 是用于转码多媒体文件的强大工具。它是一个开源 CLI 工具,可用于所有主要平台。该程序支持多种音视频库,包括libavformatlibavutillibavcodec等。FFmpeg可以将音频和视频转换为不同的格式。格式、调整大小和配置采样率等等。

本指南将向您展示如何在 Ubuntu 20.04 中安装和使用 FFmpeg

在 Ubuntu 中安装 FFmpeg

Ubuntu 上安装 FFmpeg 有两种官方方法:从 Ubuntu 存储库 (v7.x) 和从 snap (v4.x)。根据您的需要,您应该选择最适合您的方法。

也可以从源代码编译和安装 FFmpeg。但是,此方法有点复杂,建议不要采用此方法,除非您有特定原因这样做。

Ubuntu Repo 安装 FFmpeg

这是安装 FFmpeg 的默认方法。您所要做的就是告诉 APT 从默认的 Ubuntu 软件存储库中获取并安装该程序。

启动终端,更新 APT 缓存,然后安装 FFmpeg。

$ sudo apt update
$ sudo apt install ffmpeg

我们来验证一下是否安装成功。首先,通过以下命令测试FFmpeg版本:

$ ffmpeg -v

不要忘记检查可用的编码器和解码器。通过输入以下命令来执行此操作:

$ ffmpeg -encoders
$ ffmpeg -decoders

snap 安装 FFmpeg

FFmpeg 还可以作为 snap 包使用。如果您没有配置 snap,那么您可以通过发出以下命令立即安装它:

$ sudo apt update && sudo apt install snapd -y
$ sudo snap install core core20 && sudo systemctl restart snapd

现在,您的系统应该已准备好从 Snapcraft 商店获取并安装 Snap 软件包。在 Snapcraft 上查看 FFmpeg

$ sudo snap install ffmpeg

输入以下命令来测试 FFmpeg 的安装:

$ ffmpeg -version
$ ffmpeg -encoders
$ ffmpeg -decoders

从源代码安装 FFmpeg

FFmpeg 是一个开源工具。因此可以从源代码手动构建该程序。仅当您愿意创建自定义构建、想要尝试最新版本或希望测试错误时才建议使用此方法。对于一般用途,请按照其他方法安装此程序。查看 Ubuntu 的官方 FFmpeg 编译指南。

从源代码构建 FFmpeg 需要多个依赖项。输入以下命令下载依赖项:

$ sudo apt update
$ sudo apt install \
$ autoconf \
$ automake \
$ build-essential \
$ cmake \
$ git-core \
$ libass-dev \
$ libfreetype6-dev \
$ libgnutls28-dev \
$ libsdl2-dev \
$ libtool \
$ libva-dev \
$ libvdpau-dev \
$ libvorbis-dev \
$ libxcb1-dev \
$ libxcb-shm0-dev \
$ libxcb-xfixes0-dev \
$ pkg-config \
$ texinfo \
$ wget \
$ yasm \
$ zlib1g-dev

现在,准备一个专门的目录来存放源代码和编译后的二进制文件。

$ mkdir -pv ~/ffmpeg_source ~/bin

现在是时候准备一些第三方库了。这些是 FFmpeg 最常用的。如果您不需要这些库中的一个或多个,请跳过相关部分并忽略关联的./configure选项

  • NASM:一些库依赖的汇编器。

$ sudo apt install nasm

  • libx264:H.264 视频编码器。

$ sudo apt install -y libx264-dev

  • libx265:H.265 视频编码器(也称为 HEVC)。

$ sudo apt install -y libx265-dev libnuma-dev

  • libvpx:VP8/VP9 视频编码器/解码器。

$ sudo apt install -y libvpx-dev

  • libfdk-aac:AAC 音频编码器。

$ sudo apt install -y libfdk-aac-dev

  • libmp3lame:MP3 音频编码器。

$ sudo apt install libmp3lame-dev

  • libopus:Opus 音频编码器/解码器。

$ sudo apt install libopus-dev

  • libaom:AV1 视频编码器/解码器。请注意,如果您要使用这个,编译可能会失败。根据 FFmpeg 官方 wiki,这个包似乎还没有稳定的 API。建议避免这种情况。

$ sudo apt install -y libaom-dev

现在您已准备好开始从源代码构建 FFmpeg。通过发出以下命令来获取源代码:

$ cd ~/ffmpeg_source
$ wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
$ tar -xvf ffmpeg-snapshot.tar.bz2
$ cd ffmpeg

更新PATH环境变量并运行配置脚本。

$ 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 -lm" \
$ --bindir="$HOME/bin" \
$ --enable-gpl \
$ --enable-gnutls \
$ --enable-libaom \
$ --enable-libass \
$ --enable-libfdk-aac \
$ --enable-libfreetype \
$ --enable-libmp3lame \
$ --enable-libopus \
$ --enable-libvorbis \
$ --enable-libvpx \
$ --enable-libx264 \
$ --enable-libx265 \
$ --enable-nonfree

在此过程中,您可能会遇到错误“使用 pkg-config 找不到 gnutls”。 ” 为了解决这个问题,系统中必须存在某个包。您可以通过发出以下命令来安装相关软件包并修复此错误

$ sudo apt install -y libunistring-dev

现在,再次运行配置脚本。

运行make命令开始编译FFmpeg。使用“-j”标志运行并行编译以加快进程。

$ PATH="$HOME/bin:$PATH" make -j4

现在,您可以通过以下命令安装刚刚从源构建的 FFmpeg 版本:

$ sudo make install
$ hash -r

重新加载 bash shell 以识别新的 FFmpeg 二进制位置

$ source ~/.profile

通过以下命令测试 FFmpeg 安装:

$ ffmpeg -version
$ ffmpeg -encoders
$ ffmpeg -decoders

使用 FFmpeg

按照上述步骤,您现在已经成功安装了 FFmpeg。是时候学习如何使用它了。本节将向您展示该工具的一些最常见用途。

首先,将视频文件从 MP4 转换为 WebM 格式。 FFmpeg 的美妙之处在于您不必指定输入和输出格式。 FFmpeg 将自动检测源和目标格式并采取相应措施。这里,“-hide_banner”标志用于禁用 FFmpeg 在每次运行时报告的配置信息。
$ ffmpeg -hide_banner -i <input> <output>
现在让我们看一下音频文件的转换。将 MP3 转换为 OGG。

$ ffmpeg -hide_banner -i demo.mp3 demo.ogg
转换文件时,还可以指定编解码器。使用“-c”标志,后跟任何支持的编码器/解码器的名称,或特殊值副本。例如,您可以使用 libvpx 视频编解码器和 libvorbis 音频编解码器将 MP4 转换为 WebM 格式。

$ ffmpeg -hide_banner -i demo.mp4 -c:v libvpx -c:a libvorbis demo.webm
类似地,也可以使用指定的编解码器来转换音频格式。例如,您可以使用 libopus 编解码器将 MP3 文件转换为 OGG。

$ ffmpeg -hide_banner -i demo.mp3 -c:a libopus demo.ogg

最后的想法

FFmpeg 是处理媒体文件的强大工具。有大量关于 FFmpeg 的各种功能及其用途的教程。请随意探索有关这个神奇工具的更多信息。获取几个演示媒体文件并用它们练习来掌握 FFmpeg。查看这个有趣的教程,了解如何将多个图像转换为视频文件。

声明:Hello World|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 在 Ubuntu 20.04 上安装和使用 FFmpeg


这是我们的