Open the original video (your master) and the exported version, and see how much quality the export lost: SSIM and PSNR for every frame it checks and overall, the worst moments side by side with a difference view, and a plain verdict, from visually identical to visible loss. It lines the two files up by itself when the export starts a few frames late or has a different frame rate or size. Everything runs in your browser: your videos never leave your device.
How to use it
- Choose the original: the master you exported from, or the best copy you have of the same edit (MP4, MOV, MKV or WebM).
- Choose the export you want to check: the file you are about to upload, or a version from another app or setting.
- Press Compare quality. The browser lines the two files up, decodes the frames it samples from both and compares them; a long file takes a minute or two.
- Read the verdict and the notes, then click the worst moments to see them side by side, as a difference map, or zoomed to 1:1 pixels on the area with the lowest SSIM. Download every frame as a CSV if you want the numbers.
Both files must show the same picture: the same edit, the same crop and the same color. To choose between export settings, export the same part of the timeline with each setting and compare every export against one high quality master.
FAQ
What do SSIM and PSNR mean?
Both compare each frame of your export with the same frame of the original. SSIM (structural similarity) looks at brightness, contrast and structure in small windows of the picture; it was introduced by Wang, Bovik, Sheikh and Simoncelli in 2004 and it is 1 only when the two pictures are identical (
the paper, read on 21 October 2026). PSNR (peak signal to noise ratio) measures the average pixel error in decibels: higher is better, and two identical frames have no error at all. The tool measures both on the brightness of the picture (the luma, or Y plane), the way FFmpeg's ssim and psnr filters report their Y values, and gives the overall PSNR from the average error of all the frames it compared, which is how FFmpeg averages it (
FFmpeg filters documentation, read on 21 October 2026).
How close are the numbers to FFmpeg?
I checked the tool against FFmpeg's ssim and psnr filters on the same frames: exports of a 48 second 1080p clip (x264 at CRF 18, 23, 28 and 35, a 720p export, one that starts a frame late, one with 12 extra frames at the start, a 25 fps version, HEVC and VP9), a different video that must score low, and a real 11 minute episode with its 720p copy. With both files at the same size and frame rate, the SSIM of each frame matched FFmpeg within 0.00001 and the PSNR within 0.01 dB; with a different frame rate the SSIM of a frame differed by up to 0.00015, because the tool picks the matching original frame itself. When the export has to be scaled, my scaling is close to FFmpeg's but not the same, so the score is an estimate: in those tests the SSIM differed by up to 0.0002 per frame. When a file cannot be read raw (a 10 bit HEVC file in my test) or not with WebCodecs at all, the tool rebuilds the brightness from the picture the browser draws, which is a little less exact: in my tests the average SSIM came out up to 0.0004 lower than FFmpeg's with files of the same size and up to 0.002 lower with a scaled export. It checks a sample of frames spread over the video, not every frame, so a short bad moment can slip through: choose 400 frames for a closer look.
How does it line up the two files?
It takes a second and a half of the export at three points of the video and looks for the moment of the original that matches it best, up to 3 seconds earlier or later; when it finds no clear match there, it looks further, up to 10 seconds. So an export that starts a few frames or a few seconds late, or has extra frames at the start, is still compared frame against the right frame. If the three points do not agree, for example because a frame was dropped in the middle, each frame is compared with whichever of those offsets fits it best. When the browser has to read the frames through its video player, which is slower, it searches up to 1 second and then up to 3. If the frame rates differ, each export frame is compared with the closer of the two original frames around its moment. If the sizes differ, the export is scaled to the size of the original first, so a lower resolution counts as a loss, which is what you see when it plays full screen. A phone video stored on its side is turned the way players show it. The notes under the verdict say what it did.
What is a good score?
My rule of thumb, not an official standard: an average SSIM of 0.985 or more, with the worst 5% of the frames at 0.97 or more, looks the same as the original; 0.97 or more, with the worst 5% at 0.93 or more, is a small loss you mostly see when you pause and zoom; anything lower is a visible loss, and under 0.6 the two files are probably not the same video. The tool also says they are not the same video when it cannot find the moments of the export in the original, and when the picture itself changed (a brighter or darker picture, or black bars) it says so instead of calling it a loss. For reference, FFmpeg gave these numbers for x264 exports of the same 48 second 1080p clip: CRF 18 scored 0.995 (PSNR 48.1 dB), CRF 23 0.990 (44.5 dB), CRF 28 0.984 (41.3 dB), CRF 35 0.966 (36.9 dB) and a 720p export 0.978 (38.8 dB). Grainy, noisy or very detailed footage scores lower at the same visual quality, so compare a few exports of your own video instead of chasing one number.
Why is my score low when the export looks fine?
Usually because the picture changed on purpose or the files are not the same cut: a color grade, sharpening, a LUT, a different crop or black bars all lower the score, and so does an export of a different version of the edit. When the tool sees a brighter or darker picture or black bars in one file only, its verdict says the picture itself changed. Footage with a lot of grain or noise also scores lower, because the codec smooths the grain away. A score under 0.6 usually means the two files do not show the same picture at the same moment: check that you picked the right files and that the export is not out of sync by more than 10 seconds.
Does it upload my videos?
No. Your browser reads both files and compares the frames on your own device; nothing leaves this tab and nothing is downloaded. It reads the files in small pieces, so comparing a 60 minute 1080p video took under 200 MB of extra memory in my test, not the size of the file.
Who made this
I'm Kevin Tabares. I've edited long-form YouTube videos since 2015 (1,277 videos and 152.2M+ views tracked on YT Jobs) for channels like Rex & Alexa, Puff and Mud. On an 11 minute episode I edited, the 720p copy scores SSIM 0.976 (PSNR 41.2 dB) here against the 1080p master, which this tool calls a small loss. I built this so anyone can check an export in a minute or two, without uploading anything. If you want an editor for your channel, get in touch.