SubRip is a plain-text subtitle format, saved as an .srt file, that stores subtitles or captions as a numbered list of cues, each with a start time, an end time and one or more lines of text. In video accessibility it is the most widely exchanged sidecar caption file: almost every video editor, media player, streaming platform and captioning service can read and write it.
The format takes its name from SubRip, a Windows program from around 2000 that extracted subtitles from DVDs by optical character recognition and saved them as text. The program faded, but its output format became a de facto standard without ever being formally specified.
How an .srt file is structured
An .srt file is a sequence of blocks separated by a blank line. Each block has exactly the same three parts, which makes the format easy to read for humans and trivial to parse for software.
| Part | Example | Rules |
|---|---|---|
| Sequence number | 12 | Integer, counting up from 1 |
| Timing line | 00:01:04,250 --> 00:01:07,100 | Hours, minutes, seconds and milliseconds, with a comma before milliseconds |
| Text lines | [door slams] or dialogue | Usually one or two lines |
| Blank line | Empty line | Ends the cue |
The comma as the decimal separator is the format’s most recognizable detail and a frequent source of errors when files are converted from WebVTT, which uses a period. Times are absolute from the start of the media, so a file applies only to one specific cut and frame rate of the video.
Formatting support is minimal. Many players interpret simple HTML-like markup for italics, bold, underline and font color, and some accept position codes borrowed from the SSA format, but none of this is guaranteed. For accessible captions, the reliable content is plain text with clear speaker and sound labels.
SubRip compared with other caption formats
SubRip trades features for maximum compatibility. Other formats add styling, positioning or broadcast metadata, which matters when captions must meet stricter delivery specifications.
| Format | Structure | Styling and positioning | Typical use |
|---|---|---|---|
| SubRip (.srt) | Plain text cues | Unofficial and inconsistent | Exchange, editing, social video |
| WebVTT (.vtt) | Plain text with header and cue settings | CSS styling and position settings | HTML5 video on the web |
| TTML and IMSC | XML | Rich, standardized | Broadcast and streaming delivery |
| SCC | Encoded CEA-608 data | Roll-up, pop-on, paint-on modes | US broadcast closed captions |
| ASS/SSA | Script with style definitions | Very rich, including karaoke | Fan subtitling and typesetting |
The closest relative is WebVTT, which was designed partly as a successor to SubRip. Converting SubRip to WebVTT usually means adding the WEBVTT header and replacing the comma with a period, which is why many platforms accept .srt uploads and convert them internally. The HTML5 track element in browsers expects WebVTT, not SubRip.
Writing accessible captions in SubRip
The format does not make captions accessible; the content and timing do. Captions for deaf and hard-of-hearing viewers, often called SDH, must include speaker identification and meaningful sounds, not only dialogue.
Professional style guides differ in detail, but the ranges below reflect widely used practice for readable cues.
| Parameter | Common range | Effect if exceeded |
|---|---|---|
| Lines per cue | 1 to 2 | Covers the picture and slows reading |
| Characters per line | About 32 to 42 | Text wraps unpredictably on small screens |
| Reading speed | About 15 to 20 characters per second | Viewers miss text before it disappears |
| Minimum duration | About 1 second | Cue flashes and is unreadable |
| Maximum duration | About 6 to 7 seconds | Text lingers after the speech ends |
| Gap between cues | A few frames | Consecutive cues blur together |
- Put sound descriptions in square brackets, such as [phone ringing] or [tense music].
- Identify off-screen or unclear speakers with a name label at the start of the line.
- Break lines at natural phrase boundaries, not in the middle of a name or a verb phrase.
- Keep captions synchronized within a fraction of a second of the audio, because late captions confuse lip readers.
Encoding, timing and compatibility pitfalls
Because SubRip has no official specification, files that look identical can behave differently across players. Most problems fall into a few recurring categories.
| Symptom | Cause | Fix |
|---|---|---|
| Accented letters shown as symbols | Legacy encoding instead of UTF-8 | Save as UTF-8 |
| File rejected by a platform | Byte order mark, missing blank lines or wrong separators | Validate and normalize the file |
| Subtitles drift out of sync | Different frame rate, such as 25 versus 23.976 fps | Retime with a frame rate conversion |
| Subtitles early or late by a constant amount | Different edit or leader | Apply a global offset |
| Italics shown as raw markup | Player ignores formatting tags | Remove styling or use WebVTT |
A further limitation is the lack of positioning control. When a caption would cover on-screen text such as a name title, SubRip cannot reliably move it to the top of the frame, so broadcast deliveries usually require TTML, IMSC or SCC instead.
Where SubRip fits in an accessibility workflow
SubRip works best as the working and exchange format. Transcription and captioning tools export .srt, editors import it as a caption track, translators use it as the source for subtitle translation, and the final delivery format is generated from it when a platform requires something richer.
Since an .srt file is separate from the video, viewers can turn captions on or off, which makes it a closed-caption solution. Burning the same text into the picture produces open captions, which cannot be switched off or read by assistive technology.
A non-technical view
A SubRip file is a simple text file that tells a video player what to show and when. It says, for example, show this sentence from one minute and four seconds until one minute and seven seconds, then show the next one.
Because it is so simple, nearly every program understands it. That makes it the easiest way to add captions to a video, as long as the timing and wording are done carefully for the people who rely on them.
A concrete example
A university records a 50-minute lecture for its online course. An automatic transcription tool produces a first .srt file with about 700 cues, and a captioning assistant corrects technical terms, adds speaker labels for audience questions and inserts sound cues such as [laughter] and [microphone feedback].
The assistant then checks that no cue exceeds two lines of 42 characters or about 20 characters per second. The corrected file is uploaded to the course video platform, which converts it to WebVTT for playback, and a translator uses the same file to create a Spanish subtitle track.
Students who are hard of hearing get accurate closed captions, and the course meets the institution’s accessibility requirements without re-editing the video itself.