enable-tf=0 + tune=0,输出 10-bit问「画面最好 + 文件最小用什么」,其实混了三个目标。必须拆开:
| 目标 | 含义 | 决定因素 |
|---|---|---|
| 画质最好 | 同体积下最接近原片 | 编码器效率 + preset 慢档 + 关掉 TF |
| 体积最小 | 同画质下最小 | 同上,外加 CRF 定多高 |
| 二者兼顾 | 这是不可能的三角 | 只能「固定画质、体积随编码器效率走」 |
关键认知:画质 和 体积 不是两个可以同时优化的独立变量。 正确做法是先钉死画质靶点(CRF),让体积成为结果;能同时改善两者的只有「换更高效的编码器」和「用更慢的 RD 优化」。
重编码不可能让「已经压得很紧」的源片同时变小又变好 —— 那是代际损失。 只有源码编码效率低 / 码率虚高时,AV1 才能做到「画质不降、体积砍一半」。
判定标准(用每像素比特数 bpp):
bpp = 码率(bps) / (宽 × 高 × 帧率)
| 源码 bpp | 判断 | 该怎么办 |
|---|---|---|
| > 0.12 | 明显虚高(老 H.264 高清、高码率 HEVC) | AV1 能省 40~60%,画质还能持平或更好 |
| 0.06 ~ 0.12 | 中等 | 能省 20~40%,需实测 |
| < 0.05 | 已经压得很紧 | 别转,重编只会掉画质。这种情况「画质最好」= 保留原片 |
举例:[HD]ADN-027.avi(720p,7043 秒,1.69GB)≈ 2.06 Mbps,bpp≈0.075 —— 属于「中等偏紧」。 这就是上次 crf 33 一压就糊的原因:源本身余量已经不多,再砍 73% 必然崩。
ffmpeg -hide_banner -nostdin -i "输入.mkv" \
-map 0:v:0 -map "0:a:0?" -c:a copy -sn \
-c:v libsvtav1 -preset 4 -crf 21 \
-pix_fmt yuv420p10le \
-svtav1-params "enable-tf=0:tune=0:lp=16" -threads 16 \
-movflags +faststart "输出.mp4"
已封进脚本,一条命令即可:
bash ~/Downloads/av1-slim.sh --archive --threads 16 --dry-run # 先看清单
bash ~/Downloads/av1-slim.sh --archive --threads 16 # 正式跑
# 珍藏片再慢一档:
bash ~/Downloads/av1-slim.sh --archive --preset 2 --crf 19 --min-size 2000
| 参数 | 值 | 理由 |
|---|---|---|
| 编码器 | libsvtav1 | 免费软件 AV1 里效率最高、工程最成熟的一档。HEVC(x265) 同画质体积大 15~25%,H.264 更大 |
-preset | 4(珍档 2) | preset 越慢 → 同画质体积越小。12→4 每档约省 8~12%,累计约省 30%。这就是「不要速度」换来的东西 |
-crf | 21(18~22 区间) | 1080p 真人实拍 crf 21 基本视觉无损。老片/颗粒片 18~19,动画/干净源可到 24 |
enable-tf=0 | 必须 | SVT-AV1 默认的时域滤波会产生块状伪影 + 运动拖影,这就是上次翻车的主因之一 |
tune=0 | VQ | SVT-AV1 默认 tune 是 PSNR(数值最优化),不是视觉最优。改 VQ 后按人眼偏好分配码率 —— 这条此前一直没开,白亏 |
-pix_fmt yuv420p10le | 10-bit | 8-bit 源也编成 10-bit:同画质省 2~5% 码率,还能消除暗部 banding。免费收益,播放兼容性没问题 |
-c:a copy | 音频直拷 | 重编音频只会更差更大,直接复制 |
-movflags +faststart | moov 前置 | 网页预览秒开(我们的下载平台正好吃这个) |
不是所有教程里的参数在 v1.7.0 上都存在。逐条实测结果:
| 可用 ✅ | 不可用 ❌(较新版本才有) |
|---|---|
enable-tf=0、tune=0/2、film-grain=8、film-grain-denoise=1、enable-restoration=1、enable-cdef=1、enable-dlf=1、keyint、scd、enable-tpl-la、enable-mfmv、enable-overlays、hierarchical-levels、pred-struct、fast-decode | enable-variance-boost、variance-boost-strength、qp-max、qp-min、sharpness、ac-bias、enable-dlf=2/3、enable-restoration-filtering |
⚠ 坑:写错的 svtav1-params 不会中断编码,只在日志里留一行 Error parsing option xxx,然后静默按默认值跑。 所以别抄网上的参数清单 —— 每加一条都要用 1 秒黑场试编验证(脚本里我只放了实测通过的那几个)。
别画蛇添足:enable-restoration / cdef / dlf 在 preset 4 上本来就是默认开启的,写不写一样。
| 方案 | 为什么不选 |
|---|---|
av1_nvenc(5060 Ti 硬编) | 速度档。默认参数下能打赢「默认参数的软编」,但软编一旦 enable-tf=0 + preset 4,硬编的非关键帧质量仍追不上。既然不要速度,就没理由用硬编 |
libaom-av1 -cpu-used 2 | 本机 ffmpeg 就有。极慢档理论上比 SVT 再省 1~3%,但慢 5~10 倍。为 1% 体积多花几天,性价比极低,不推荐 |
libx265(HEVC 软编) | 只在播放设备不支持 AV1 时用。同画质体积比 AV1 大 15~25% |
librav1e | 效率不如 SVT-AV1,无优势 |
如果源是颗粒感很重的老片/胶片转制,把颗粒交给解码器「合成」而不是逐帧编码,体积能再砍 30~50%:
--svt-params "enable-tf=0:tune=0:film-grain=8:film-grain-denoise=1"
film-grain 强度重新合成颗粒SSIM 抓不到拖影 —— 上次 SSIM 0.9817 明明过线,画面却是糊的。
| 手段 | 可用性 | 说明 |
|---|---|---|
ssim / psnr 滤镜 | ✅ 本机有 | 只能挡住「明显劣化」,不能作为放行依据 |
libvmaf(VMAF) | ❌ 本机 ffmpeg 没编进去 | 需要另装;即使有,VMAF 对拖影也不够敏感 |
vmafmotion 滤镜 | ✅ 本机有 | 能测运动复杂度,用来挑运动最剧烈的片段做抽样 |
| 肉眼并排对比 | ✅ 最终依据 | 抽 3~5 个运动剧烈的 10 秒片段,同屏放大对比,看拖影/涂抹/暗部色块 |
脚本里的 --ssim-min 0.995(archive 模式自动提高)+ 抽样机制是兜底防线,不是验收。最终要眼睛过。
参照本机实测(i7-4720HQ,4 线程):preset 12 = 0.91× 实时,preset 10 = 0.48×,preset 8 = 0.28×(约每档慢 1.34 倍)。
| 机器 | preset 4(1080p) | 一部 2 小时片子 |
|---|---|---|
| 本机 DSH(4c/8t Haswell) | ≈ 0.09× 实时 | ≈ 23 小时 |
| GPU 机(i5-12600HX,16 线程) | ≈ 0.35~0.45× 实时 | ≈ 4.5~6 小时 |
当前状态(2026-09-19 20:48 实测):GPU 机正忙 —— GPU 利用率 100%、显存 15.5/16.3 GB(ComfyUI 进程 pid 3018),不能动。
已探明的资源情况:
| 项 | 值 |
|---|---|
| CPU | i5-12600HX(12 核 16 线程,12 代)→ 比本机快约 4~5 倍 |
| 内存 | 32 GB(可用 16 GB) |
| 磁盘 | / 1.2 T,只剩 200 G → 并发度要控制,别一次拉太多源 |
| ffmpeg | 6.1.1,SVT-AV1 v1.7.0(和本机同版本,参数可用性结论通用) |
流程(等它空闲后执行):
--archive 编码;~/.av1-slim/backup.tsv 记好回滚备份。| 想要 | 用什么 |
|---|---|
| 画质与体积的最优解(不看速度) | libsvtav1 -preset 4 -crf 21 -pix_fmt yuv420p10le -svtav1-params "enable-tf=0:tune=0" |
| 少数最值得的片子 | preset 2 / crf 19 |
| 颗粒重的老片 | 上面 + film-grain=8:film-grain-denoise=1(有代价) |
| 已压紧的低码率源(bpp<0.05) | 别转,保留原片就是画质最优 |
| 全库批量(要速度) | 见 2026-09-19-50系显卡编码选择-实测与建议.md 的 av1_nvenc 档 |
-map 0:v:0 -map 0:a:0? -sn,只保留第一条视频 + 第一条音轨,字幕和其他音轨不保留。需要保留的话要单独做(文本字幕可转 mov_text,PGS 图形字幕要另想办法),说一声我来加。.mp4:源是 .avi/.mkv 时文件名会改成 .mp4,回滚记录里有对应关系。2026-09-19-50系显卡编码选择-实测与建议.md —— 要速度时用 av1_nvenc 的那一档AV1瘦身脚本-使用说明.md —— 脚本全部参数AV1瘦身记录.md —— 历次实跑结果与回滚记录