Gifski:一個跨平台的高質量 GIF 編碼器

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

Gifski:一個跨平臺的高質量 GIF 編碼器

  作為一名文字工作者,我需要在我的文章中添加圖片。有時為了更容易講清楚某個概念,我還會添加視頻或者 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 發行版的默認軟件倉庫中都可以獲取到,所以你可以使用默認的包管理器來安裝它。具體的安裝過程,請參考下面鏈接中的指導。

  在 Linux 中如何安裝 FFmpeg

  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 -h

  這是使用 Gifski 創建的示例 GIF 動圖文件。

  正如你看到的那樣,GIF 動圖的質量看起來是非常好的。

  好了,這就是全部內容了。希望這篇指南對你有所幫助。更多精彩內容即將呈現,請保持關注!

  幹杯吧!

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

  作者:SK選題:lujun9972譯者:FSSlc校對:wxy

  本文由LCTT原創編譯,Linux中國榮譽推出

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!