VocalFuse is a Fuse Intelligence product.

SUBTITLES · FORMAT GUIDE · 2026

What is an SRT file?

An SRT file is a plain-text subtitle file — the “SubRip” format. It stores captions as numbered blocks, each with a start-and-end timecode and the text to display during that window. Because it is nothing but text, any editor can open it and any video tool can read it — which is exactly why it became the universal subtitle format. This page covers what is inside one, what opens an SRT file on every platform, a sample file you can copy, and the fixes for the ways it breaks.

What is inside an SRT file

SRT stands for SubRip Text, named after the late-1990s Windows program that ripped subtitles off DVDs with OCR. The program is a historical footnote; the format it wrote conquered the world. There is no official standards document — unlike WebVTT (a W3C standard), SRT is a de facto standard that won by simplicity: a human can fix a typo in Notepad, a script can generate one in three lines of Python, and every player, editor, and upload form accepts it.

Each cue block has exactly four parts:

  1. Sequence number — a plain integer starting at 1 and incrementing. Most players tolerate gaps or duplicates; clean files count sequentially.
  2. Timecode lineHH:MM:SS,mmm --> HH:MM:SS,mmm: start, arrow, end. The comma before the milliseconds is mandatory in SRT (a period makes it a VTT time, which strict parsers reject).
  3. Caption text — one or two lines; two lines of ~42 characters each is the broadcast readability convention. Minimal inline tags (<i>, <b>, <u>, <font>) survive in most parsers; positioning, styling, and speaker labels do not exist in SRT.
  4. Blank line — the block separator. Miss it and most parsers merge two cues into one.

Two properties define the format's character: it is tiny (a feature film's subtitles are a few dozen kilobytes of text) and it is encoding-agnostic — the format sets no character encoding, so modern files are written UTF-8 while DVD-era files arrive in Windows-1252 or regional encodings, which is where the famous mojibake (garbled accented characters) comes from. There is no header line (that is VTT's WEBVTT), no metadata, and no frame-rate declaration — millisecond precision means you convert frames to milliseconds yourself if a tool needs that.

What opens an SRT file

The answer depends on the job: read and fix the text, watch the subtitles on the video, or edit timing on a waveform. Any editor opens an SRT instantly; a player shows it timed with the video; a subtitle editor does both.

Tool Platform What you get Watch for
Notepad Windows Instant text view and edit Save As appends .txt behind your back; old versions default to ANSI
Notepad++ / VS Code Windows, Mac, Linux Text edit with an encoding indicator in the status bar — the fastest mojibake diagnosis Save as UTF-8 (without BOM); some older players choke on a BOM
TextEdit Mac Text view and edit Rich text (.rtf) by default — Format > Make Plain Text first, or you save captions.srt.rtf
VLC / MPV All Subtitles displayed on the video, timed Auto-load needs the SRT next to the video with a matching filename; garbled text means a wrong encoding setting
Subtitle Edit Windows (open source) Waveform-timed editing, sync, format conversion Free but Windows-focused — the serious-editing default
Aegisub All (open source) Waveform + spectrogram timing, styling Styling features belong to the ASS world; export back to plain SRT
Premiere / DaVinci / FCP / CapCut All Import SRT as a caption track Each has its own import menu — but all read SRT without conversion

The double-click trap: Windows has no built-in SRT association — double-clicking a downloaded subtitle file opens an app-picker or nothing, because the OS does not know which tool claims a subtitle file. It is not a video (players will not grab it) and not a document (word processors open it with formatting damage). Right-click → Open with → Notepad for text, or drop it on a playing VLC window for the timed view.

VLC specifics (the most-asked variant of this question): put the SRT in the same folder as the video with the same base name — Movie.mp4 next to Movie.srt — and VLC auto-loads it. If nothing shows, press V to cycle subtitle tracks (VLC remembers if you disabled tracks last session), or use Subtitle → Add Subtitle File. Boxes and question marks instead of characters mean the encoding setting: Tools → Preferences → Subtitles/OSD → Default encoding, matched to the file (UTF-8 for anything modern). Drift is Tools → Track Synchronization, in milliseconds.

iPhone and Android: mobile players are the weakest SRT surface — iOS's built-in video playback makes attaching external subtitle files awkward (VLC's iOS app is the practical route), while Android's MX Player and VLC auto-load an SRT that sits beside the video with a matching name, same as desktop. On phones, a downloaded subtitle's encoding more often shows as boxes — fix it on a desktop first.

A sample SRT file you can copy

This is a complete, valid SRT file — two cues, every rule applied. Save it as sample.srt and drop it next to any video renamed sample.mp4 to see it work in VLC, or upload it to YouTube's caption editor as a first test:

1
00:00:01,000 --> 00:00:04,500
Welcome to the sample subtitle file.

2
00:00:05,200 --> 00:00:09,800
Each block is a sequence number,
a timecode line, then the text.

For a large realistic file (a 45-minute talk is roughly 500–800 cues and 40–70 KB), public sample repositories offer test files in several sizes — SampleFile.com hosts SHA256-verified SRT samples from 50KB to 1MB with a stable manifest for test pipelines, ConvertICO offers small themed samples (dialogue, lyrics, multilingual unicode), and the andreyvit/subtitle-tools GitHub repo carries the classic two-cue sample.srt that tools use in their own docs. These matter more than they look: a known good file is the fastest way to prove the player is the problem, not your subtitle file.

Generating a file for real video? That is the how-to-create-an-SRT-file guide — hand-writing, waveform timing, and generating from audio, with the Notepad and TextEdit save traps.

When an SRT file breaks (and the fix)

SRT fails silently — the parser skips or mis-renders cues without an error. The recurring break modes and their fixes:

  • Garbled characters (mojibake). The file is legacy-encoded (Windows-1252, Latin-1) and the tool read it as UTF-8. Open in VS Code or Notepad++ (the encoding indicator shows what you have), re-save as UTF-8 without BOM. The file itself is fine — the encoding interpretation is what changed.
  • VLC shows no subtitles. Track disabled last session (press V), filename mismatch (base names must match exactly), or the file is not really SRT — TVs and converters silently deliver renamed image-based SUP/PGS tracks, which VLC reports under Tools → Codec Information → Subtitle. Convert those with OCR; renaming cannot.
  • Subtitles drift out of sync. Frame-rate mismatch or player delay: Tools → Track Synchronization in VLC, or shift timestamps in Subtitle Edit. A constant offset is one number; progressive drift is a frame-rate conversion problem.
  • Cues skipped or merged. The comma-vs-period timecode (a VTT-style time in an SRT), a missing blank line between blocks, or overlapping cues. Each is a one-pass fix in Subtitle Edit, which validates on open.
  • Dropped on upload. Extension hidden behind .txt or .rtf from the save dialog (the classic captions.srt.txt), or encoding rejected — YouTube wants plain UTF-8 and caps files at 10MB / 10,000 cues.

The SRT vs VTT guide covers the format-decision side of these traps — where VTT is required instead (any HTML5 <track> element), and the one-line ffmpeg conversions between the two.

Turning an SRT file into plain text

The reverse job — you have an SRT and want the transcript — is a text filter: keep the caption lines, drop the numbers and timecodes. Browser-local converters do it in one paste (SubtitleKit keeps or strips timecodes, files never leave your device); for scripts, Python's srt library (pip install srt) parses cue objects you can join into text, and one-liner gists handle the common “strip timestamps into one paragraph” case in ten lines.

VocalFuse inverts the pipeline: instead of extracting text from subtitles that already exist, it runs a local Whisper-class engine on the audio itself — no captions required — and exports SRT, VTT, or TXT from one pass. When the source video never had captions (the ~1-in-10 case), there is no SRT to open; the transcript has to come from the audio. Nothing uploads, and there is no per-minute meter: free tier, Basic $5/mo dictation, Pro $10/mo adds AI notes and summaries.

Related reading

How to create an SRT file

Three working creation routes and the Notepad/TextEdit save traps.

Creation guide

SRT vs VTT

Which format each destination requires, and one-line ffmpeg conversions.

Format decision guide

Transcribe video files locally

The local Whisper pipeline vs cloud converters: cost, formats, privacy.

Video transcription guide

YouTube transcripts & timestamps

Extract, keep or strip timestamps, and re-upload SRT to Studio.

Timestamps guide

Explore related AI note taking guides

SRT file — FAQ

What does SRT stand for?

SubRip Text (or SubRip Subtitle) — named after the late-1990s Windows program SubRip that ripped subtitles off DVDs with OCR. The program is history, but the plain-text format it wrote became the de facto universal subtitle standard. There is no official specification document; unlike WebVTT (a W3C standard), SRT won by simplicity.

What opens an SRT file?

Three tool classes, by job. Text editors: Notepad, VS Code, Notepad++ (Windows), TextEdit in plain-text mode (Mac) — instant view and edit, since the file is plain text. Video players: VLC and MPV display the subtitles timed over the video when the SRT sits next to it with a matching filename. Subtitle editors: Subtitle Edit (Windows) and Aegisub (all platforms) add waveform timing, sync, and conversion. Editors like Premiere, DaVinci Resolve, and Final Cut import SRT directly as caption tracks.

How do I play an SRT file with my video?

In VLC, put the SRT in the same folder as the video with the same base name (Movie.mp4 next to Movie.srt) and it auto-loads. If nothing shows, press V to cycle subtitle tracks, or use Subtitle > Add Subtitle File. Garbled characters mean a wrong encoding setting (Tools > Preferences > Subtitles/OSD > Default encoding — set UTF-8); drift is fixed under Tools > Track Synchronization.

What is an example of an SRT file?

A valid two-cue file: cue 1 is the line "1", then "00:00:01,000 --> 00:00:04,500", then the caption text, then a blank line; cue 2 repeats with the next number and times. The timecode uses a comma before the milliseconds (a period makes it VTT-style), the arrow is --> with spaces on each side, and blocks always separate with one blank line. Save it as UTF-8 with the .srt extension.

Can I convert an SRT file to plain text?

Yes — it is a text filter: keep the caption lines, drop the sequence numbers and timecode lines. Browser-local converters like SubtitleKit do it in one paste with or without timecodes and never upload the file; in Python, the srt library (pip install srt) parses cues you can join into a paragraph. Note the text comes from whatever captions exist — if a video has no subtitle track, there is no SRT to extract and you need speech recognition on the audio instead.

Why does my SRT file show garbled characters?

Encoding mismatch (mojibake). The SRT format sets no character encoding, so DVD-era files arrive in Windows-1252 or Latin-1 while modern tools read them as UTF-8. The file itself is fine: open it in VS Code or Notepad++ (the status bar shows the actual encoding), then re-save as UTF-8 without BOM. Some older players also choke on a UTF-8 BOM — the without-BOM variant is the safe default.

Why does double-clicking an SRT file do nothing on Windows?

Windows has no built-in file association for .srt — it is not a video (players do not grab it) and not a document (word processors open it with formatting damage), so the OS shows an app picker or nothing. Right-click, Open with, and pick Notepad for the text view, or drag the file onto a playing VLC window for the timed view.

Is SRT better than VTT?

They have different jobs. SRT is the universal interchange format — every player, editor, and upload form (YouTube, Vimeo, Premiere, VLC) accepts it. VTT is the web format: the HTML5 <track> element requires it, and SRT is silently ignored there. Keep SRT as the master file and convert to VTT with one ffmpeg command when a web player needs it; the full destination-by-destination comparison is in our SRT vs VTT guide.