Contents

如何使用FFmpeg将视频转换为GIF

1. 概述

在本教程中,我们将学习如何使用命令行FFmpeg 工具将视频转换为 gif。 FFmpeg 是一个免费的开源软件项目,包含一套用于处理视频、音频和其他多媒体文件和流的库和程序。此外,FFmpeg 命令行工具帮助我们转换各种音视频格式。

2. 安装FFmpeg

安装 FFmpeg 的方法有很多。最重要的是,我们需要确保安装最新的稳定版本的 FFmpeg,以便我们可以使用它的最新功能。

我们可以使用snap 在 Debian/Ubuntu 机器上安装最新稳定版本的 FFmpeg:

$ sudo snap install ffmpeg

现在我们应该检查它是否实际安装:

$ ffmpeg -version
ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers

我们已经成功安装了最新的稳定版FFmpeg。

3. 创建自定义调色板

默认情况下,FFmpeg 对每个 gif 编码使用通用的 256 调色板。结果,我们在转换视频后得到的输出不是最理想的。但是,我们可以使用 FFmpeg 本身来生成专门为我们的视频创建的 256 色的自定义调色板。之后,我们可以使用自定义调色板和原始视频来创建更高质量的 gif。

现在,让我们生成自定义调色板:

$ ffmpeg -ss 00:01:30 -t 5 -i video.mkv -filter_complex "[0:v] palettegen" palette.png

让我们看看每个选项的含义:

  • -ss设置视频的起点
  • -t设置持续时间。因此,我们最终会有一个 5 秒的 gif
  • -i指定输入视频文件
  • -filter_complex用于应用过滤器。在这里,我们添加了palettegen过滤器,它接收第一个输入视频文件(显示为*[0:v]*)作为参数

运行上述命令后,FFmpeg 将创建名为 palette.png的自定义调色板。

4. 创建 GIF

现在我们已经生成了自定义调色板,我们可以使用它来创建 gif:

$ ffmpeg -ss 00:01:30 -t 5 -i video.mkv -i palette.png -filter_complex "[0:v] fps=10,scale=720:-1 [new];[new][1:v] paletteuse" output.gif

让我们看看每个新选项的作用:

  • 第二个 -i指定输入自定义调色板
  • fps指定输出 gif 的帧率
  • 缩放调整视频大小。澄清一下,第一个参数是宽度,第二个参数是高度。我们将高度设置为*-1*,这意味着我们要保持纵横比。因此,它将自动设置。此外,fps和 scale都接收视频作为输入
  • 调色板使用接收两个参数。第一个参数是 fps和 scale的输出(显示为*[new]*),第二个参数是我们之前生成的自定义调色板

运行上述命令后,FFmpeg 将创建 gif。