How to generate Whisper subtitles offline and finish them properly

Create subtitles locally, then check the words, timing and delivery format. A transcript alone is not the finished caption job.

Om Patel

Written by , Founder, Rushilo

Updated · 8 min read

Two people wearing headphones recording a podcast at a wooden table
Photo by Austin Distel on Unsplash

The short answer

Short answer

To generate subtitles offline, use a local Whisper application or the open-source Whisper command line, download the model first, transcribe the video, correct the text and timing, and export SRT or VTT. If the words must always appear in the video, you also need to burn the corrected captions into the picture.

Whisper is a speech-recognition model. An application using its name may run the model on your computer or send audio to a hosted service. Choose the local path explicitly when keeping the recording on your machine is a requirement. OpenAI's open-source Whisper repository

The finished job has three parts: accurate words, usable timing, and the right delivery format. Getting a transcript alone does not finish the subtitles.

Choose the output before choosing the tool

Transcript

What you receive
Text without the timing needed for captions
Choose it when
You need notes, a draft, or searchable text

SRT file

What you receive
Numbered text cues with start and end times
Choose it when
The destination accepts a separate subtitle file

VTT file

What you receive
A timed WebVTT caption file
Choose it when
The web player or destination requests VTT

Burned-in captions

What you receive
Caption pixels inside the exported video
Choose it when
The words must remain visible wherever the video plays

A sidecar caption file can be loaded separately by a compatible player. Burned-in captions are part of the image and cannot be switched off. W3C explains these as closed and open captions respectively. W3C caption guidance

Check the destination's requirements rather than assuming either file format preserves the styling from your editor. For example, YouTube accepts basic SRT and WebVTT files, but describes limits on their supported formatting. YouTube's supported subtitle files

Which local Whisper route should you use?

Rushilo's on-device captions

Fits
People who want captions inside a video-editing project
Main responsibility
Select the local service, correct the captions, and save the intended output

OpenAI Whisper command line

Fits
People comfortable installing Python packages and FFmpeg
Main responsibility
Manage installation, model download, transcription, and subtitle review

whisper.cpp

Fits
People wanting a local C/C++ implementation and hardware-specific setup
Main responsibility
Follow its build and input instructions for the chosen backend

Rushilo documents on-device Whisper captions and SRT/VTT export. The open-source Whisper and whisper.cpp projects provide their own setup instructions. These are different implementations and interfaces; a command written for one should not be assumed to work in another. Rushilo caption capabilities, Whisper setup, whisper.cpp setup

We make Rushilo. The steps below are based on current documentation and product source, not a timed comparison of transcription speed or accuracy.

Generate local captions in Rushilo

  1. 1Download the local model. In Settings, open On this computer and download Whisper base. Complete this while you have an internet connection. Rushilo model setup
  2. 2Prepare the edit. Import your footage and place the clips you want to caption on the timeline. Finish large cuts before creating the final captions.
  3. 3Open Captions and check Service. Choose the downloaded local speech model, rather than an API provider. Downloading a model does not prove that the currently selected service is local.
  4. 4Generate captions. Use Caption whole video for the audible timeline or select a clip with sound and transcribe that clip.
  5. 5Correct words and placement. Review product names, punctuation, numbers, and captions that cover important screen content.
  6. 6Save the correct output. Export the captioned video for visible captions, or save an SRT/VTT subtitle file for separate delivery.

If the panel reports that nothing on the timeline has sound, check the source clip and mute state before retrying. A caption generator needs audible material to transcribe.

You do not need to connect an AI agent to use the on-device caption path. If you separately ask Claude Code, Codex, or a cloud provider to help, check what inputs that request sends. Local transcription and connected AI assistance have different data flows. Rushilo privacy policy

Generate SRT with the Whisper command line

The open-source Whisper package requires Python dependencies and FFmpeg. Use the project's installation instructions for your operating system, including its troubleshooting notes if a package cannot install. Official Whisper installation instructions

Install the package in the Python environment you intend to use:

sh
python -m pip install -U openai-whisper

After FFmpeg is installed and available on your command path, this example transcribes an English video on the CPU:

sh
whisper "demo.mp4" --model base --language en --task transcribe --device cpu --fp16 False --output_format srt --output_dir "subtitles"

Replace demo.mp4 with your own filename. The first use of a model may download its weights, so complete a test transcription while connected before expecting the same setup to work offline.

The example asks for an SRT file in the subtitles folder. Change --output_format srt to --output_format vtt if you need WebVTT. Set the language to the language actually spoken; --task transcribe keeps the transcription task separate from translation. These options are defined in Whisper's command-line source. Whisper command-line options

For another hardware backend, follow the relevant project's instructions. The example deliberately uses CPU settings for clarity; it is not a performance recommendation.

What does “offline” require?

For a local workflow, distinguish preparation from processing:

  • Preparation: downloading the application, its dependencies, and model files.
  • Transcription: running the downloaded model against audio on your computer.
  • Review: editing wording and timing in local software.
  • Delivery: uploading a video or subtitle file if the destination is online.

A computer can need the network for installation or publishing while still transcribing locally. Conversely, a desktop interface can call a remote transcription service.

Before processing sensitive material, test with a harmless sample: complete downloads, select the local engine, disconnect the network, and try transcription. This tests that path in that configuration; it does not establish a privacy guarantee for every feature in the application.

Review words and timing separately

Whisper's model card warns that predictions can include text that was not spoken, and that performance varies across languages and accents. Treat generated captions as a draft that needs checking. Whisper model limitations

Review in two passes.

First, listen for meaning. Correct names, numbers, negations, and specialised vocabulary. “Enable” and “disable” cannot be treated as interchangeable just because the sentence otherwise reads smoothly. Delete captions over silence if nothing was actually said.

Then, check timing and readability. Watch where each cue begins and ends. Break a long cue at a natural phrase boundary. Check whether it remains onscreen long enough to read and whether it covers the interface action it describes.

For accessible captions, include meaningful non-speech audio and speaker identification where needed, rather than expecting speech recognition to supply everything. W3C caption content guidance

A worked review example

The following cue is hypothetical:

srt
1
00:00:03,000 --> 00:00:05,000
Open the workspace and choose the customer import settings.

It contains 59 characters including spaces and punctuation. Over two seconds, that is 59 ÷ 2 = 29.5 characters per second. This calculation describes the cue; it is not a universal accessibility threshold.

Ask three questions:

  1. 1Are those the words actually spoken?
  2. 2Can the viewer read them while also finding the import settings?
  3. 3Does the displayed cue end before the next thought begins?

If the speaker's phrasing allows it, split the cue:

srt
1
00:00:03,000 --> 00:00:04,500
Open the workspace

2
00:00:04,500 --> 00:00:06,000
and choose the customer import settings.

Those times are illustrative. Adjust them to the recording rather than copying them as defaults. If speech is too fast for the intended audience, improving the narration may work better than shrinking the font.

Fix the subtitle problem you actually have

Wrong product name everywhere

First thing to inspect
Recognition of that word
Useful next step
Correct each occurrence in context; check possessives and nearby wording

Words appear during silence

First thing to inspect
Whether anything was spoken
Useful next step
Delete unsupported cues and review neighbouring segments

All captions are equally early or late

First thing to inspect
Alignment near the beginning and end
Useful next step
Apply a consistent offset only if the error stays constant

Timing drifts across the video

First thing to inspect
Whether subtitles match this exact edit
Useful next step
Regenerate or resynchronise against the final cut

Caption file opens but words never appear on the video

First thing to inspect
Player's caption-track selection
Useful next step
Load the sidecar, or export with burned-in captions

Font and animation disappear after upload

First thing to inspect
Destination's subtitle format support
Useful next step
Use supported text captions or burn the styling into the video

Subtitle Edit's documentation describes waveform-based timing adjustments and several synchronisation methods, including shifting cues and matching points near the start and end. Subtitle Edit timing tools

Avoid adjusting an entire file because one cue is wrong. A local timing mistake, a global offset, and a progressively drifting file require different fixes.

Do the final check after export

Open the exported video and any separate caption file outside the editing project. Check the first cue, a cue after a cut, one near the middle, and the final cue. Then review the full captions against the audio.

Confirm that:

  • The caption file corresponds to this exact video edit.
  • Accents and special characters display correctly.
  • Captions do not obscure the action or platform controls.
  • There is no accidental duplication from a sidecar plus burned-in captions.
  • The destination receives the language and file type you intended.

Keep the corrected subtitle file with the project, so a later upload does not require another transcription.

For an editing workflow with local captions, start with Rushilo's on-device model setup. If you also need to tighten the recording, finish the silence and filler-word edit before your final caption review.

Sources

  1. OpenAI's open-source Whisper repositoryChecked October 13, 2026. See the linked documentation and the claim it supports in the article.
  2. W3C caption guidanceChecked October 13, 2026. See the linked documentation and the claim it supports in the article.
  3. YouTube's supported subtitle filesChecked October 13, 2026. See the linked documentation and the claim it supports in the article.
  4. whisper.cpp setupChecked October 13, 2026. See the linked documentation and the claim it supports in the article.
  5. Whisper command-line optionsChecked October 13, 2026. See the linked documentation and the claim it supports in the article.
  6. Whisper model limitationsChecked October 13, 2026. See the linked documentation and the claim it supports in the article.
  7. Subtitle Edit timing toolsChecked October 13, 2026. See the linked documentation and the claim it supports in the article.

Cite this page

Last verified: Oct 13, 2026

Patel, O. (2026, October 13). How to generate Whisper subtitles offline and finish them properly. Rushilo. https://rushilo.com/blog/whisper-subtitles-offline
Om Patel

About the author

Founder, Rushilo

Om Patel is the founder of Rushilo, a desktop video editor driven by the user's own AI, and of BigIdeasDB, a research platform that reads real complaints and reviews to help founders validate products. He writes Rushilo's research articles with the same method: primary sources, dated numbers and the words real users write.

Edit video with the AI you already pay for.

Rushilo is a desktop editor for Mac and Windows that Claude Code and Codex drive on a timeline you can see. Your files stay on your computer.

Two people wearing headphones recording a podcast at a wooden table

Captions and transcripts

How to fix subtitles that are out of sync

Measure the mismatch before shifting captions. A constant delay, gradual drift and an error after a cut need different repairs.

· 6 min read