Subtitle generator
Turn the speech in a video into subtitles people can read. Whisper times every word on your own device, then the subtitles are cut to two lines of 42 characters at a pace you can set.
Open a video, time every word, save readable subtitles.
Subtitle generator is in your dock. Everything you started is still there.
Subtitles cut to be read.
Drop a video. Whisper times every word on this device, and the subtitles are cut to the reading rules beside it.
Drop a video here
Speech becomes timed subtitles on this device. Up to two hours.
MP4MOVM4VWEBMMKV
This video is vertical. On TikTok, Reels and Shorts the bottom of the frame sits under the caption and the buttons, so two-line subtitles there get covered. Word-by-word captions sit higher and read on mute.
The subtitles 0
Click a time to play from it. Click the words to correct them; the subtitle keeps its place when the rules change.
The speech
Whisper hears the words. The rules below only decide how they are cut.
The reading rules
Change one and every subtitle is cut again at once. The model does not run again.
Netflix's English limits: 42 characters a line, two lines, 20 characters a second.
The look
How the subtitles sit on the picture. A saved video and a styled .ass file keep it; SRT and VTT carry the words only.
Bundled fonts load from floi when you pick them. Bold and italic are drawn by the browser.
Finish
Save a file that switches on and off, or a copy of the video with the subtitles always on.
Video and subtitles stay in your browser.Video and subtitles stay here. Settings sync.Saving details
How to generate subtitles from a video
Open a video
Drop in an MP4, MOV or WebM up to two hours long. Only the soundtrack is read, and the file stays on your device.
Generate the subtitles
Pick a model and the spoken language, then press Generate subtitles. Whisper gives every word its own start and end time.
Check, style and save
Choose reading rules and a look, and watch the subtitles change on the video. Fix any word, then save a subtitle file or the video.
Using the subtitle generator
The tool reads the soundtrack once and keeps every word with its time. Everything after that, the cutting, the checking and the preview, happens instantly on the words.
Opening a video
Drop a video on the panel or press Choose a video. Try a short example opens a 26 second synthetic reading, which is a quick way to see the rules at work before using your own file.
| What you open | What happens |
|---|---|
| MP4 or MOV with AAC sound | Plays in current Chrome, Edge, Firefox and Safari. The soundtrack is decoded to a 16 kHz mono copy for Whisper |
| WebM | Works in Chrome, Edge and Firefox |
| MKV, or video with an unusual audio codec | May not decode. Convert it with the video converter first |
| Longer than two hours, or over 2 GB | Refused before the model runs, because the sound is held in memory. Cut it into parts first |
The two previews
The video plays with its subtitles drawn over it by the same code that makes a saved video, so what you see is what you get. The buttons above it switch between two ways of showing the words.
| Preview | What it shows |
|---|---|
| Subtitles | The cues you will save, one or two lines at the bottom of the picture |
| Word by word | The same words, a few at a time, each lit as it is spoken. This is a preview of how Karaoke Captions would caption the clip, and the card under it opens it there |
The bar under the picture plays and pauses, steps to the previous or next subtitle, moves through the video and mutes it. Nothing covers the bottom of the picture, where the subtitles sit.
The picture stays in sight while you change settings. In a wide window it stays put as the settings scroll past. In a narrow one it moves to a corner when you change a setting with it out of view, and its × puts it back. Change a setting on a paused moment with no subtitle and the video moves to the nearest one, so you always see the change.
A vertical video gets a note under the player. Two-line subtitles at the bottom of a 9:16 frame sit under the buttons on TikTok, Reels and Shorts, and the note explains the alternative.
The speech settings
| Control | Effect |
|---|---|
| Model: Standard | Whisper base, a 147 MB download. The quick choice for long videos |
| Model: Accurate | Whisper small, a 304 MB download. In floi’s transcription test it made 42% fewer mistakes and took 1.7 times as long |
| Spoken language | Detect automatically reads the first spoken part and picks one of 99 languages. Naming it avoids a wrong guess |
| Subtitles in: The language spoken | Subtitles in the language of the video |
| Subtitles in: English, translated | English subtitles for a video in any language Whisper understands |
| Generate subtitles, Stop | Starts the run. Stop keeps every subtitle cut so far |
The reading rules
Six rules decide how the words are cut. A preset sets all six at once; moving any slider makes the rules your own. The subtitles re-cut as you drag, because only the cutting runs again.
| Rule | Streaming | Easy reading | One line |
|---|---|---|---|
| Characters per line | 42 | 37 | 32 |
| Lines per subtitle | 2 | 2 | 1 |
| Reading speed | 20 characters a second | 15 | 20 |
| Shortest time on screen | 0.8 s | 1.2 s | 0.8 s |
| Longest time on screen | 7 s | 7 s | 5 s |
| Gap between subtitles | 83 ms, two frames at 24 fps | 83 ms | 83 ms |
How each subtitle is cut
Whisper’s own lines are often ten seconds long and stop in the middle of a clause. This tool starts from the words instead and follows the rules a subtitler would.
- A subtitle starts on the first sound of its first word.
- It never runs across a pause of more than 1.6 seconds, and prefers to end at a full stop, then a comma, then before a word like and, but or because.
- A line never ends on a word that leads into the next one, such as the, a, of or to.
- Two lines are balanced, with the shorter line on top.
- It stays up about half a second after the speech, if the next subtitle allows it, and long enough to read at your reading speed.
- It ends at least the gap before the next one starts.
The check and the list
The figure at the top of the rail is the share of subtitles that meet every rule. Fast speech can make that impossible, so a subtitle that breaks a rule is marked rather than hidden.
| Part | What it does |
|---|---|
| The rule buttons under the figure | Each one counts a kind of problem, such as Too fast to read. Press it to list only those subtitles |
| Only subtitles that break a rule | Hides every subtitle with nothing to fix |
| The time on a subtitle | Plays the video from that subtitle |
| The words of a subtitle | Click to correct them. The time is shared over your words, and that subtitle keeps its place when you change a rule |
| The bar and cps figure | Its reading speed. The mark two thirds along is your limit |
Translating a video into English subtitles
Set Spoken language to the language of the video, or leave it on Detect automatically, and set Subtitles in to English, translated. Whisper writes the English as it listens. Translated timing is approximate, so play it through once and correct any subtitle that arrives early or late.
Styling the subtitles
The look section sets how the subtitles sit on the picture. Before you generate, changing it shows a sample line on the video for a few seconds, so you can choose a style first.
| Control | Effect |
|---|---|
| Classic, Box, Yellow, Cinema, Bold, Soft box | Six starting looks, each drawn on its button. Change anything and none is selected |
| Font, Weight | 25 bundled fonts and three system ones. A bundled font loads from floi when you pick it |
| Position, Alignment, Distance from the edge | Bottom, middle or top, left, centre or right, and how far in from that edge |
| Drop shadow, Italic | A soft shadow under the text, and slanted text |
| Text size | The height of the text as a share of the picture's shorter side, so it looks the same at any resolution |
| Text, Outline, Box | The three colours. Outline width and Box opacity set how much of each shows; at None it is off |
| Line spacing | The space between the two lines of a subtitle |
Saving and what comes next
| Choice | What you get |
|---|---|
| Save SRT | A SubRip file, the format YouTube, VLC, Premiere and DaVinci Resolve read |
| Save VTT | A WebVTT file, for the HTML video element and most web players |
| Save ASS | Styled subtitles that keep the font, colours, box and position in VLC, mpv, Aegisub and ffmpeg. The player needs the font installed, or it uses a similar one |
| Copy | The chosen file as text, on the clipboard |
| Save video with subtitles | A new MP4 or WebM with the subtitles drawn in, up to 1280 or 1920 pixels on its longest side. For clips up to five minutes |
| Retime by hand | Opens the video and the SRT in the subtitle editor, to drag a subtitle's start and end |
| Word-by-word captions for social | Opens the clip in Karaoke Captions, already timed, in a new tab |
Keyboard controls
| Keys | What they do |
|---|---|
| ⌘ O or Ctrl O | Open a video |
| ⌘ S or Ctrl S | Save the subtitles |
| Space | Play or pause the video |
| ← → | The previous or next subtitle, when you are not in a field |
| Enter in a subtitle | Finish the correction |
| Esc in a subtitle | Undo the correction you are typing |
| ← → on a rule | Move the rule one step |
Narrow, Wide or Full at the top right of the tool gives the panel more room.
What this tool will not do
- It does not label speakers. A conversation comes out as one stream of subtitles.
- It does not see the picture. Professional timing also snaps to shot changes, which needs the video itself.
- It translates only into English, and cannot translate an existing subtitle file.
- It does not make a video longer than five minutes. Drawing every frame is done in the browser; save the subtitle file for a long video.
- It does not accept links. Download the video first.
- It does not keep your work. Save the file before you close the tab.
How it compares with other subtitle generators
Most subtitle generators upload the video and hand back whatever the speech model produced. These terms were read from each service’s own page on 17 October 2026.
| Service | Where the video goes | Free limit | Reading rules |
|---|---|---|---|
| floi | Stays on your device | None. Two hours per video | Shown, adjustable and checked |
| HappyScribe | Uploaded | A 10 minute trial, watermarked MP4 | Reading-speed management on paid plans |
| HeyGen | Uploaded | Account required | Not described |
| VdoCipher | Stays in the browser | None stated | Not described |
| Storrito | Stays in the browser | None stated | Not described |
The cloud services win on speed, speaker labels and translation into many languages. VdoCipher can caption several files at once, which floi cannot. floi is the one to use when the subtitles have to be easy to read and the video has to stay private.
Subtitles or word-by-word captions?
They solve different problems. Subtitles are for watching a video through. Word-by-word captions are for stopping someone scrolling past a short clip.
Subtitles, made here
Full sentences on one or two lines, low in the picture, timed to be read. Best for lectures, interviews, films, tutorials and YouTube. You save a file that switches on and off.
Word-by-word captions
One to three big words at a time, each lit as it is spoken, higher up a 9:16 frame. Best for TikTok, Reels and Shorts. You save an MP4 with the captions burned in.
Karaoke Captions makes the second kind. It is a sister tool from the maker of floi, and it works the same way: Whisper in your browser, no upload and no watermark. After you generate subtitles here, the Word by word preview shows your own clip in its default style, and Open in Karaoke Captions hands it over with the timing already done.
Frequently asked questions
Is my video uploaded?
No. Your browser decodes the soundtrack and Whisper runs in the same tab, on your graphics chip or processor. The only download is the speech model, once, from floi’s own model domain. The video, the words and the subtitles are never saved to a floi account, even when you are signed in.
Is it free, with no watermark?
Yes. There is no minute allowance, no daily limit, no sign-up and nothing added to the file. The work happens on your device, so a tenth video costs floi nothing more than the first. The two hour ceiling is about browser memory.
How accurate are the subtitles?
The words are as good as Whisper base or small on your audio: good on clear speech, worse on crosstalk, music beds and distant microphones. On an 8 minute reading in floi’s transcription test, the Standard model got 6.95% of words wrong and Accurate 4.00%. Names are the usual mistake. Read the list once and fix them before you save.
Can it translate a video into English subtitles?
Yes. Set Subtitles in to English, translated, and Whisper writes English for any language it hears. The timing is approximate, because the English words do not line up one for one with the spoken ones. It cannot translate into any language other than English, or translate an existing subtitle file.
Where do the reading rules come from?
The Streaming preset uses the limits in Netflix’s English timed text guide: 42 characters a line, two lines and 20 characters a second. The timing follows its subtitle timing guidelines: at least 20 frames on screen, a 2 frame gap and about half a second after the speech ends. Easy reading and One line are floi’s own settings, not a published standard.
How is this different from the audio to text tool?
Audio to text writes down what was said, and its SRT is Whisper’s own lines split at 84 characters. This tool times every word and cuts the subtitles from the words, so each one starts on its first word, ends on a pause and stays up long enough to read. It also shows them on the video.
Can I burn the subtitles into the video?
Yes, for a clip up to five minutes. Save video with subtitles draws them into a new MP4 or WebM in the font, colours and position you chose, exactly as the preview shows them. For a longer video, save a subtitle file instead: SRT for YouTube and most players, or a styled .ass file, which keeps the look in VLC and mpv.
Can I change the font and colour of the subtitles?
Yes. Pick one of six looks, or set the font, weight, size, text and outline colours, a box behind the text, a drop shadow, the position and the alignment yourself. There are 25 bundled fonts plus Arial, Georgia and a monospace face. The look goes into a saved video and a .ass file. An SRT or VTT file holds only the words and times, because players draw those in their own style.
Can it make word-by-word captions for TikTok or Reels?
Not here. Subtitles are sentences at the bottom of the picture, for watching. Word-by-word captions are a few big words at a time, for a vertical clip. Karaoke Captions, a sister tool from the maker of floi, makes those, and Open in Karaoke Captions sends it this clip with the words already timed.
Something missing? Request a feature