Skip to main content
ffmpeg-quality-metrics calculates video quality metrics using FFmpeg. It supports SSIM, PSNR, VMAF, and VIF metrics for comparing video quality.

Installation

Run directly

nix run github:spotdemo4/nur#ffmpeg-quality-metrics

Add to flake

devShells.default = pkgs.mkShell {
  packages = with pkgs.trev; [
    ffmpeg-quality-metrics
  ];
};

Usage

Compare two videos

Compare a distorted video against a reference:
ffmpeg-quality-metrics reference.mp4 distorted.mp4

Calculate VMAF score

VMAF (Video Multimethod Assessment Fusion) is a perceptual video quality metric:
ffmpeg-quality-metrics reference.mp4 distorted.mp4 -m vmaf

Calculate multiple metrics

Calculate PSNR, SSIM, and VMAF:
ffmpeg-quality-metrics reference.mp4 distorted.mp4 -m psnr ssim vmaf

Export results to JSON

ffmpeg-quality-metrics reference.mp4 distorted.mp4 -of json > metrics.json

Supported metrics

Measures the ratio between the maximum possible signal power and the power of corrupting noise. Higher values indicate better quality. Typical values range from 30-50 dB.
Measures the perceived quality based on structural information. Values range from 0 to 1, where 1 indicates perfect similarity.
Netflix’s perceptual video quality metric. Scores range from 0-100, with higher values indicating better quality. Scores above 95 are considered excellent.
Measures the amount of information that could theoretically be extracted from the reference image. Values range from 0 to 1.

Common use cases

Evaluate encoding quality

Compare original video with encoded version:
ffmpeg-quality-metrics original.mp4 encoded.mp4 -m vmaf psnr

Test different encoding settings

Batch compare multiple encoded files:
for file in encoded_*.mp4; do
  echo "Testing $file"
  ffmpeg-quality-metrics original.mp4 "$file" -m vmaf
done

Continuous quality monitoring

Integrate into CI/CD pipelines:
ffmpeg-quality-metrics reference.mp4 output.mp4 -m vmaf -of json | \
  jq '.vmaf.mean' | \
  awk '{if ($1 < 80) exit 1}'
VMAF scores correlate well with human perception. Target VMAF scores above 80 for good quality, and above 95 for excellent quality.

Build docs developers (and LLMs) love