求助:如何编写Bat脚本通过ffmpeg.exe批量压缩MPG文件
批量压缩MPG文件的Bat脚本方案
直接给你能用的批量处理脚本,解决你用ffmpeg压缩MS Game Bar录制的大体积MPG文件的需求:
@echo off setlocal enabledelayedexpansion :: 遍历当前文件夹下所有MPG格式文件 for %%f in (*.mpg) do ( :: 检查目标压缩文件是否已存在,避免重复处理或覆盖 if not exist "%%~nf_l.mpg" ( echo 正在处理文件: %%f :: 执行ffmpeg压缩命令,若需要更优压缩率,可参考下面的优化参数 ffmpeg.exe -i "%%f" "%%~nf_l.mpg" echo 文件处理完成: %%~nf_l.mpg ) else ( echo 已存在压缩文件: %%~nf_l.mpg,跳过本次处理 ) ) echo 所有文件处理结束 pause
关键说明
- 适配需求:脚本会自动遍历当前文件夹下所有
.mpg文件,每个文件都会生成带_l后缀的压缩版(比如demo.mpg→demo_l.mpg) - 避坑处理:用双引号包裹文件名,解决文件名带空格时ffmpeg报错的问题;增加文件存在检查,防止重复处理或覆盖已有压缩文件
- 压缩优化(可选):如果默认压缩后的体积还是偏大,可替换ffmpeg命令为以下版本,用H.264编码器平衡体积与画质:
ffmpeg.exe -i "%%f" -c:v libx264 -crf 23 -c:a aac "%%~nf_l.mpg"
-crf 23:数值范围0-51,数值越大压缩率越高、画质越低,23是兼顾两者的推荐值-c:a aac:指定音频编码器为AAC,进一步压缩音频体积
你之前代码的问题
你之前写的脚本是针对MP4文件的重命名逻辑,和当前压缩MPG文件的需求完全不匹配,所以无法生效。
内容的提问来源于stack exchange,提问作者user2799077
相关产品推荐
相关产品推荐

