歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Linux上將視頻轉換成動態gif圖片

在Linux上將視頻轉換成動態gif圖片

日期:2017/2/28 14:36:37   编辑:Linux教程

雖然曾經被認為是過時的藝術形式,但動態GIF圖片現在復蘇了。如果你還沒有留意到,不少在線分享和社交網絡網站都開始支持動態GIF圖片,例如,Tumblr,Flickr,Google+和Facebook的部分地方。由於在消費和共享上的容易,GIF的動畫已經成為主流互聯網文化的一部分了。

所以,你們中的一些人會好奇怎樣才能生成這樣的動態GIF圖片。已經有各種各樣專門用來生成動態GIF圖片的在線或離線工具。另一種選擇是創建一副動態GIF圖片時關閉現有的視頻剪輯。在這個教程中,我會描述在Linux上如何將一段視頻文件轉換成一副動態GIF圖片

作為一個更有用的例子,讓我展示如何將一個YouTube視頻轉換成一副動態GIF圖片

第一步:下載YouTube視頻

首先,下載一個你想要轉換的YouTube視頻。你可以使用youtube-dl這個工具將YouTube視頻保存為MP4文件。假設你把你最愛的YouTube視頻保存為"funny.mp4"。(譯注:對於牆內的同學,請無視YT吧,自行去好人樓主那裡尋找一個MP4吧,;-})

第二步:從視頻中解壓視頻幀

接下來,在Linux系統上安裝FFmpeg,我會用這個工具去解壓從視頻中解壓出視頻幀。

下面的指令會解壓出獨立的視頻幀,將它們保存為GIF圖片。確保使用諸如("out%04d.gif")的輸出文件格式。這樣,獨立的幀就被合適地命名並保存。

ffmpeg -t <時長> -ss <hh:mm:ss格式的開始位置> -i <視頻文件> out%04d.gif

例如,如果你想解壓輸入視頻的視頻幀,從第10秒開始,每5秒一幀,請運行下列命令。

$ ffmpeg -t 5 -ss 00:00:10 -i funny.mp4 out%04d.gif 

在完成FFmpeg之後,你會看到一組創建出來的GIF文件,它們被命名為"out[\d+].gif"。

第三步:合並視頻幀進一副動態GIF

下面這一步要合並單個的GIF文件成一副動態GIF圖片。為此,你可以使用ImageMagick。

首先,如果你還沒有的話,在Linux系統上安裝ImageMagick。

convert -delay <幀數>x<每秒幀數> -loop 0 out*gif <輸出文件>

在這個命令中,"-delay"是控制動態速度的選項。這個選項表示在顯示下一幀畫面前需要等待的秒數:幀數/每秒幀數 。"-loop 0"選項表示動畫的無限次循環。如果你願意,你可以指定"-loop N"讓動畫只重復N次。

例如,為了生成一副每秒20幀和循環無數次的動態GIF圖片,使用如下命令。

$ convert -delay 1x20 -loop 0 out*.gif animation.gif 

第四步(可選):減少動態GIF的大小

最後這一步(可選)是通過使用ImageMagick的GIF優化功能來減少生成的GIF文件的大小。

使用下列命令去減少GIF大小。

convert -layers Optimize animation.gif animation_small.gif 

現在你已經准備好在你的社交網絡上分享制作完成的GIF圖片。下面是一副我從一個可愛的YouTube視頻中生成的GIF樣例圖片。

享受技術帶來的樂趣吧!:-)

Copyright © Linux教程網 All Rights Reserved