Subtitle Edit is a free, open-source desktop app for creating, timing, fixing, converting and translating subtitle files. Version 5.3.0, released on 14 October 2026, runs on Windows, macOS and Linux. It can transcribe a video's audio into subtitles with local Whisper engines, sync lines against a waveform, change a file's frame rate, shift every time at once, clean up common errors and strip hearing-impaired tags. If your job ends in a subtitle file, it is hard to beat for free.
This guide covers where to get it and how to use the features people search for most, with the menu paths from Subtitle Edit's own documentation, read on 21 October 2026. It also says when a different tool fits better. For how desktop software like this compares with online generators in general, see desktop subtitle software vs an online generator; we won't repeat that here.
What it is and where to get it
Subtitle Edit's home page at nikse.dk calls it "a free (open source) editor for video subtitles". Downloads are on the project's GitHub releases page, which on 21 October 2026 listed v5.3.0 with a build date of 14 October 2026.
Per the GitHub README, read the same day:
- Windows: Windows 10 version 22H2 or newer. There is an installer (SubtitleEdit-Windows-x64-Setup.exe) and portable zips for x64 and ARM64.
- macOS: macOS 12 Monterey or newer, with macOS 14 recommended. Separate .dmg files for Apple Silicon and Intel, signed and notarized by Apple.
- Linux: a Flatpak that bundles mpv and ffmpeg, or native x64 and ARM64 builds that need mpv and ffmpeg installed.
- No separate .NET install. The README says the builds are self-contained. The nikse.dk page still mentions .NET Framework 4.8; the README for the current builds says no separate install is needed.
- Licence. GitHub labels the repository MIT; nikse.dk mentions GPL or LGPL for the source. Either way it costs nothing.
- Privacy. The README says editing, converting, playback and auto-backup run entirely on your device, and online services such as translation or cloud speech-to-text are optional.
On formats, the documentation's supported formats page says "380+ subtitle formats", while nikse.dk says more than 300. Either way the common ones are covered: SubRip (SRT), WebVTT, Advanced SubStation Alpha (ASS), SSA, TTML and DFXP, EBU STL, SCC, and image-based VobSub and Blu-ray .sup files, which it can OCR into text.
Audio to text: auto transcribe with Whisper
Open a video, then go to Video > Speech to text…. The speech-to-text page lists these engines on 21 October 2026:
- Local, on your machine: Whisper CPP, Purfview Faster Whisper XXL, Whisper CTranslate2, Whisper Const-me (Windows only), WhisperX, Whisper OpenAI (needs Python), Qwen3 ASR CPP and Crisp ASR.
- Online, needing an account or key: an OpenAI-compatible server, OpenRouter, Alibaba Qwen3-ASR and Google Cloud Speech-to-Text, which needs a billed Google Cloud project.
Engines and models download automatically the first time you use them. Pick a smaller model for a quick draft and a larger one when accuracy matters more than time. The Whisper engines can detect the spoken language for you. If you have an NVIDIA card, the docs suggest the cuBLAS build of Whisper CPP or Purfview; if you hit a CUDA out-of-memory error, drop to a smaller model.
Older guides mention Vosk. The current documentation does not list it, so plan around Whisper or Crisp ASR.
When the transcription finishes, the lines land in the subtitle grid with timings. Read every line: speech-to-text gets names, numbers and crosstalk wrong, whatever the engine.
Waveform sync: set timings by eye
The audio visualizer shows the waveform, a spectrogram, or both, under the video. Per the documentation's audio visualizer page:
- Shift+click sets the start of the current line.
- Ctrl+click (Cmd+click on macOS) sets its end.
- Drag a line's left or right edge to adjust it.
- Click and drag in an empty area, then press Enter, to insert a new line over that stretch of audio.
Scene cuts can appear as vertical lines, and you can snap line edges to them. Speech shows up as dense blocks on the waveform, so you can see where a line should start before you hear it.
Change frame rate
When subtitles start in sync and drift further off over the video, the file was usually timed for a different frame rate. Go to Synchronization > Change frame rate…. The documentation says the "from" value is preset from the open video, and the common values offered are 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60. Set from and to, and click OK. The classic case is a file made for a 23.976 fps release played against a 25 fps one.
Adjust all times
When every line is early or late by the same amount, use Synchronization > Adjust all times…. You enter the amount, choose Show earlier or Show later, and apply it to all lines, selected lines only, or the selected lines and everything after. The documentation also lists keyboard shortcuts: Shift, Ctrl or Alt with the left or right arrow show lines earlier or later in steps of 10, 100 or 500 ms.
Fix common errors
Tools > Fix common errors… scans the file and proposes fixes in two steps. You choose the rules, review the proposed changes, untick any you disagree with, and apply. Per the documentation, the rules include overlapping display times, display times that are too short, common OCR errors, unneeded spaces and periods, long lines that need breaking, and italic tag problems. Run it after transcription or OCR, and before you deliver a file.
Remove text for hearing impaired
Tools > Remove text for hearing impaired… strips SDH annotations. The options listed in the documentation cover text in square brackets, curly brackets, parentheses or custom characters; speaker labels before a colon, optionally only in uppercase; lines that are all uppercase; lines containing only music symbols; and common interjections such as "hmm" and "uh" for the chosen language. Several options can be limited to text that sits on a line of its own.
Auto-translate, and why it may ask for an API key
Translate > Auto-translate… sends the lines to a translation engine. The auto-translate page splits them three ways:
- Need an API key: Google Translate V2, DeepL, Bing Microsoft Translator, ChatGPT, Anthropic Claude, Google Gemini, Mistral, DeepSeek and others, each billed by its own provider.
- Free: Google Translate V1 and MyMemory.
- Local or self-hosted: LM Studio, Ollama and llama.cpp running a model on your computer, plus LibreTranslate and NLLB servers you host yourself.
If auto-translate "isn't working", it is usually one of two things. Either the engine you picked needs a key you haven't entered, or you are on the free Google V1 engine and Google has answered with an "unusual traffic" page. The docs say Subtitle Edit retries through a fallback, and that blocks usually clear within minutes to a few hours. Switching to a keyed engine or a local model avoids both.
Machine translation needs a fluent reader before it ships.
Feature map
| Task | Menu path in Subtitle Edit 5 | Free browser tool for a quick fix |
|---|---|---|
| Transcribe audio | Video > Speech to text | None |
| Fix drift from frame rate | Synchronization > Change frame rate | Subtitle frame rate converter |
| Shift every line | Synchronization > Adjust all times | Subtitle time shift |
| Remove SDH tags | Tools > Remove text for hearing impaired | SRT cleaner |
| Edit text and timings | Main subtitle grid | SRT editor |
| Translate | Translate > Auto-translate | None |
When a browser tool is quicker
Subtitle Edit is a full workshop. If you have one SRT and one small problem, opening it may be slower than the fix. We built free tools on this site for those jobs; they run in your browser and don't upload your file:
- The subtitle frame rate converter rescales timings, for example from 23.976 to 25 fps.
- The SRT cleaner removes hearing-impaired tags, speaker labels, HTML tags, music notes and empty cues.
- The SRT editor lets you change cue text and timings in an SRT or VTT file and download the result.
- The subtitle time shift tool moves every cue earlier or later by the amount you enter.
When an online captioner that burns captions in fits better
Subtitle Edit's output is a subtitle file. Its documentation does describe a Video > Generate video with burned-in subtitles… option that uses FFmpeg, with settings for font, outline, box, resolution and encoder. That is powerful, and it is also a lot of settings to get right for a 40-second Reel.
If what you want is a short social video with styled captions in the picture, an online captioner can be quicker. CapsAI is one: upload an MP4 or MOV of up to 10 minutes, choose one of 11 spoken languages (English, Hinglish, Hindi, Bengali, Telugu, Marathi, Tamil, Urdu, Gujarati, Kannada or Punjabi), fix the words and timings in the browser, pick one of 37 caption styles, and export one MP4 with the captions burned in. It works in a phone browser too.
Know the trade. CapsAI has no SRT, VTT or TXT export and cannot open your subtitle file, so it can't replace Subtitle Edit for file work. It does not translate, and it does not take videos longer than 10 minutes. A new account gets 3 free minutes to start, and packs are paid once from $4 (₹49 in India, €4 in the euro area); watermark-free export comes with every paid pack.
What to do next
If your deliverable is a subtitle file, download Subtitle Edit 5.3.0 from GitHub, transcribe with Whisper CPP, tidy the timing on the waveform, and run Fix common errors before you save. If you only need to nudge, clean or rescale one SRT, use the free browser tools above. If you need a captioned short video rather than a file, try a clip in the auto subtitle generator with the 3 free minutes.
