计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
video-compare-tool【效率与协作】对比两个视频的压缩质量,计算画质指标(PSNR、SSIM),并生成包含逐帧视觉对比的交互式 HTML 报告。当用户需要评估压缩效果、比较视频画质,或提及“视频对比”、“压缩分析”、“压缩前后对比”等关键词时触发。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
对比两个视频并生成交互式 HTML 报告,用于分析压缩效果。脚本会提取视频元数据、计算画质指标(PSNR、SSIM),并生成逐帧视觉对比,支持滑块、并排和网格三种查看模式。
以下场景可使用此技能:
python3 scripts/compare.py original.mp4 compressed.mp4
生成 comparison.html,包含:
# 自定义输出文件
python3 scripts/compare.py original.mp4 compressed.mp4 -o report.html
# 自定义帧间隔(数值越大,提取帧数越少,处理越快)
python3 scripts/compare.py original.mp4 compressed.mp4 --interval 10
# 批量对比
for original in originals/*.mp4; do
compressed="compressed/$(basename "$original")"
output="reports/$(basename "$original" .mp4).html"
python3 scripts/compare.py "$original" "$compressed" -o "$output"
done
FFmpeg 和 FFprobe(视频分析和帧提取必需):
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# Windows
# 从 https://ffmpeg.org/download.html 下载
# 或使用:winget install ffmpeg
Python 3.8+(使用了类型注解、f-string、pathlib)
.mp4(推荐)、.mov、.avi、.mkv、.webm脚本会自动校验:
校验失败时会显示清晰的错误提示和解决建议。
脚本计算两项标准画质指标:
PSNR(峰值信噪比): 像素级相似度衡量(20-50 dB 范围,越高越好)
SSIM(结构相似性指数): 感知相似度衡量(0.0-1.0 范围,越高越好)
详细的解读标准和画质阈值请参考 references/video_metrics.md。
脚本按指定间隔(默认 5 秒)提取帧,将帧缩放至统一高度(800px)以便对比,并以 base64 数据 URL 的形式嵌入到独立的 HTML 文件中。处理完成后自动清理临时文件。
生成的 HTML 报告包含:
脚本实现了以下安全措施:
shell=True,参数经过验证)ValidationError、FFmpegError、VideoComparisonError"FFmpeg not found":通过系统包管理器安装 FFmpeg(参见"环境要求"部分)
"File too large":先压缩视频再对比,或调整 scripts/compare.py 中的 MAX_FILE_SIZE_MB
"Operation timed out":增大 FFMPEG_TIMEOUT 常量,或使用更大的 --interval 值(减少处理帧数)
"Frame count mismatch":两个视频的时长/帧率不同;脚本会自动截断至较少的帧数并显示警告
脚本顶部包含可调整的常量,控制文件大小限制、超时时间、帧尺寸和提取间隔。如需自定义行为,请编辑 scripts/compare.py 顶部的常量。详细配置选项及其影响请参考 references/configuration.md。
以下文件提供详细信息:
references/video_metrics.md:画质指标解读(PSNR/SSIM 量表、压缩目标、码率参考)references/ffmpeg_commands.md:FFmpeg 命令参考(元数据提取、帧提取、故障排查)references/configuration.md:脚本配置选项和可调常量assets/template.html:HTML 报告模板,可自定义查看模式和样式