Highlight
AVQT(Advanced Video Quality Tool)在 WWDC 2022 带来三项关键更新:交互式 HTML 可视化报告、时间窗口选择支持精确评估特定片段、以及 Linux 平台支持(beta 版)。同时 raw YUV 格式支持从少数几种扩展到 20 种。
核心内容
为什么需要 AVQT
视频编码后,怎么知道质量好不好?肉眼观看主观性太强,PSNR 等客观指标又和人的真实感受有偏差。AVQT 是一个全参考(full-reference)视频质量评估工具,它对比原始视频和压缩/处理后的视频,输出一个贴近人类主观评分的质量分数。
(00:26)
AVQT 有三个独特优势:
- 高相关性:分数和人的主观评分高度一致,适用于动画、自然场景、运动等各种内容类型
- 速度快:基于 AVFoundation 和 Metal,在 M1 Ultra 上评估 2 小时 4K HEVC 电影只需 20 分钟(6 倍实时速度)
- 可配置:支持不同观看场景,通过显示分辨率、尺寸和观看距离调整评估参数
交互式 HTML 报告
以前 AVQT 只输出命令行数字,难以直观判断质量在时间轴上的分布。新版本增加了 --visualize 参数,生成交互式 HTML 报告。
(02:33)
报告包含:
- 逐帧和分段 AVQT 分数曲线图,支持缩放和平移
- 鼠标悬停显示具体时间、分数和帧索引
- 饼图展示分数在五个质量等级(Bad、Poor、Fair、Good、Excellent)的分布
- 底部附带 PSNR 分数对比
生成的报告是纯 HTML 文件,可以直接在 Safari 中打开,不需要安装 AVQT。方便团队成员之间分享和讨论。
时间窗口评估
整段视频的平均分可能掩盖局部问题。比如 10 分钟的视频,其中 30 秒出现严重压缩伪影,但整体平均分仍然正常。
(05:03)
新版本支持四个新参数精确指定评估范围:
--start-frame/--end-frame:按帧号指定--start-time/--end-time:按时间戳指定
这样可以直接评估特定场景、转场或高复杂度片段,比处理完整视频再手动筛选更快。
Raw YUV 格式扩展
AVQT 原本支持所有 AVFoundation 视频格式,另外也支持 raw YUV。2022 年把 raw YUV 支持从少数几种扩展到 20 种,覆盖多种色度采样(4:2:0、4:2:2、4:4:4)和位深度(8/10/12/16-bit)。
(06:37)
参数体系也做了调整:旧的 reference-fourcc 和 test-fourcc 已弃用,改为 chroma-subsampling 和 bit-depth 两个独立参数。新参数更清晰,也更容易扩展。
Linux 版本(Beta)
很多视频编码流水线部署在 Linux 服务器或云端。之前需要把视频传回 Mac 跑 AVQT,增加延迟和复杂度。
(07:31)
AVQT for Linux(beta 版)让开发者可以直接在 Linux 服务器上评估视频质量。特点:
- 无需外部依赖,即插即用
- 命令行参数和 macOS 版本完全一致
- 支持全部 20 种 raw YUV 格式
- 输出文件格式和 macOS 版本相同
- 观看条件参数暂不可用,后续版本会添加
详细内容
基础用法
评估一个压缩视频的质量:
avqt -reference reference.mov -test compressed.mov
输出示例:
AVQT Score: 0.85
Processing time: 18m 32s
关键点:
-reference指定原始无损视频-test指定待评估的压缩/处理后视频- 两个视频的分辨率和时长必须匹配
- 分数范围 0-1,越接近 1 质量越好
生成交互式报告
avqt -reference reference.mov -test compressed.mov --visualize
运行完成后,终端会输出报告文件路径:
Report generated: /path/to/report.html
在 Safari 中打开即可查看交互式图表。
关键点:
--visualize参数触发 HTML 报告生成- 报告包含可交互的逐帧质量分数曲线
- 支持缩放和平移检查任意时间段
- 饼图展示质量等级分布
- 可直接分享给同事,无需安装 AVQT
评估特定场景
用 QuickTime Player 找到目标场景的起止帧号,然后:
avqt -reference reference.mov \
-test compressed.mov \
--start-frame 270 \
--end-frame 486
关键点:
--start-frame和--end-frame按帧号精确裁剪评估范围- 只处理指定片段,比全片评估更快
- 适合对比不同编码参数在特定场景下的表现
- 也可使用
--start-time和--end-time按时间戳指定
处理 Raw YUV 视频
avqt -reference reference.yuv \
-test compressed.yuv \
-width 1920 \
-height 1080 \
--chroma-subsampling 4:2:0 \
--bit-depth 10
关键点:
- Raw YUV 需要手动指定宽度和高度
--chroma-subsampling指定色度采样格式--bit-depth指定位深度- 旧参数
reference-fourcc和test-fourcc已弃用,应迁移到新参数
在 Linux 服务器上使用
# 下载 AVQT for Linux 并解压
./avqt -reference input.mov -test output.mov --visualize
关键点:
- Linux 版本为 beta,命令行接口和 macOS 完全一致
- 无需安装额外依赖
- 适合集成到 CI/CD 编码流水线
- 观看条件参数(显示分辨率、尺寸、距离)暂不可用
核心启发
搭建自动化视频质量监控流水线
- 做什么:在视频编码完成后自动运行 AVQT,质量不达标时自动调整编码参数重试
- 为什么值得做:Linux 版本让 AVQT 可以部署在编码服务器上,结合
--visualize生成报告供团队查看 - 怎么开始:在编码脚本后添加 AVQT 评估步骤,设定分数阈值(如 0.8),低于阈值时增加码率重新编码
建立视频质量回归测试
- 做什么:维护一组代表性测试片段,每次编码器升级后跑 AVQT 对比分数变化
- 为什么值得做:时间窗口功能让你可以聚焦编码器最薄弱的场景类型(如暗部、快速运动)
- 怎么开始:挑选 5-10 个典型场景,用
--start-frame/--end-frame精确评估,将分数记录到数据库追踪趋势
做视频压缩参数调优工具
- 做什么:一个可视化工具,批量测试不同编码参数组合,用 AVQT 报告直观对比质量差异
- 为什么值得做:交互式 HTML 报告让非技术人员也能看懂质量差异,加速决策
- 怎么开始:用脚本批量生成不同参数的版本,跑 AVQT
--visualize,把报告聚合到一个对比页面
为直播平台做实时质量监控
- 做什么:在直播推流端定期截取片段,用 AVQT 评估编码质量,及时发现画质下降
- 为什么值得做:AVQT 在 M1 Ultra 上 6 倍实时速度,足够快用于近实时评估
- 怎么开始:每隔几分钟截取一段参考源和编码输出的对比片段,后台跑 AVQT,分数异常时告警
关联 Session
- Evaluate videos with Advanced Video Quality Tool — AVQT 2021 年初版介绍,了解基础概念和用法
- Create great video content for spatial computing — 空间计算设备的视频内容制作指南
- Deliver reliable streams with HLS Content Steering — HLS 内容调度,确保视频传输可靠性
评论
GitHub Issues · utterances