[HD]ADN-027.avi —— 1280×720 / 29.97fps / h264 1996 kbps + mp3 48 kbps / 7043 秒 / 1.69 GiB原始推荐:-c:v av1_nvenc -preset p3 -tune hq -bf 6 -lookahead_level 2 -qp_cb_offset 12
结论:能用,但真正起作用的只有一半。
| 选项 | 实测结果 |
|---|---|
-preset p3 -tune hq | ✅ 正常 |
-bf 6 | ✅ 真起作用:同 cq 下体积小 5.5%(1648 vs 1745 kbps) |
-lookahead_level 2 | ❌ 空操作。-lookahead_level 1 / 2 / 5 三档输出字节数完全相同(8304792),说明这个驱动+构建下它没接上 |
-qp_cb_offset 12 | ⚠️ 只有 −0.5%(1639 vs 1648),可忽略 |
-bf 8 / -bf 16 | ❌ 直接编码失败(Nothing was written into output file)。SDK 13.1 宣传的「B 帧扩展到 31 帧」在这个驱动上拿不到 |
-bf 6 -lookahead_level 5 -rc-lookahead 32 | ❌ 组合起来直接失败 |
-rc-lookahead 32 | ⚠️ 能用,但同 cq 下码率涨到 1798(+9%),是在花更多码率换质量,不是省码率 |
前提问题:GPU 机的系统 ffmpeg 是 6.1.1,它的 av1_nvenc 根本没有 -bf 和 -lookahead_level。 必须换新版 —— 我从 GitHub 镜像拉了 ffmpeg N-126636(2026-09-18 master 静态构建)放到 GPU 机 ~/av1-work/ffmpeg,它才有这两个选项(还多了 -tune uhq)。
-bf 6 = 1648 kbps)| 改动 | 码率 | 相对基准 |
|---|---|---|
基准 -bf 6 | 1648 | — |
不加 -bf | 1745 | +5.9% |
-bf 2 | 1995 | +21% |
-bf 4 | 1840 | +12% |
-qp_cb_offset 12 | 1639 | −0.5% |
-multipass 2 | 1631 | −1.0% |
-tune uhq 替代 hq | 1601 | −2.9% |
-spatial-aq 1 -temporal-aq 1 | 2347 | +42% |
-spatial-aq 1 -aq-strength 15 | 3164 | +92% |
⚠️ 这些都是在固定 cq 下比体积:体积变小 ≠ 画质变好。cq 是画质靶点,
-bf/uhq让同样靶点下更省码率,那才是真收益。 ⚠️ 输出里用 ffprobe 看帧类型,全部是 I/P,没有 B 帧。-bf确实改变了编码结果,但 AV1 的 B 帧/隐藏参考帧在pict_type里体现不出来,所以这一点只能靠码率差佐证。
| 系统 ffmpeg 6.1.1 | 新版 ffmpeg N-126636 | |
|---|---|---|
| SVT-AV1 版本 | v1.7.0 | v4.2.0-73 |
| preset 4 跑 40 秒 720p | 130~140 秒(0.29× 实时) | 16~32 秒(2.1~2.4× 实时) |
| 同样 preset 4 crf 21 的输出 | 1235 kbps / SSIM 0.99623 | 1210 kbps / SSIM 0.99585 |
同一个 preset 编号,新版本快 7~8 倍、输出基本一样。 这意味着「画质优先」的整片时间从 6.7 小时(旧版 preset 4)掉到 约 50 分钟,慢档 preset 2 也降到 约 3 小时(0.53~0.75× 实时)。
顺带验证:v4.2.0 上 TF 的影响已经只剩 ~3% 码率差(v1.7.0 时代是拖影元凶),说明默认参数本身修好了。脚本里仍保留 enable-tf=0:tune=0 作保险,代价约 3%。
| v4.2.0 preset 4 / crf 21 / 900s 段 | 码率 | SSIM |
|---|---|---|
| 默认参数 | 1254 | 0.995607 |
enable-tf=0 | 1289 | 0.995667 |
enable-tf=0:tune=0 | 1298 | 0.995672 |
tune=0(TF 开) | 1260 | 0.995615 |
| 档位 | 平均码率 | 相对源 | 平均 SSIM | 整片预估 | 编码速度 |
|---|---|---|---|---|---|
| NVENC p3 hq cq36 | 790 | 40% | 0.99258 | 0.67 GiB | ~15× 实时 |
| NVENC p3 hq cq33 | 1020 | 51% | 0.99347 | 0.86 GiB | ~15× 实时 |
| NVENC p7 hq cq32 | 1159 | 58% | 0.99404 | 0.98 GiB | ~16× 实时 |
| SVT 4.2.0 preset 4 / crf 21 | 1210 | 61% | 0.99585 | 1.02 GiB | 2.1~2.4× |
| SVT 4.2.0 preset 6 / crf 21 | 1236 | 62% | 0.99568 | 1.05 GiB | 2.9~3.5× |
| SVT 1.7.0 preset 4 / crf 21 | 1235 | 62% | 0.99623 | 1.05 GiB | 0.29× |
| SVT 4.2.0 preset 3 / crf 21 | 1235 | 62% | 0.99597 | 1.05 GiB | 1.0~1.3× |
| NVENC p5 UHQ cq32 | 1311 | 66% | 0.99466 | 1.11 GiB | ~12× 实时 |
| NVENC p3 hq cq30 | 1340 | 67% | 0.99426 | 1.13 GiB | ~15× 实时 |
| SVT 4.2.0 preset 2 / crf 21 | 1343 | 67% | 0.99622 | 1.14 GiB | 0.53~0.75× |
| SVT 4.2.0 preset 4 / crf 19 | 1353 | 68% | 0.99606 | 1.14 GiB | 2.1~2.4× |
| SVT 1.7.0 preset 4 / crf 19 | 1382 | 69% | 0.99644 | 1.17 GiB | 0.29× |
| NVENC p3 hq cq26 | 1994 | 100% | 0.99525 | 1.69 GiB | ~15× 实时 |
| NVENC p7 hq cq26 | 2111 | 106% | 0.99555 | 1.79 GiB | ~16× 实时 |
| NVENC p5 UHQ cq26 | 2312 | 116% | 0.99582 | 1.96 GiB | ~12× 实时 |
| 目标码率 | SVT-AV1 4.2.0 | av1_nvenc | 差距 |
|---|---|---|---|
| ~1200 kbps | preset 4 crf 21 → 0.99585 @1210 | p7 cq32 → 0.99404 @1159 | SVT +0.0018 |
| ~1340 kbps | preset 2 crf 21 → 0.99622 @1343 | p3 cq30 → 0.99426 @1340<br>p5 UHQ cq32 → 0.99466 @1311 | SVT +0.0016 ~ +0.0020 |
NVENC 要用 cq 26(1994~2312 kbps,比原片还大)才能摸到 0.9952~0.9958,仍然低于 SVT 在 1210 kbps 的水平。
enable-tf=0,软编反超,且速度差距从「7 分钟 vs 6.7 小时」缩小到「7 分钟 vs 53 分钟」。本次所有档位的 SSIM 都挤在 0.9926 ~ 0.9964 这个极窄区间里。这说明:
→ 对比页就是为此做的:同一段素材、同一帧位、叠加/并排/逐帧三种看法。见文末地址。
(本机 ffmpeg 未编入 libvmaf,vmafmotion 可用但只能测运动复杂度,不能当质量分。)
# 新版 ffmpeg(含 -bf/-lookahead_level/-tune uhq,且自带 SVT-AV1 v4.2.0)
# 已放在 GPU 机 ~/av1-work/ffmpeg
# ① 你要试的 NVENC 均衡档(实测有效部分)
~/av1-work/ffmpeg -i in.avi -map 0:v:0 -map "0:a:0?" -c:a copy -sn \
-c:v av1_nvenc -preset p3 -tune hq -bf 6 -cq 30 -qp_cb_offset 12 \
-pix_fmt yuv420p -movflags +faststart out.mp4
# ⚠ 别加 -lookahead_level(空操作);-bf 别超过 6(8 会失败)
# ⚠ 想要画质而不是速度,把 -tune hq 换 -tune uhq
# ② 质量优先(推荐)
~/av1-work/ffmpeg -i in.avi -map 0:v:0 -map "0:a:0?" -c:a copy -sn \
-c:v libsvtav1 -preset 4 -crf 21 \
-svtav1-params "lp=14:enable-tf=0:tune=0" -threads 14 \
-pix_fmt yuv420p10le -movflags +faststart out.mp4
http://192.168.31.76:8899/05-下载服务维护/ADN-027-编码对比/index.html?inline=1
页面里的对比是有损二次参考(浏览器又解码了一次),要更准可以直接下载同目录下的原始 mp4 用本地播放器看。
已按质量优先档启动整片编码(GPU 机后台):
preset 4 / crf 21 / enable-tf=0:tune=0 / yuv420p10le,音频直拷,14 线程 + nice 19~/av1-work/out/ADN-027-av1-p4c21.mp4av1-slim.sh 还在用系统 ffmpeg 6.1.5 + SVT-AV1 1.7.0。若换用这套新构建,本地整库瘦身时间预计也能压缩 5 倍以上(本机 4 线程 Haswell,具体要实测)。enable-variance-boost 等),值得重新扫一遍最优参数集。-bf 8~31 需要更新的驱动/SDK 才能用,当前驱动 610.43.02 拿不到。