Linux中國

在Linux上將視頻轉換成動態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  -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圖片。

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

via: http://xmodulo.com/2013/11/convert-video-animated-gif-image-linux.html

譯者:KayGuoWhu 校對:wxy

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國