What the browser
can hold.
Three hard numbers: 3 minutes, 300 MB, 120 detected shots. They are technical guardrails, not a usage quota — and the video never leaves the tab.
The numbers
| Limit | Value | Applies to |
|---|---|---|
| Duration | 3 minutes (180 s) | One clip |
| File size | 300 MB | One file |
| Shots | 120 | Detected cuts in one clip |
| Mobile | Recommended 1 minute / 150 MB | iOS memory is tighter |
| Frames | 2 per shot, longest side 1280 px | JPEG, quality 0.85 |
| Output | ZIP in memory, then downloaded | No server copy |
“Upload” is the wrong word. The file is read locally with the browser’s File API and wrapped in a Blob URL. Nothing is sent to a backend. The limit is the browser’s decode and memory budget, not a server allowance.
Measured performance
| Clip | Result |
|---|---|
| 12 s / 1920×1080 / 6 shots | 6.2 s analysis, 5 cuts, 20-file ZIP |
| 180 s / 1280×720 / 90 shots | 21.6 s analysis, 180 frames, 270 prompts |
| 190 s | Rejected with the 3-minute message |
| 6 s / 720×1280 portrait | 3 shots, viewer aspect preserved |
| Chromium / Firefox / WebKit | 6-shot demo passes on all three |
These are single-machine measurements, not a guarantee. A slower laptop, a 4K file or a browser with a software decoder will take longer. The progress bar and cancel button exist for that reason.
Codecs
| Format | Support | Notes |
|---|---|---|
| MP4 / H.264 + AAC | Safest | Works in Chrome, Edge, Firefox and Safari on most systems. |
| WebM / VP8-VP9 + Opus | Good | Fine in Chromium and Firefox; Safari support varies. |
| HEVC / H.265 | Depends | Hardware and OS support varies; desktop Chrome often lacks it. |
| MOV | Depends | Only if the codec inside the MOV is decodable by the browser. |
If the codec is unsupported, the workbench shows a decode error and asks for an MP4/H.264 file. There is no server-side transcoding, by design.
When it fails
- “This clip is 190s” — trim to 3 minutes or use the CLI.
- “The browser limit is 300 MB” — compress to H.264 at a lower bitrate, or trim.
- “This browser does not support this video codec” — convert to MP4/H.264.
- “120 detected shots” — the clip is a long edit; use the CLI.
- Slow seek / timeout — cancel, use a smaller file, or try a desktop browser.
Why these numbers
The sampler seeks through the file and draws each frame to a 160×90 canvas. At 5 fps, a 3-minute clip is about 900 samples; above 60 seconds the step drops to 3 fps, about 545 samples. The analysis stores histograms and profiles, not full frames, so memory stays modest. The frames that are kept are two JPEGs per shot, capped at 1280 px.
The 300 MB cap is a file-size guardrail, not a claim that every 300 MB file will be fast. A high-bitrate 4K file can be slow to decode and seek even when it is under the cap. If your work is 4K or longer than 3 minutes, the open-source rea-video CLI is the right instrument.
Questions
Why is the limit 3 minutes and 300 MB?
A 3-minute clip at 5 fps is about 900 samples; at 3 fps above 60 seconds it is about 545. That keeps the sampling pass around 20–25 seconds on a desktop browser and keeps the frame set and ZIP within memory. 300 MB covers most short-form 1080p files; it is a technical guardrail, not a usage quota.
Does the file get uploaded anywhere?
No. The browser reads the file with the File API and a Blob URL. There is no upload endpoint. The only network requests on this site are the page assets, the optional Umami analytics script, and the demo video if you choose to load it.
What happens when a video is over the limit?
The workbench stops before sampling and shows the limit in the status bar. It does not silently truncate the clip, because a truncated shot list is worse than no shot list. Trim or compress the clip, or use the rea-video CLI for a longer file.
Is 300 MB / 4K supported?
The file-size limit allows it, but a 300 MB 4K file has not been stress-tested on this build. 4K decoding and seeking are slower; HEVC support depends on the browser. For a 4K master, the CLI is the safer path.
Check your clip against the limits.
Drop it in; the workbench tells you before it samples a frame.