FFmpeg is the general-purpose, open-source media tool that decodes, scales, encodes, and pipes frames between filters. In quality measurement it is the engine that reads the encode and the master and feeds frames in matched pairs to libvmaf, the library that actually computes the numbers - so FFmpeg with libvmaf is the default free way to measure video quality, computing VMAF, PSNR, SSIM, and MS-SSIM from one command. It also provides standalone psnr and ssim filters and the command-line interface to encoders like x264, x265, and SVT-AV1. Being scriptable and headless, it is what most teams wire into an automated quality gate. The catches are that libvmaf is a compile-time option, so a build must be configured with the flag to include it, and that FFmpeg prints a confident number even when the comparison is invalid - wrong input order, mismatched resolution, or misaligned frames - so the discipline matters more than the command.


The handbook · 7 volumes
Fora Soft Video Engineering Handbook
FFmpeg runs most scripted quality measurement through libvmaf and its PSNR and SSIM filters, and small mistakes in scaling or alignment skew the scores. We wrote seven volumes covering the whole video stack, and for FFmpeg measurement start with Volume 1: VMAF, PSNR and SSIM, scaling and color, and encoder settings for H.264, HEVC and AV1. Written by Nikolay Sapunov, CEO at Fora Soft.
Getting VMAF numbers from FFmpeg that do not match what you see?
Send us your FFmpeg commands and sample files: we fix the measurement pipeline and give you a script that produces repeatable scores. 250+ video products shipped since 2005.