Skip to content

视频质量打分系统使用指南

📌 功能概述

自动评估合成视频的质量,提供5个维度的详细评分和优化建议:

  • 🔍 清晰度评分 - Laplacian方差分析
  • ☀️ 亮度适中性 - 0-255范围归一化
  • 🎨 对比度评分 - 画面层次感
  • 📐 分辨率评分 - 480p ~ 4K等级
  • 🎬 运动流畅度 - 帧率与光流分析

🚀 快速开始

1. 自动启用(默认)

质量评分已默认启用,合成完成后自动分析并显示评分卡片。

2. 手动控制

如需关闭评分(加快处理速度):

javascript
options: {
  enable_quality_score: false  // 关闭质量评分
}

📊 评分指标详解

清晰度(Sharpness)0-100分

评估方法

  • 使用 FFmpeg signalstats filter 提取 YDIF(帧间差异)
  • Laplacian 方差计算边缘清晰度
  • 考虑分数稳定性(标准差加分)

评分标准

  • 90-100分:非常清晰,细节丰富
  • 70-89分:清晰可见,正常质量
  • 50-69分:略有模糊,可接受
  • <50分:模糊严重,需优化

优化建议

  • 分数 <70:使用 Real-ESRGAN 超分提升画质

亮度适中性(Brightness)0-100分

评估方法

  • 提取 YAVG(Y通道平均值)
  • 归一化到 0-1 范围
  • 理想区间:0.4-0.6

评分标准

  • 100分:亮度在 0.4-0.6(完美)
  • 80分:亮度在 0.3-0.4 或 0.6-0.7(良好)
  • 60分:亮度在 0.2-0.3 或 0.7-0.8(偏暗/偏亮)
  • 40分:亮度 <0.2 或 >0.8(严重过曝/欠曝)

优化建议

  • 分数 <60:使用颜色校正调整曝光

对比度(Contrast)0-100分

评估方法

  • 基于清晰度指标归一化
  • 简化版对比度估算

评分标准

  • 80-100分:层次分明
  • 60-79分:对比适中
  • <60分:画面平淡

优化建议

  • 分数 <60:增强对比度或使用 LUT

分辨率(Resolution)0-100分

评估方法

  • 像素总数分级

评分标准

4K (3840×2160)    → 100分
2K (2560×1440)    → 95分
1080p (1920×1080) → 90分
720p (1280×720)   → 75分
480p (854×480)    → 60分
<480p             → 40分

优化建议

  • 分数 <75:使用 Real-ESRGAN 超分到 1080p+

运动流畅度(Motion Smoothness)0-100分

评估方法

  • 基于帧率分级
  • 光流分析(简化版)

评分标准

≥60fps  → 100分
≥30fps  → 85分
≥24fps  → 70分
<24fps  → 50分

优化建议

  • 分数 <70:使用 FILM/RIFE 插帧到 60fps

🏆 质量等级

等级分数范围说明
S90-100优秀,可直接发布
A80-89良好,轻微优化
B70-79中等,建议优化
C60-69及格,需要改进
D<60较差,强烈建议重制

💡 使用示例

示例 1:查看质量评分

javascript
// 前端默认开启质量评分
await start()  // 合成完成后自动显示评分卡片

评分卡片显示

🏆 视频质量评估                [S 级]

         85.5
        综合评分

📊 各维度得分:
清晰度:   ████████████████░░ 88
亮度适中: ███████████████░░░ 75
对比度:   ███████████████░░░ 82
分辨率:   ██████████████████ 90
运动流畅: ████████████████░░ 85

💡 优化建议:
• 亮度不理想,建议调整曝光或使用颜色校正

示例 2:根据建议优化

场景:评分 72 分(B级),清晰度 65 分,帧率 30fps

优化步骤

  1. 启用超分(提升清晰度和分辨率)

    bash
    # 使用 Real-ESRGAN 超分到 1080p
    python super_resolution.py --input video.mp4 --output video_hd.mp4
  2. 启用插帧(提升流畅度)

    bash
    # 使用 FILM 插帧到 60fps
    python interpolate_film.py --input video_hd.mp4 --fps 60 --output video_final.mp4
  3. 再次评分

    • 预期清晰度:65 → 85+
    • 预期分辨率:75 → 90
    • 预期流畅度:85 → 100
    • 综合评分:72 → 90+(S级)

🔧 高级配置

调整采样帧数

默认采样 20 帧,可自定义:

python
# 快速评分(10帧)
quality_score = QualityScorer.analyze_video(video_path, sample_frames=10)

# 完整评分(50帧,更准确)
quality_score = QualityScorer.analyze_video(video_path, sample_frames=50)

返回数据结构

json
{
  "overall_score": 85.5,
  "grade": "A",
  "dimensions": {
    "sharpness": 88.2,
    "brightness": 75.0,
    "contrast": 82.1,
    "resolution": 90.0,
    "motion_smoothness": 85.0
  },
  "video_info": {
    "duration": 15.3,
    "fps": 30,
    "resolution": "1280x720",
    "frames_analyzed": 20
  },
  "suggestions": [
    "亮度不理想,建议调整曝光或使用颜色校正"
  ]
}

⚙️ 技术实现

后端模块

文件/pybridge/src/bridge/quality_scorer.py

核心类

python
class QualityScorer:
    @staticmethod
    def analyze_video(video_path, sample_frames=30)
        # 分析视频质量,返回评分结果
    
    @staticmethod
    def _score_sharpness(scores)
        # 清晰度评分算法
    
    @staticmethod
    def _score_brightness(scores)
        # 亮度评分算法
    
    # ... 其他评分方法

集成流程

合成完成 → 质量评估 → 保存评分 → 前端显示
   ↓          ↓          ↓          ↓
ffmpeg   scorer    jobs[id]    卡片UI

Pipeline 可视化

✅ 音频拼接
✅ 视频缩放
✅ 运镜效果
✅ 转场合成
✅ 字幕渲染
✅ 最终编码
🔄 质量评估  ← 新增阶段

📈 性能说明

采样帧数处理时间准确度适用场景
10帧~2秒快速预览
20帧(默认)~4秒通用场景
50帧~10秒极高精确评估

优化建议

  • 短视频(<30s):10-20帧
  • 中等视频(30s-2min):20-30帧
  • 长视频(>2min):30-50帧

⚠️ 注意事项

  1. FFprobe 依赖

    • 需要 FFmpeg 完整安装
    • 检查:ffprobe -version
  2. 评分仅供参考

    • 基于统计分析,非感知质量
    • 最终质量以人眼观看为准
  3. 默认启用

    • 会增加约 5-10秒处理时间
    • 可通过 enable_quality_score: false 关闭
  4. 分数解读

    • 综合评分:加权平均(清晰度 35%,其他各 15-20%)
    • 建议优先关注清晰度和分辨率

🎯 典型场景

场景 1:解说视频

期望质量

  • 清晰度:80+(文字清晰可见)
  • 亮度:70+(适中偏亮)
  • 分辨率:75+(720p起步)

优化策略

  • 如果清晰度 <80:超分 + 字幕优化
  • 如果亮度 <70:色彩校正

场景 2:剧情短片

期望质量

  • 清晰度:85+(画面细腻)
  • 流畅度:85+(30fps+)
  • 对比度:80+(层次分明)

优化策略

  • 如果流畅度 <85:FILM插帧到60fps
  • 如果对比度 <80:调色增强

场景 3:知识讲解

期望质量

  • 清晰度:90+(极致清晰)
  • 分辨率:90+(1080p)
  • 亮度:80+(明亮)

优化策略

  • 清晰度 <90:Real-ESRGAN x4超分
  • 分辨率 <90:重新渲染高分辨率

📝 更新日志

  • 2025-12-15: 初始版本发布
    • ✅ 5维度质量评估
    • ✅ S/A/B/C/D 等级划分
    • ✅ 智能优化建议
    • ✅ Pipeline 可视化集成
    • ✅ 前端评分卡片显示

开发团队: Stooland AI 视频团队
技术栈: FFmpeg + Python + Vue3
相关文档: 转场运镜指南