可能这些对你来说有点复杂,但既然想要顺滑的gif……
首先你要自学一下ffmpeg的基本操作,然后给你一串我用的现成代码
ffmpeg -i input.mp4 -vf fps=30,scale=360:-1:flags=lanczos,palettegen -y palette.png;
ffmpeg -i input.mp4 -i palette.png -lavfi "fps=30,scale=360:-1:flags=lanczos [x]; [x][1:v] paletteuse" -y output.gif
原理是先对整个视频取色,再渲染gif,重复部分可以用解码器的算法略过,容量能小很多。截取片段可以先截出视频也可以在第二行里加,方法自己找教程
一般来说fps=15够用,24高质量,30就和视频一样了。如果原视频有60帧,fps也可以60,更顺滑,但gif会巨大,基本没有地方给你上传
还有一串无损代码,需要预装gifski这个库,逐帧转换,压出来的东西太大了等于没用
ffmpeg -i input.mp4 -r frame%04d.png;gifski -o clip.gif frame*.png