Single

使用FFMPEG将MP4转换为GIF或PNG(APNG)

视频还是建议直接保存MP4的好,体积小,播放效果也不错。有时需要将视频转成动图,方便传到图床使用,这时需要将MP4转为GIF或APNG。

FFMPEG的安装就略过了,以下是我自己使用的转GIF和APNG的代码:

  • MP4转GIF
    使用的方法是将MP4提取出单帧的PNG,再组合成GIF。
#!/bin/sh

palette="/tmp/palette.png"

filters="fps=15,scale=1136:-1:flags=lanczos"

ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2

以上保存为mp4togif.sh,并赋予权限(我所转的视频为1136x640),转换使用:

./mp4togif.sh one.mp4 one.gif

  • MP4转APNG

用以下代码

ffmpeg -i one.mp4 -f apng one.png -plays 0

play 0为无限循环。

图片质量APNG要比GIF好的多,但体积也要大很多,Google Chrome以及火狐都已经支持,图片浏览软件推荐使用XnView.

文章有(2)条网友点评

  • 其实同质量时 APNG 体积比 GIF 和 WebP 都小,只不过一般获得的 APNG 文件画质都明显好于 GIF,所以才显得体积更大。

    • @Coelacanthus 我选择APNG放弃GIF其实就是因为想要提高质量。在不方便使用MP4限制使用图片的时候,就可以用这个了。

发表评论