Free Flash Frame and Black Frame Detector: check every frame before you upload
Choose your exported video and the tool checks every frame for the mistakes that slip through an edit: flash frames (a stray frame or two left at a cut), black frames and black gaps inside the video, and, if you want, frozen picture. You get the exact timecode and frame number of each one, a thumbnail of the frame and its neighbors, and markers for DaVinci Resolve (EDL) or a CSV. Everything runs in your browser: your video never leaves your device.
Check a video for flash frames and black frames
Your video stays on your device. Nothing is uploaded: your browser decodes the frames and compares them right here, in this tab.
Where they are
Each one (click a timecode or a thumbnail to see that frame)
How to fix them
- Flash frame at a cut: go to the timecode, step one frame at a time and delete the stray frame, then close the gap or extend the next clip by that frame.
- Black gap: it is an empty spot between two clips. Close it, or fill it if the clips should touch. A dip to black you made on purpose shows up as "fade": leave it.
- Frozen picture: look for a frame hold, a still you forgot to animate or a clip that ran out of media before its end.
- Export again and check the new file here before you upload.
How to use it
- Choose the file you are about to upload: the final export, not the project. MP4, MOV, MKV and WEBM are read directly.
- Press Check every frame. The browser decodes the whole video; how long it takes depends on your computer, your browser and the resolution, and the progress bar shows the time left. In my tests an 11 minute 1080p video took about 30 seconds in Chrome; Safari was slower, about real time in a background tab, so keep the tab in front. You can stop at any point and see the result for the part that was checked.
- Read the verdict and the list. Each problem shows the frame before, the frame itself and the frame after, so you can tell a mistake from a flash you added on purpose. Click a timecode to see that frame in the player.
- Download the EDL and import it as timeline markers in DaVinci Resolve, or the CSV for a spreadsheet, fix each one in your editor, export again and check the new file.
The settings above the button only change how the result is shown: the frame rate and the start of the timecode, the longest shot that counts as a flash, and whether frozen picture is listed. Change them after the check and the list updates without checking again.
What it looks for
- Flash frame: 1 or 2 frames (up to 3 if you choose) that differ strongly from both the frame before and the frame after. It can sit at a cut, between two different shots, or inside a shot, where a frame of something else replaced one frame. The very first and very last frames of the file are checked too.
- Solid color frame: the same, but the stray frame is one flat color, often white. If you added a white flash transition on purpose, skip it.
- Same picture, brighter or darker: the frame matches its neighbors except for the brightness, like a camera flash, lightning or a muzzle flash in the footage. Listed to check, not counted as a mistake.
- Black gap: one or more empty black frames inside the video with a hard cut in and out, the usual sign of an empty spot in the timeline. When the picture fades down to black on either side, it is listed as a fade to check, not counted. A title or any text on black is a picture, not a black frame.
- Black at the start or end: reported apart and not counted, because a fade in or out is normal there. If it lasts more than 5 seconds the tool says so, and a video that is black from start to end gets a red verdict.
- Frozen picture (optional): the same picture with no change at all for the time you choose; a keyframe that only refreshes the same picture does not break it. Still images and end screens freeze on purpose, which is why it is off by default.
FAQ
Sources and method
- Black frame thresholds: FFmpeg filters documentation, blackdetect (a picture is black when 98% of its pixels are black; a pixel is black at or under 10% of the luma range) and freezedetect. Read October 21, 2026.
- Importing markers: Blackmagic Design Forum threads Timelines Markers from EDL (the timeline needs to be open and active) and Issue importing EDL timeline markers (the start hour of the timeline must match), written by Resolve users. Read October 21, 2026.
- Browser support: MDN browser compatibility data for VideoDecoder (Chrome 94, Firefox 130 on computers, Safari 16.4) and requestVideoFrameCallback (Chrome 83, Firefox 132, Safari 15.4). Read October 21, 2026.
- Method: the frame list of MP4, MOV, MKV and WEBM files is read in the page and every frame is decoded with the browser's WebCodecs VideoDecoder. Each frame is reduced to a 64 x 36 copy and compared with the 4 frames before it (color histogram and the share of pixels whose brightness changed by more than 30 levels); a possible stray shot is dropped when its frames lie between the shots around it pixel by pixel, as in a dissolve, a wipe or a flash ramp. Tested on October 21, 2026 in Chrome, and the real footage also in Safari, on files with known answers made with FFmpeg at 25, 29.97 and 60 fps: it found every stray shot of 1 and 2 frames (at cuts, inside shots and as the very first or last frame of the file) and every black gap of 1, 5 and 30 frames, including one between two very dark shots, at the exact frame, and nothing on dissolves, dips to black, a title card on black or a fast montage of 4 to 9 frame shots. On real documentary edits full of typewriter titles on black, dips, wipes and flash transitions it counted none of them as a mistake (the dips are listed as fades to check); in a 3 minute 40 second part of one it found all 5 stray frames and 2 black gaps I put in, and in 3 edits joined into 45 minutes (80,444 frames) it found 4 leftover frames at the end of stock clips, which the edit's own timeline confirms, and nothing else. A real 11 minute talking head edit (17,595 frames) came back clean. As expected, it missed a stray frame from another moment of the same shot and one inside a glitch effect that changes every frame.
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. A stray frame at a cut is the kind of mistake that survives three watches of the timeline and shows up the first time a viewer scrubs, so the last thing I do before a video goes out is check every frame. I built this to do that check in your browser, without uploading anything. If you want an editor for your channel, get in touch.
More free tools
A dropped frames checker for stutter in recordings, a cuts per minute counter for the pace of your edit and a tool that turns editing markers into YouTube chapters, all free and without signup.
See all tools →