与 v87 默认值一致的命令行,以及每个取值的实测依据。括号内为该参数在原实验中的记录条件; 未标注者适用于全部六类素材。质量值统一按 Q30(Intel)/ cq36(NVIDIA), 与工具当前默认一致。
-c:v hevc_qsv -preset medium -global_quality:v 30 \
-g <按帧率换算> -tag:v hvc1 -movflags +faststart \
-c:a libopus -b:a 96k -vbr:a on -ac <源声道数>
当前实现为"ICQ + 反解质量值":先按 Q 编码,实测超出上限则自动降 Q 重编, 命令中不出现码率参数。旧版 VBR 硬封路径仅在需要限制峰值带宽时保留:
# 反解路径(默认):仍走 -global_quality:v,超出后自动降低 Q 重编
# 硬封路径(可选):显式给出码率与峰值
-b:v <CAP>k -maxrate <1.2 × CAP>k -bufsize <2.4 × CAP>k -extbrc 1
GOP 按每个文件的帧率换算,不可写死帧数: 59.94fps 取 1 秒 → 60 帧级,22fps 取 2 秒 → 44 帧级,但 QSV 有约 48 帧的最小关键帧间隔, 低帧率素材会被自动抬到该下限(22fps 请求 2 秒实际约 2.18 秒,属正常行为,自检已按换算后的秒数判定)。
| 项 | 取值 | 依据 |
|---|---|---|
| 编码器 | hevc_qsv + ICQ |
同码率优于 CQP;相比上限硬封的 VBR,最差帧质量差距明显(min VMAF 约 75 对 54) |
| 质量 | Q30(ICQ) | 1080p 实测 856 kbps / VMAF 88.6;退到 Q32 可再省 27% 体积,代价为约 4.8 分。默认取 Q30,体积敏感时再下调 |
| 码率上限 | 2500 kbps (峰值 1.2×,缓冲 2.0 s) |
仅对 1290p60 / 2K / 4K 生效;中小素材在 Q30 下约 400~860 kbps,不会触发。接管件实测均值 2.46 Mbps,为上限的 98.5% |
| preset | medium(TU=4) NVENC p5 |
7 个 preset 名实际只映射 3 档 TargetUsage;TU4 相对 TU1 快 1.44 倍,画质差 0.21(ICQ 下 0.06) |
| 音频 | libopus 96k VBR(实际约 65 kbps) |
帧长 60 ms 与 20 ms 画质相同但码率最低;VBR 比 constrained 省 8%。外部实测透明阈值约 128k,96k 为性价比点 |
| 音频直通 | 源码率 ≤ 目标 × 1.25 时 copy |
Opus → Opus 属有损再编码,为省几 kbps 损失一代音质不划算 |
| 并发 | 2 路 | 吞吐拐点:2 路 +75%、3 路仅 +6%,但单文件速度由 1.92× 降至 1.48× |
| GOP | 自适应:相机 / 10bit / 4K → 1 s 其余 → 2 s |
手机实测:相机 / 录屏 / 电影仅 1 秒跟手,2 秒即不流畅;直播流 1~4 秒均可。体积最优值更大(8~30 s),属手感与体积的取舍 |
| 解码链 | QSV 零拷贝 → d3d11va → CPU | CPU 软解会降至 0.x 倍速;降级顺序固定,编码器错误不触发解码回退 |
| Q 缓存 | 关闭 | 缓存会把简单文件按同规格最难文件的 Q 压缩,实测最多损失 8 档画质 |
| 上限判定 | 源码率 ÷ 5 |
零等待估算(实测比例 1/4~1/6);估算偏差导致实际超限时,编码后按实测值重编 |
| 容器 | MP4(hvc1 + faststart) |
MKV 不写 hvc1 sample entry,交由 Matroska 自身标记;MOV 强制 AAC |
本机为 Intel 平台,以下参数取自脚本实现与标定结果,未经真实 N 卡端到端验证。
# 非上限(纯 CQ)
-preset p5 -tune hq -rc vbr -cq 36 -b:v 0 -multipass qres
# 上限(QVBR,一遍完成)
-preset p5 -tune hq -rc vbr -cq 36 -b:v <CAP>k \
-maxrate <1.2 × CAP>k -bufsize <2.4 × CAP>k
| 项 | 实测依据 |
|---|---|
-tune hq 而非 uhq | uhq 慢 2.3 倍(0.607× 对 1.38×),同码率 VMAF 反而更低(53.85 对 54.90) |
-multipass qres | fullres 比不开还慢 11% 且 VMAF 无变化(54.89 对 54.90);qres 反而 +0.30 且几乎不耗时 |
| 质量值 cq36 | 实拍类 NVENC 数字约为 QSV +6;实测 cq36~38 ≈ QSV Q30 |
| 多引擎卡 | RTX 5090 / 5080 等具备 split-encode,可在标定选中时下发 -split_encode_mode |
三个标尺不可混用:AV1 的 CQ 为 0~255,HEVC 为 0~51,QSV 为 QP 1~51。 把 QSV 的 Q30 直接搬到 NVENC HEVC,在该标尺上属极限压缩。脚本按编码器分别给默认值(30 / 36 / 40)。
| 参数 | 实测结果 |
|---|---|
-low_delay_brc 1 | 不可用 35 kbps / VMAF 0 |
-bf 0(QSV) | 编码失败 直接报错退出 |
| look-ahead 系列 | 崩溃 硬件解码与 look-ahead 组合在本驱动上触发 Invalid FrameType:0. |
-p_strategy 2 | 编码失败 官方要求同时给 -bf 0 |
-bf 4 / -bf 8 | 更差 码率 +6.6% / +3.9%,VMAF −0.73 / −0.66 |
-idr_interval 4 | 更差 码率 −3.1% 但 VMAF −1.10 |
-dblk_idc 1 | 更差 VMAF −0.25 |
NumRefFrame=2 | 更差 VMAF 下降 7.6 分 |
ICQ 是恒定质量模式,没有码率目标,因此所有码率控制类参数无处发力。 以下参数在 ICQ 下输出逐字节相同:
-extbrc · -mbbrc · -look_ahead_depth ·
-adaptive_i · -adaptive_b · -b_strategy ·
-scenario archive · -rdo 1 · -max_frame_size_p ·
-transform_skip 1 · NumRefFrame=8
-extbrc 是唯一有条件的例外:仅在上限(VBR)模式有效,
实测省 3.7%;ICQ 下为 0%。