Skip to content

What is an SRT file?

An SRT file — SubRip Subtitle, .srt — is a plain-text file listing every subtitle in a video with the time it should appear and disappear. It contains no video, no audio and no styling. It is one of the simplest formats still in wide use, which is exactly why almost everything accepts it.

What is inside an SRT file?

Open an SRT in any text editor and you see repeating four-part blocks:

1
00:00:01,000 --> 00:00:04,000
This is the first subtitle.

2
00:00:04,500 --> 00:00:07,250
This is the second, and it
runs across two lines.

Each block is:

  1. A sequence number, counting from 1.
  2. A timecode line — start --> end, as HH:MM:SS,mmm. Note the comma before the milliseconds.
  3. The text, on one or more lines.
  4. A blank line ending the block.

That is the entire specification. There is no official standard document; the format is defined by what parsers accept in practice, which is why files in the wild vary so much.

How do you open an SRT file?

It is text, so any text editor works — Notepad, TextEdit, VS Code. On a Mac, TextEdit may try to open it as rich text; use Format → Make Plain Text if you edit it.

To watch a video with one: put the .srt in the same folder as the video file with the same base name (holiday.mp4 and holiday.srt) and VLC will load it automatically. You can also drag the file onto a playing video in VLC.

To read it as prose rather than subtitles, strip the timecodes with the SRT to text converter.

What SRT cannot do

The simplicity cuts both ways. SRT has no way to express:

  • Font, size or colour
  • Position on screen
  • Per-word timing or karaoke-style highlighting
  • Speaker styling

Most players support <i>, <b> and <u> inside the text, and many tolerate a <font color="..."> tag, but none of that is part of the format and support is inconsistent.

If you need styling, you need a different format — ASS/SSA for rich subtitle styling, VTT for web positioning — or you burn the captions into the picture, which is what short-form social video does.

When an SRT will not work

The player wants VTT. HTML5 <video> only accepts WebVTT via <track>. Given an SRT it shows nothing at all, with no error. Convert it: SRT to VTT.

Accented or non-Latin characters are garbled. An encoding problem. Save the file as UTF-8. Older SRT files are often Windows-1252, which looks fine in one player and broken in another.

Nothing appears. Usually the filename does not match the video, or the timecodes use a period instead of a comma — some tools write 00:00:01.000, which strict SRT parsers reject.

Everything is out of sync. If it is out by a constant amount, shift the whole file. If it drifts further out as the video goes on, that is a frame-rate mismatch and needs rescaling instead.

Where do SRT files come from?

  • Automatic transcription — an app or service listens to the audio and writes the file. Fastest by a wide margin, and accurate enough that you are correcting a handful of words rather than typing everything.
  • Platform downloads — YouTube will give you a caption file, though usually as VTT.
  • Editing software — Premiere, Final Cut and Resolve all export SRT from a caption track.
  • By hand — viable for a short clip, slow for anything longer.

Viten generates SRT files from video directly, with per-word timing you can group into caption lines or keep word by word depending on what you are feeding it into.

SRT vs the alternatives, briefly

Format Use it for
SRT The default. Editors, YouTube uploads, social platforms
VTT Web video, HTML5 <track>
ASS/SSA Rich styling, positioning, animation
TTML/DFXP Broadcast and streaming delivery

For nearly everything outside broadcast, SRT is the right starting point, and converting out of it when you need something else takes seconds.

Caption your next video with Viten

Automatic captions, AI voiceover and audio clean-up. Free to start, no watermark.