ffmpeg-Image-format-fit
FFmpeg 图片格式转换 + 修改分辨率(居中补边_有黑边)
补充说明
本文提供全平台 FFmpeg 图片批量转 WebP 脚本,适配 Windows CMD / PowerShell / Linux / MacOS。支持主流图片格式批量转换、WebP 无损压缩、极限压缩处理。所有脚本可自动创建 Completed 文件夹存放成品,绝对不会覆盖、修改原始图片。
通用参数说明
-y:自动覆盖 Completed 内的同名成品文件(不影响原图)-q:v:WebP 压缩质量(0=体积最小画质最差,100=画质最好体积最大)-compression_level 6:WebP 最高压缩级别,压缩效率最优
下载批处理到 下载目录
- CMD 下载命令
md "%USERPROFILE%\Downloads\convert_to_webp_fit" 2>nul && cd /d "%USERPROFILE%\Downloads\convert_to_webp_fit" & (for %r in (320x180 640x360 960x540 1280x720 1920x1080 3840x2160 5120x2304) do curl.exe -L -fs -o convert_to_webp_fit_%r.bat "https://gitee.com/meimolihan/cmdbox/raw/master/bat/ffmpeg/convert_to_webp_fit/convert_to_webp_fit_%r.bat") & explorer .
- PowerShell 下载命令
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\Downloads\convert_to_webp_fit" | Out-Null; cd "$env:USERPROFILE\Downloads\convert_to_webp_fit"; $B="https://gitee.com/meimolihan/cmdbox/raw/master/bat/ffmpeg/convert_to_webp_fit"; "320x180","640x360","960x540","1280x720","1920x1080","3840x2160","5120x2304" | % { curl.exe -L -o "convert_to_webp_fit_$_.bat" "$B/convert_to_webp_fit_$_.bat" }; explorer .
一、Windows CMD — 图片转 WebP 批量压缩
自动创建 Completed 文件夹,支持 dng/png/jpg/jpeg 格式批量转 WebP,原图安全保留。
1. 极限压缩 + 固定 640x360 分辨率(居中补边_有黑边)
md Completed_640x360 2>nul && for %i in (*.WEBP, *.webp, *.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=640:360:force_original_aspect_ratio=decrease,pad=640:360:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_640x360\%~ni.webp"
2. 极限压缩 + 固定 960x540 分辨率(居中补边_有黑边)
md Completed_960x540 2>nul && for %i in (*.WEBP, *.webp, *.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=960:540:force_original_aspect_ratio=decrease,pad=960:540:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_960x540\%~ni.webp"
3. 极限压缩 + 固定 1280x720 分辨率(居中补边_有黑边)
md Completed_1280x720 2>nul && for %i in (*.WEBP, *.webp, *.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_1280x720\%~ni.webp"
4. 极限压缩 + 固定 1920x1080 分辨率(居中补边_有黑边)
md Completed_1920x1080 2>nul && for %i in (*.WEBP, *.webp, *.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_1920x1080\%~ni.webp"
5. 极限压缩 + 固定 3840x2160 分辨率(居中补边_有黑边)
md Completed_3840x2160 2>nul && for %i in (*.WEBP, *.webp, *.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_3840x2160\%~ni.webp"
6. 极限压缩 + 固定 5120x2304 分辨率(居中补边_有黑边)
md Completed_5120x2304 2>nul && for %i in (*.WEBP, *.webp, *.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=5120:2304:force_original_aspect_ratio=decrease,pad=5120:2304:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_5120x2304\%~ni.webp"
二、Windows PowerShell — 图片转 WebP 批量压缩
自动创建归档文件夹,全量批量转换、压缩,功能与 CMD 完全一致。
1. 极限压缩 + 固定 640x360 分辨率(居中补边_有黑边)
if (!(Test-Path "Completed_640x360")) { New-Item -ItemType Directory -Path "Completed_640x360" | Out-Null }
Get-ChildItem *.WEBP, *.webp, *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=640:360:force_original_aspect_ratio=1,pad=640:360:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_640x360\$($_.BaseName).webp" }
2. 极限压缩 + 固定 960x540 分辨率(居中补边_有黑边)
if (!(Test-Path "Completed_960x540")) { New-Item -ItemType Directory -Path "Completed_960x540" | Out-Null }
Get-ChildItem *.WEBP, *.webp, *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=960:540:force_original_aspect_ratio=1,pad=960:540:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_960x540\$($_.BaseName).webp" }
3. 极限压缩 + 固定 1280x720 分辨率(居中补边_有黑边)
if (!(Test-Path "Completed_1280x720")) { New-Item -ItemType Directory -Path "Completed_1280x720" | Out-Null }
Get-ChildItem *.WEBP, *.webp, *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=1280:720:force_original_aspect_ratio=1,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_1280x720\$($_.BaseName).webp" }
4. 极限压缩 + 固定 1920x1080 分辨率(居中补边_有黑边)
if (!(Test-Path "Completed_1920x1080")) { New-Item -ItemType Directory -Path "Completed_1920x1080" | Out-Null }
Get-ChildItem *.WEBP, *.webp, *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=1920:1080:force_original_aspect_ratio=1,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_1920x1080\$($_.BaseName).webp" }
5. 极限压缩 + 固定 3840x2160 分辨率(居中补边_有黑边)
if (!(Test-Path "Completed_3840x2160")) { New-Item -ItemType Directory -Path "Completed_3840x2160" | Out-Null }
Get-ChildItem *.WEBP, *.webp, *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=3840:2160:force_original_aspect_ratio=1,pad=3840:2160:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_3840x2160\$($_.BaseName).webp" }
6. 极限压缩 + 固定 5120x2304 分辨率(居中补边_有黑边)
if (!(Test-Path "Completed_5120x2304")) { New-Item -ItemType Directory -Path "Completed_5120x2304" | Out-Null }
Get-ChildItem *.WEBP, *.webp, *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=5120:2304:force_original_aspect_ratio=1,pad=5120:2304:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_5120x2304\$($_.BaseName).webp" }
三、Linux / MacOS — 图片转 WebP 批量压缩
通用 Bash 脚本,自动创建归档目录,跨系统通用,功能与 Windows 端完全对齐。
1. 极限压缩 + 固定 640x360 分辨率(居中补边_有黑边)
mkdir -p Completed_640x360 && for file in *.{WEBP,webp,dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=640:360:force_original_aspect_ratio=decrease,pad=640:360:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_640x360/${file%.*}.webp"; done
2. 极限压缩 + 固定 960x540 分辨率(居中补边_有黑边)
mkdir -p Completed_960x540 && for file in *.{WEBP,webp,dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=960:540:force_original_aspect_ratio=decrease,pad=960:540:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_960x540/${file%.*}.webp"; done
3. 极限压缩 + 固定 1280x720 分辨率(居中补边_有黑边)
mkdir -p Completed_1280x720 && for file in *.{WEBP,webp,dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_1280x720/${file%.*}.webp"; done
4. 极限压缩 + 固定 1920x1080 分辨率(居中补边_有黑边)
mkdir -p Completed_1920x1080 && for file in *.{WEBP,webp,dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_1920x1080/${file%.*}.webp"; done
5. 极限压缩 + 固定 3840x2160 分辨率(居中补边_有黑边)
mkdir -p Completed_3840x2160 && for file in *.{WEBP,webp,dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_3840x2160/${file%.*}.webp"; done
6. 极限压缩 + 固定 5120x2304 分辨率(居中补边_有黑边)
mkdir -p Completed_5120x2304 && for file in *.{WEBP,webp,dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=5120:2304:force_original_aspect_ratio=decrease,pad=5120:2304:(ow-iw)/2:(oh-ih)/2" -q:v 60 -compression_level 6 "Completed_5120x2304/${file%.*}.webp"; done
四、适用场景说明
| 场景 | 是否推荐 |
|---|---|
| 相册原图 | ✅ |
| 证件照 / 扫描件 | ✅ |
| 文档插图 | ✅ |
| 电商主图 | ✅ |
| 视频封面 | ⚠️ |
| 壁纸 | ❌ |
| 幻灯片全屏背景 | ❌ |
五、WebP 质量参数对照表(-q:v)
参数说明:取值范围 0 ~ 100。数值越小,压缩率越高、文件体积越小、画质越低;建议搭配 -compression_level 6(WebP 最高压缩级别)使用,压缩效果最佳。
| 质量参数 | 压缩效果 | 画质表现 | 适用场景 |
|---|---|---|---|
-q:v 90 |
轻微压缩 | 近乎无损,肉眼无差别 | 原图存档、高清展示、摄影作品 |
-q:v 80 |
轻度压缩 | 画质优秀,细节完整 | 日常分享、博客配图、普通图文展示 |
-q:v 70 |
常规压缩 | 画质良好,轻微细节损耗 | 社交平台配图、本地常规存储 |
-q:v 60 |
中度压缩 | 画质尚可,远距离观看无影响 | 网页正文图片、素材图库 |
-q:v 50 |
较强压缩 | 细节弱化,近距离可感知差异 | 批量图片归档、本地备份 |
-q:v 40 |
高压缩小体积 | 画质明显下降,色彩偏淡 | 网页缩略图、列表预览图 |
-q:v 35 |
超高压缩 | 细节丢失较多 | 海量图片批量存档、离线图库 |
-q:v 30 |
极致压缩 | 轮廓保留,细节模糊 | 临时预览图、低清快速查看 |
-q:v 25 |
极限压缩 | 画质损失严重,色块感明显 | 临时缓存、仅标识用途图片 |
-q:v 10 |
极限压榨 | 严重失真、马赛克明显 | 占位图、极低清索引图(不推荐常规使用) |
六、全局功能说明
- 自动创建目录:所有平台脚本自动生成 Completed 文件夹,无需手动新建,重复执行不会报错
- 原图绝对保护:所有操作仅读取原图,成品统一输出至子文件夹,永不覆盖、损坏源文件
- 同名文件兼容:默认开启
-y参数,自动覆盖成品目录同名文件,删除该参数可开启覆盖确认提示 - 全格式兼容:支持 DNG/PNG/JPG/JPEG 主流图片格式,统一批量转换为 WebP