Unflash

Unflash

Finds the flashing and the stripe patterns in a video that can trigger seizures, and helps you take them out without wrecking the footage. It all runs in this browser: nothing is uploaded.

a minute's walk round the page

The screen, part by part

Keys

R Fremove the selected frames: the frame before (R) or after (F) shows in their place
Ehold a frame on screen a second
Kkeep: the suggestions leave it alone
Bblend with the frames either side
Utake every mark off (the same key again takes that one off)
Z, double-clickthe frame at full size
← →step through the frames (with Shift, ten at a time)
Ctrl+Zundo; with Shift (or Ctrl+Y), redo
Ctrl+Ain the frames, select them all
Escclose the full-size frame or this guide; clear the selection
  1. Open a video, or drop one on the page. It is scanned, and a numbered section goes round each problem.
  2. Fix each section: mark frames, or let a Suggest button make a first pass. Every change is checked as you make it.
  3. Export the fixed video, and verify it.

It lowers the risk; it can't guarantee safety. Look over what it flags yourself before you share anything.

The whole guide: marks, suggestions, stripes, auto-fix, extended flashes
  1. Open a video (MP4, MOV, MKV, WebM, or a transport stream: .ts, .m2ts, .mts), or drop one anywhere on the page. It is scanned straight away: every frame is decoded and pushed through the detector as fast as your GPU allows, and Unflash puts a numbered section around every problem it finds.
  2. Open a section (in the list on the left, or on the timeline). It prepares itself: its frames are decoded so every change can be checked the instant you make it. Mark frames: R removes a frame and shows the one before it in its place, F the one after, E holds a frame for a second, B blends it with the frames either side of it (the flash is toned down, not taken out). Press the same key again to take the mark off. Ctrl+Z undoes.
  3. Suggest gives you a first pass to work from. Keep dark and keep light remove the frames that make the flashing, fewest removals as few of them as the rules allow (and where a picture would freeze for a while, lets frames back in at a rate that can't flash); blend frames removes nothing: it blends them with the frames around them, which lowers the contrast of the flash from frame to frame, not the picture's (turning the picture itself towards grey would take nearly all of it away before a full-screen flash passed), as little as passes; reduce FPS thins the section, starting at twice the rate that can never fail and stepping down until the check passes. They choose by brightness alone, so look at what they did: they can take out a line of subtitles or an image that matters. Mark such frames K (keep) first and the suggestions work around them.
  4. Watch it. With a section open, the player plays that section with your marks applied, exactly as the export will render it; switch it to original to compare. It is small and dimmed to begin with (the size buttons and the dim switch are above it).
  5. Stripe patterns (fine gratings, more than five light–dark pairs, high contrast, a quarter of the screen or more) can't be removed a frame at a time: tick soften stripes and the frames that carry them are blurred just enough, and only where the stripes are.
  6. Export writes the fixed video (only the stretches around the sections you marked are re-encoded) and Verify scans it again.
  7. Auto-fix (off unless you tick it in the header) does all of this unattended: the fewest removals, else keep dark, then keep light, then reduce FPS on every section, then the export and its check. Treat what it makes as a starting point; hand editing gives better results.
  8. Live monitor puts a meter over the player: how much of the picture is flashing on the frame on screen.

Extended flashes are 5 seconds or more of flashing that meets every WCAG failure condition except the rate: it runs at the permitted speed (3 flashes/s) instead of above it. WCAG lets that through, but UK broadcast guidance doesn't and it does affect some viewers, so the default profile flags them as ordinary sections. Pick Exact WCAG only to ignore them. Stricter than WCAG already fails at that speed.

The pattern test covers regular stripes and gratings (the case broadcast guidance names), not every texture that could affect someone, and sensitivity differs from one person to the next.

Test clips

Short clips with a known problem each: open loads one, the links download it.

clipwhat's in itdownload
flash4 flashes a second, then a red flashVP9 · H.264
stripesfine stripes, no flashingVP9 · H.264
extended3 flashes a second for 8 sVP9 · H.264
closecallflashing that only just passesVP9 · H.264
redflashred against grey, same brightnessVP9 · H.264
steadynothing to findVP9 · H.264