目标要求:
GIF 414 * 160,300KB左右。
素材:MP4 480 X 480
工具:FFMPEG, PhotoShop CS6
思路:
从原有的MP4中截取需要转成gif的时间段,将相应的MP4大小变为414 X 160,导入CS6加文字
步聚1:截取
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
The above command will encode 8s of video starting at 3s. To start at 3s and end at 8s use -t 5.
ffmpeg -i movie.mp4 -ss 00:00:03 -t 5 -async 1 cut.mp4
步聚2:生成大小为414 X 414的MP4
ffmpeg -i cut.mp4 -vf scale=414:414 scale.mp4
因为MP4原来是480 X 480的正方形,所以,只是按比例缩小成414 X 414
步聚3:剪出414 X 160的MP4
ffmpeg -i scale.mp4 -filter:v "crop=414:160:0:127" -c:a copy crop.mp4
从(0, 127)位置开始剪出414 X 160的视频
步聚4:CS6导入mp4,生成GIF
- 文件->导入->视频帧到图层->选中crop.mp4
步聚5:选中最上面的gif图层,添加蒙层
步聚6:保存:文件->储存为WEB所用格式
- 如何减小GIF体积:gif本质是上一系列图片按序循环播放,减少图片数量,体积自然小了。可以删除奇数帧或偶数帧。如果删除之后gif播放速度变得很快,可以选中所有gif帧,统一延长delay(时间轴处设置)
参考:
https://trac.ffmpeg.org/wiki/Scaling%20(resizing)%20with%20ffmpeg
http://video.stackexchange.com/questions/4563/how-can-i-crop-a-video-with-ffmpeg
http://stackoverflow.com/questions/18444194/cutting-the-videos-based-on-start-and-end-time-using-ffmpeg