在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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive