GIF 动图原理与压缩方法
GIF靠逐帧存储加LZW无损压缩,只有256色是体积大的根源。减帧数、缩尺寸、删颜色三条路压体积,10MB压到2MB的做法在本文。
GIF靠逐帧存储加LZW无损压缩,只有256色是体积大的根源。减帧数、缩尺寸、删颜色三条路压体积,10MB压到2MB的做法在本文。
GIF的原理是把每一帧画面按顺序存进文件,播放时循环。它用LZW无损压缩,但调色板只有256色,所以照片类内容转GIF会明显偏色,这是格式的天花板,转出来什么样就是什么样,没法修复。
GIF体积大的根源是帧数、尺寸、颜色三者的乘积。一条10秒、500px宽、15帧每秒的GIF轻松超过10MB,而同内容的MP4只要1MB,所以超过几秒的动图,直接转视频更划算。
压GIF三条路,按收益排序:先减帧(15fps降到8-10fps,视觉几乎无感),再缩尺寸(500px够用就别留800px),最后删颜色。三招下来,10MB压到2MB很常见。
做GIF的坑:从视频截取时别用默认参数,先把片段剪到5秒以内、缩到480-500px宽,再做GIF。另外发到微信、微博还会被平台再压一轮,要预留质量余量,别压太狠。
反过来想做GIF,最稳的路径是先把视频片段剪好再转,或者用一组图片按顺序合成,每一步都能控制参数。直接把整段视频转GIF,出来的文件大到没法发,还得回头重做一遍。
GIF格式诞生于1987年,调色板上限256色是格式规范。照片类内容转GIF偏色是格式限制,无法修复。
微信聊天窗口支持GIF,作为表情发送需先添加为自定义表情。朋友圈不支持GIF,只显示静态首帧,可改发视频。
同内容视频小得多。10MB的GIF转成MP4通常不到1MB,长动图建议直接用视频格式。