Gifski:一个跨平台的高质量 GIF 编码器
创始人
2024-03-02 00:50:40
0

作为一名文字工作者,我需要在我的文章中添加图片。有时为了更容易讲清楚某个概念,我还会添加视频或者 gif 动图,相比于文字,通过视频或者 gif 格式的输出,读者可以更容易地理解我的指导。前些天,我已经写了篇文章来介绍针对 Linux 的功能丰富的强大截屏工具 Flameshot。今天,我将向你展示如何从一段视频或者一些图片来制作高质量的 gif 动图。这个工具就是 Gifski,一个跨平台、开源、基于 Pngquant 的高质量命令行 GIF 编码器。

对于那些好奇 pngquant 是什么的读者,简单来说 pngquant 是一个针对 PNG 图片的无损压缩命令行工具。相信我,pngquant 是我使用过的最好的 PNG 无损压缩工具。它可以将 PNG 图片最高压缩 70% 而不会损失图片的原有质量并保存了所有的阿尔法透明度。经过压缩的图片可以在所有的网络浏览器和系统中使用。而 Gifski 是基于 Pngquant 的,它使用 pngquant 的功能来创建高质量的 GIF 动图。Gifski 能够创建每帧包含上千种颜色的 GIF 动图。Gifski 也需要 ffmpeg 来将视频转换为 PNG 图片。

安装 Gifski

首先需要确保你安装了 FFMpeg 和 Pngquant。

FFmpeg 在大多数的 Linux 发行版的默认软件仓库中都可以获取到,所以你可以使用默认的包管理器来安装它。具体的安装过程,请参考下面链接中的指导。

Pngquant 可以从 AUR 中获取到。要在基于 Arch 的系统安装它,使用任意一个 AUR 帮助程序即可,例如下面示例中的 Yay

$ yay -S pngquant

在基于 Debian 的系统中,运行:

$ sudo apt install pngquant

假如在你使用的发行版中没有 pngquant,你可以从源码编译并安装它。为此你还需要安装 libpng-dev 包。

$ git clone --recursive https://github.com/kornelski/pngquant.git
$ make
$ sudo make install

安装完上述依赖后,再安装 Gifski。假如你已经安装了 Rust 编程语言,你可以使用 cargo 来安装它:

$ cargo install gifski

另外,你还可以使用 Linuxbrew 包管理器来安装它:

$ brew install gifski

假如你不想安装 cargo 或 Linuxbrew,可以从它的 发布页面 下载最新的二进制程序,或者手动从源码编译并安装 gifski 。

使用 Gifski 来创建高质量的 GIF 动图

进入你保存 PNG 图片的目录,然后运行下面的命令来从这些图片创建 GIF 动图:

$ gifski -o file.gif *.png

上面的 file.gif 为最后输出的 gif 动图。

Gifski 还有其他的特性,例如:

  • 创建特定大小的 GIF 动图
  • 在每秒钟展示特定数目的动图
  • 以特定的质量编码
  • 更快速度的编码
  • 以给定顺序来编码图片,而不是以排序的结果来编码

为了创建特定大小的 GIF 动图,例如宽为 800,高为 400,可以使用下面的命令:

$ gifski -o file.gif -W 800 -H 400 *.png

你可以设定 GIF 动图在每秒钟展示多少帧,默认值是 20。为此,可以运行下面的命令:

$ gifski -o file.gif --fps 1 *.png

在上面的例子中,我指定每秒钟展示 1 帧。

我们还能够以特定质量(1-100 范围内)来编码。显然,更低的质量将生成更小的文件,更高的质量将生成更大的 GIF 动图文件。

$ gifski -o file.gif --quality 50 *.png

当需要编码大量图片时,Gifski 将会花费更多时间。如果想要编码过程加快到通常速度的 3 倍左右,可以运行:

$ gifski -o file.gif --fast *.png

请注意上面的命令产生的 GIF 动图文件将减少 10% 的质量,并且文件大小也会更大。

如果想让图片以某个给定的顺序(而不是通过排序)精确地被编码,可以使用 --nosort 选项。

$ gifski -o file.gif --nosort *.png

假如你不想让 GIF 循环播放,只需要使用 --once 选项即可:

$ gifski -o file.gif --once *.png

从视频创建 GIF 动图

有时或许你想从一个视频创建 GIF 动图。这也是可以做到的,这时候 FFmpeg 便能提供帮助。首先像下面这样,将视频转换成一系列的 PNG 图片:

$ ffmpeg -i video.mp4 frame%04d.png

上面的命令将会从 video.mp4 这个视频文件创建名为 “frame0001.png”、“frame0002.png”、“frame0003.png” 等等形式的图片(其中的 %04d 代表帧数),然后将这些图片保存在当前的工作目录。

转换好图片后,只需要运行下面的命令便可以制作 GIF 动图了:

$ gifski -o file.gif *.png

想知晓更多的细节,请参考它的帮助部分:

$ gifski -h

这是使用 Gifski 创建的示例 GIF 动图文件。

正如你看到的那样,GIF 动图的质量看起来是非常好的。

好了,这就是全部内容了。希望这篇指南对你有所帮助。更多精彩内容即将呈现,请保持关注!

干杯吧!


via: https://www.ostechnix.com/gifski-a-cross-platform-high-quality-gif-encoder/

作者:SK 选题:lujun9972 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

AI动画丨寒潮来袭 这些隐...
寒潮是来自极地 或高纬度的 强大冷空气 大规模南下 常导致所经之地...
2026-01-24 21:19:39
AI影像技术团体标准在大兴...
1月21日,《人工智能影像生成与应用技术要求》团体标准在京发布。 ...
2026-01-21 19:19:20
“王炸级”增长的AI漫剧,...
一个不容忽视的新变量正在重塑中国视频内容生态——漫剧(AI生成的动...
2026-01-16 09:18:49
“AI魔改”泛滥,整治既是...
南都N视频记者从国家广播电视总局获悉,为整治“AI魔改”视频传播乱...
2026-01-02 11:47:25
“AI魔改”四大名著、历史...
国家广播电视总局部署开展“AI魔改”视频专项治理 为整治“AI魔改...
2026-01-01 23:17:41
国家广播电视总局部:开展「...
12月31日消息,国家广播电视总局发文称,为整治“AI魔改”视频传...
2025-12-31 15:46:37

热门资讯

2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...