Gif超牛逼壓縮工具,38M的GIF壓縮到1M大小


下載

Gif壓縮工具Gifsicle下載地址:https://eternallybored.org/misc/gifsicle/

解壓

解壓Gif工具到C盤的任意目錄,並把Gif工具路徑添加到系統環境變量,這樣下次方便調用該工具

然后Path系統變量添加一行%Z_GIF%

使用Gifsicle

在Gif路徑下shift+右擊選擇CMD,輸入path查看末尾是否有gifsicle路徑

輸入命令

gifsicle XXX.gif --optimize=3 --colors 128 --lossy=1000 -o NEW.gif
  • --optimize
    --optimize=級別
    嘗試縮小 GIF 動畫的文件大小。 級別 決定做了多少優化;更高的水平需要更長的時間,但可能有更好的結果。目前分為三個級別:1,2,3

  • --colors
    --colors Num
    將每個輸出GIF中不同顏色的數量減少到一個或更少。Num必須在2到256之間。這可以用來收縮輸出gif或消除任何本地顏色表。
    通常,從現有的顏色表中選擇一組自適應的顏色。你可以用——color-method選項來影響這個過程,或者用——use-colormap來給你自己的顏色圖。Gifsicle可能需要添加一個額外的顏色(使num+1在所有),如果有透明度的圖像。

  • --lossy=級別
    改變圖像顏色以縮小輸出文件的大小,代價是工件和噪聲。有損決定了允許多少工件;較高的值會導致較小的文件大小,但會導致更多的工件。缺省值是20。

  • -o xxx.gif
    小寫字母o,輸出命名的gif文件

由於38M圖片過大,沒法上傳,先上傳

--optimize=3 --colors 128 --lossy=100
--optimize=3 --colors 128 --lossy=1000
--optimize=3 --colors 128 --lossy=10000

三張圖片對比,原圖38M,下面大小分別是8M,5M,3M

MP4轉Gif

個人經常用ShareX軟件按shift+PtrSc快捷鍵截屏錄屏並且輸出mp4文件,自用Ffmpeg+Git Bash+Gifsicle組合轉為超小體積的Gif

ffmpeg,git bash,gifsicle三個exe的所在路徑添加到系統變量后,PATHEXT添加;.SH

C:\XXX\Git bash\user\bin目錄下新建gif.sh文件

gif.sh腳本內容

set -e
# 全局設定,fps幀數,scale分辨率為320
fps=8 
scale=320:-1
scale_=320
interpolation=lanczos

# max_colors設置彩色數量,彩色越小gif體積越小
max_colors=128 # up to 256
reserve_transparent=on
stats_mode=diff # chosen from [full, diff, single]

# for paletteuse
dither=sierra2 # chosen from [bayer, heckbert, floyd_steinberg, sierra2, sierra2_4a, none]
bayer_scale=5 # [0, 5]. only works when dither=bayer. higher means more color banding but less crosshatch pattern and smaller file size
diff_mode=rectangle # chosen from [rectangle, none]
new=on # when stats_mode=single and new=on, each frame uses different palette

# 文件用時間命名
time=$(date +"%Y-%m-%d--%H-%M-%S")

# 設定Gif播放率,0.5為2倍播放,1為正常播放,4為放慢4倍播放
ffmpeg -i $1 -vf "setpts=0.5*PTS" output_temp.mp4

# 使用上面的參數加入到命令中執行,$1為輸入的文件名
ffmpeg -i output_temp.mp4 -vf "fps=$fps,scale=$scale:flags=$interpolation,split[split1][split2];[split1]palettegen=max_colors=$max_colors:reserve_transparent=$reserve_transparent:stats_mode=$stats_mode[pal];[split2][pal]paletteuse=dither=$dither:bayer_scale=$bayer_scale:diff_mode=$diff_mode:new=$new" -y new_mp4_temp.gif

# 刪除產生的臨時文件
rm output_temp.mp4

# --optimize 優化等級[1,2,3]  --lossy=有損優化等級[0~無窮]
gifsicle new_mp4_temp.gif --optimize=3 --lossy=100 -o net_output.gif

# 刪除產生的臨時文件
rm new_mp4_temp.gif

# 對轉換后的文件進行重命名
mv net_output.gif $time\_fps=$fps\_scale=$scale_\_max_colors=$max_colors.gif

打開CMD輸入gif.sh W.mp4即可轉換完畢

1008KB效果圖


免責聲明!

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



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