Skip to the tool
CaptionSuiteCaptionSuite home

How long a file this can handle

There is no file size limit, no minutes cap, no account and no watermark. There are two length limits, and both are memory: 2 hours for a recording you want transcribed, and about half an hour of 1080p video for captions burned into the picture. Everything below explains where those two numbers come from.

CaptionSuite limits, and the reason for each
LimitHereWhy
Maximum file sizeNo limitThe file is read off your disk in pieces as it is needed, never loaded whole and never uploaded, so its size on disk does not matter. A 40GB camera file is fine. What matters is how long it runs, below.
Longest recording to transcribe2 hoursSpeech has to be held in memory as 16kHz audio while the model reads it, at about 3.84MB a minute. That is 460.8 MB at the limit, alongside the speech model and the video itself, and past that a tab runs out of room. Files over 20 minutes work but say so first, because the wait is real.
Longest video to burn captions intoAbout 30 minutes at 1080pThe finished MP4 has to exist in memory in one piece before your browser can save it, and Chrome will not hand out a single block much past 2GB. A smaller output goes further: half the height is roughly three times the length. Exporting .srt instead has no limit at all.
Minutes per monthNo limitYour machine does the work, so a minute of audio costs us nothing. There is no meter, no account to attach one to, and no per-file cap.
Watermark or paid tierNeitherBurning captions in is the step most free tools charge for, because on a server it costs them real compute per video. Here the encoder is yours.
How long it takesAbout 8.6x faster than realtimeMeasured on 2026-09-26 with whisper-base on WebGPU, on a 31-minute recorded lecture, Chrome, 16GB Windows laptop. Without WebGPU it runs on one CPU thread and takes longer than the recording itself, which is the case worth planning around on a long file.

Why there is a limit at all on a tool with no server

The same reason there is no upload: all of it happens in one browser tab. A tab has a memory budget, and both halves of this tool spend it. Transcription holds the whole recording as audio while the model reads it. Burning captions in holds the whole finished MP4 before your browser can save it. Neither is a policy we could relax by changing our minds — there is no server-side knob, because there is no server.

That is the trade this product makes. A hosted tool has no memory limit and a minutes cap instead; this one has no minutes cap and a memory limit instead. It is worth knowing which one you are choosing.

The transcription limit: 2 hours

Whisper reads 16kHz audio, and that costs about 3.84MB per minute of recording. At 2 hours that is 460.8 MB held in memory, alongside the speech model itself and the video the audio came out of. Past that a tab runs out of room, so the tool checks the length when you drop the file and says so then, rather than failing partway through.

It is a limit on length, not size. A 40GB 4K clip that runs five minutes is fine. A small, heavily compressed three-hour podcast is not. Above 20 minutes the tool says how long it will take before you commit, and you can stop partway through and keep what it has done.

The burn-in limit: about half an hour at 1080p

This is the tighter one, and the one worth checking before you start. Burning captions in re-encodes every frame, and the finished MP4 has to exist in memory in one piece before your browser can offer it as a download. Chrome will not hand out a single block of memory much past 2GB — measured at 2.15 GB on 2026-09-28. Divide that by the bitrate and you get a length.

Longest video that can have captions burned in, by output size
Output sizeLongest videoRoughly, per hour of video
360p2.8 hoursabout 12 minutes of encoding
720p56 minutesabout 14 minutes of encoding
1080pdefault30 minutesabout 15 minutes of encoding

Encode times measured on 2026-09-28, Chrome 153, headless, on a Windows 11, 8 cores, 16GB machine, at 30fps. Your hardware encoder will differ, and 60fps footage takes twice as long and produces twice the file. The length limits are arithmetic rather than measurement and hold anywhere.

Everything is capped at 1080p output by default, so a 4K source lands on that top row. Exporting an .srt or .vtt instead has no limit at all — a caption file for a three-hour recording is a few hundred kilobytes of text. If you need the words burned into a long video, the way through is to split it and burn each part.

Speed is the limit you will actually feel

Nothing above is about waiting, and waiting is what most people run into first. With WebGPU — Chrome or Edge on a reasonably recent desktop — transcription measured 8.6x faster than realtime on a 31-minute recorded lecture, Chrome, 16GB Windows laptop (2026-09-26, whisper-base on WebGPU). A 30-minute meeting is about four minutes.

Without WebGPU it runs on a single CPU thread and takes longer than the recording itself. On that path a two-hour lecture is a two-hour job, and the two-hour length limit stops being the thing that matters. The tool tells you which path you are on before you start, and you can stop it partway and keep what it has transcribed.

On a phone or tablet everything works and then slows down as the device heats up. Short clips are fine; for anything past a few minutes a laptop is a much better experience.

What “unlimited” means here

It means there is nothing to meter. Your machine does the work, so a minute of audio costs us nothing, and there is no minutes-per-month tier, no per-file cap, no account and no watermark on anything you export. That part is structural rather than generous.

What it does not mean is that any file of any length will work. Those are two different claims and plenty of tools let the first quietly stand in for the second. The numbers above are the second one.

How these were measured

By searching for the point where the browser refuses, rather than by estimating. The harness lives in lib/stress.ts and runs from /bench: it binary-searches the largest block of memory the browser will allocate, reproduces the exact growth pattern the video muxer uses, and burns captions into synthesised clips at three sizes to measure throughput and output bitrate. The page you are reading computes its figures from the same constants the tool enforces, so it cannot promise a length the tool then refuses.