使用ffmpeg將jpg,png圖片轉換成avif格式

 因為近期發現許多Web應用開始導入avif圖檔,在保持一定品質時獲得更小的檔案,所以就開始將手邊的轉換成avif圖檔。

上圖使用Copilot設計工具創造

使用ffmpeg將圖片轉換成avif格式指令如下


ffmpeg指令

轉換input.jpg成output.avif

    ffmpeg -hide_banner -i "input.jpg" -c:v libaom-av1 -still-picture 1 -crf 16 -cpu-used 4 "output.avif"

轉換input.png成output.avif

    ffmpeg -hide_banner -i "input.png" -c:v libaom-av1 -still-picture 1 -crf 16 -cpu-used 4 "output.avif"


圖片品質

設定品質請改-crf,可以從0設定到63的數值。

數值越小失真越少,圖片品質越好,處理時間大幅變久,圖片容量也會變小;數值越大失真越多,圖片品質越差,處理時間較短,圖片容量會變大。

我自己測試在1024x768圖片大小得大概需要使用-crf 16,視覺上才看不太出失真。

4k解析度圖片的大小,大概可以用-crf 31,在壓縮時間上會比較不用等太久。


加快速度

要加快運行速度,請設定-cpu-used

請依照你的系統核心數設定,建議最大是最大核心數 - 1 比較不會讓操作卡卡的。

現在低階i3電腦應該都至少有4核心,可以設成-cpu-used 3。


留言