当前位置: 首页>前端>正文

拒绝gif!linux视频转webp动图

GIF格式的动态图片虽然很普及,但是由于其时代的局限性,已经不能满足当下网络信息传递的需求了,会被慢慢淘汰,而其替代者可能有两个:WebP/WebMAPNG

但支持APNG的网络浏览器和图片浏览器少得可怜,而且APNG体积巨大。

webp和apng的体积对比

test.mkv的基础信息:

  • 大小 952.3 K
  • 宽 1198
  • 高 1008
  • 时长 25秒
  • 比特率 310K/s
  • 帧率 30
  • 纵横比 1.19:1

转换时均使用默认参数:

ffmpeg -i test.mkv test.apng
ffmpeg -i test.mkv test.webp

生成的图片信息:

-rw-r--r-- 1 thepoy thepoy 191M  2月 14 13:16  test.apng
-rw-r--r-- 1 thepoy thepoy 974K  2月 14 13:20  test.webp

apng格式更适合对精准的色彩还原和细节有严格需求的场景,但默认参数生成的动图却是原视频的200倍就有些说不过去了。也许是ffmpegapng的支持还不到位吧。

所以我选择webp

转换webp详细参数

先看一条完整的命令:

ffmpeg -v warning -i input.mkv -vcodec libwebp_anim -vf fps=15 -lossless 0 -compression_level 6 -q:v 60 -preset text outpub.webp

ffmpeg通用参数:

-v  显示的日志等级
-i  待转换的视频文件路径
-vcodec  要使用的编码器
-vf  输出图片的一些参数,fps、scale等。fps默认值为30,动图通常用不到这么高的帧率,设置为10-15即可。

编码器libwebp_anim参数:

-lossless 有损或无损。默认值为0,即有损。
-compression_level 压缩等级。值的范围为0-6的整数,默认为4。
                   对于有损,值越大,质量越好,编码时间越长。
                   对于无损,值越大,尺寸越大,编码时间越长。
-q:v 图像质量,值为0-100,默认为75。
     对于有损,控制的是图像质量。对于无损,控制的是压缩图片时的工作量和时间。
-preset 预设配置,根据图片常规类型自动进行一些设置。
     none 不采取预设配置
     default 使用编码器默认的配置
     picture 数码照片,如人像
     photo 自然光的户外摄影
     drawing 具有高对比度的细节的手工或线条绘制的图像
     icon 小型彩色图像
     text 以文字为主的图像

使用

如果没有特殊的尺寸或精细度要求,使用默认命令就可以了。

ffmpeg -i input.mkv -vf fps=15 output.webp

https://www.xamrdz.com/web/2y31995290.html

相关文章: