编解码我爱编程

ffmpeg 制作webp动图

2018-04-15  本文已影响126人  字节码

我的博客原文

众所周知webp 出自google,它是一种图片的格式, webp减少图片体积,按照官方的说法,在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。 起初webp并不支持动图,直到后来在0.2.0的版本上加上了动图,称为animated webp。

最早接触webp是因为公司要减小app包的体积,因为公司是做地图导航的,有很多图片资源文件,而且Android和iOS都有相应的解决方案,所以觉得将所有图片资源替换为webp,经过几天的折腾最终减少了将近20m。
这次我要使用animated webp作为客户端动图,是因为其效率和压缩比上都有一个比较好的权衡,抓包过抖音的动图发现其格式为webp,再者animated WebP支持24bit的RGB色,能有很好的色彩空间,服务端使用ffmpeg制作也很方便快捷。

项目实战:

ubuntu安装ffmpeg

我是在linux(Ubuntu)下使用的ffmpeg,下面为安装ffmpeg

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg
ffmpeg 制作webp

将jpg图像的格式转换为webp非常简单,直接使用命令就可以实现转码。这条命令未设置任何参数,使用的默认的参数:

ffmpeg -i test.jpg -vcodec libwebp test.webp

ffmpeg 制作动图

将视频制作为一个animated webp

基本命令
ffmpeg -i 视频路径 -vcodec libwebp -lossless 0 -qscale 75 -preset default -loop 0 -an -vsync 0 output.webp
ffmpeg 制作animated webp 的命令参数说明:

如果要调整生成animated webp的大小或降低帧速率,可使用scale, fps,比如以下:

ffmpeg -i 视频文件路径 -vcodec libwebp -lossless 0 -qscale 75 -preset default -loop 0 -vf scale=320:-1,fps=15 -an -vsync 0 output.webp

参考:

FFmpeg Codecs Documentation :: libwebp
FFmpeg Filters Documentation : scale
FFmpeg Filters Documentation : fps

上一篇下一篇

猜你喜欢

热点阅读