ffmpeg 图片转WebP速查表
输出统一为 WebP;
‑q 80画质,‑compression_level 6编码平衡。 注意:HEIC 需要 ffmpeg 带 libheif 解码库,普通 Windows release 版本不支持读取HEIC。
ffmpeg -i 123.png -c:v libwebp -lossless 1 -compression_level 6 123.webp
| 源文件类型 | 用途 | ffmpeg命令 | 备注 |
|---|---|---|---|
| JPG(照片) | 有损WebP,网页照片 | ffmpeg -i input.jpg -c:v libwebp -q 80 -compression_level 6 output.webp |
无透明,最常用 |
| PNG(图标/透明素材) | 无损WebP,保留Alpha透明 | ffmpeg -i input.png -c:v libwebp -lossless 1 -compression_level 6 output.webp |
用于logo、UI图标,不做照片 |
| PNG(带半透明的照片/贴纸) | 有损WebP,保留Alpha透明 | ffmpeg -i input.png -c:v libwebp -q 80 -compression_level 6 output.webp |
不用‑lossless,兼顾体积与半透明 |
| HEIC(iPhone照片) | 有损WebP,网页照片 | ffmpeg -i input.heic -c:v libwebp -q 80 -compression_level 6 output.webp |
HEIC无透明;ffmpeg缺少libheif会报错 |
Windows批处理(.bat)全套
1. JPG批量转WebP
@echo off
for %%i in (*.jpg *.jpeg) do ffmpeg -i "%%i" -c:v libwebp -q 80 -compression_level 6 "%%~ni.webp"
2. PNG批量转无损WebP(图标透明)
@echo off
for %%i in (*.png) do ffmpeg -i "%%i" -c:v libwebp -lossless 1 -compression_level 6 "%%~ni.webp"
3. HEIC批量转WebP
@echo off
for %%i in (*.heic *.HEIC) do ffmpeg -i "%%i" -c:v libwebp -q 80 -compression_level 6 "%%~ni.webp"
参数说明
| 参数 | 含义 | 推荐值 |
|---|---|---|
‑q 0‑100 |
有损WebP画质;数字越大画质越高 | 照片:75‑85 |
‑lossless 1 |
开启无损模式,仅PNG图标用,照片不要开 | 仅图标使用 |
‑compression_level 0‑9 |
编码速度/压缩比;越大越慢,体积越小 | 6(网页平衡) |
常见故障提示
- HEIC报错:
heif not found→ 当前ffmpeg版本缺少libheif解码库,换full编译版本。 - JPG不要加
‑lossless 1,会文件暴涨。 - 网页HTML用
<picture>标签做降级兜底,兼容老旧浏览器。