利用 FFmpeg 和 ImageMagick, AVI 轉 GIF(不失真)


利用[TMPGEnc 4.0 XPress] 或 [TMPGEnc Video Mastering Works 5] 生成 AVI 
這個視頻編輯軟件,可對每個幀進行操作

1.生成每個幀的 PNG
ffmpeg -y -ss 5 -t 3 -i "01.avi" -s 320x132 -an -f image2 "./png/output_%%05d.png"
    -y        覆蓋原有的文件
    -ss       開始位置秒 或 hh:mm:ss[.xxx]
    -t        總時間秒數 或 hh:mm:ss[.xxx] 格式
    -i        輸入的視頻 
    -s        要生成 png 圖片大小
    -an       忽略聲道信息
    -f image2 圖像文件流合並寫入視頻幀的圖像文件 在win系統中必須[%%]才可以

2.根據 png 生成 GIF(dos命令中有 convert 命令,所以convert.exe 改名為 iconvert.exe)
iconvert -quiet -delay 3 ./png/*.png -resize 190x94 -ordered-dither o8x8,23 +map out_od2.gif
    -quiet    抑制所有警告消息
    -delay    gif 幀之間延時時間,單位毫秒[這個選項必須在輸入文件名前面時才有效]
    -resize   調整 gif 大小
    -ordered-dither 使用一個統一的顏色通道,減小 gif 文件大小
    例子中這樣生成的 gif 大小為 (795,001 字節)

3.生成 gif 進行優化
iconvert out_od2.gif  -layers OptimizeTransparency +map out_opt.gif
    -layers   OptimizeTransparency 使用透明顏色,減少 gif 文件大小
    例子中優化后 gif 大小為 (633,112 字節)

注:	
也可以以下命令	
iconvert -delay 3 ./png/*.png -resize 190x94 -layers optimize out_od1.gif
    例子中這樣生成的 gif 大小為 (733,827 字節)
iconvert out_od1.gif  -layers OptimizeTransparency +map out_opt1.gif
    例子中優化后 gif 大小為 (628,188 字節)
	
或者直接使用avi->gif
    convert -quiet -delay 3 01.avi -ordered-dither o8x8,23 +map out_od2.gif
利用png生成gif時,操作比較麻煩,但是對不需要的幀圖進行刪除;
直接avi->gif操作簡單,但是還需要第三方軟件進行編輯;
Download ImageMagick 
ImageMagick help 
ImageMagick Usage help 
ImageMagick convert help
Download ffmpeg 
ffmpeg help


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM