How to create SRT files

SRT files are simple enough that you can write one in a plain text editor. This guide covers the full process: structuring cues, writing correct timestamps, saving with the right encoding and validating the result.

What you need

Structure of a cue

Every cue has three parts:

  1. A cue number on its own line (1, 2, 3…).
  2. A timestamp line: 00:00:01,000 --> 00:00:04,000.
  3. One or more dialogue lines.

Cues are separated by a single blank line.

Minimal example

1
00:00:01,000 --> 00:00:04,000
Hello and welcome.

2
00:00:05,000 --> 00:00:08,000
This is the second cue.

Timestamp format

Timestamps use HH:MM:SS,mmm:

Example: 1 hour, 23 minutes, 4 seconds, 500 milliseconds = 01:23:04,500.

Cue numbering

Number sequentially from 1. Most players tolerate gaps in numbering, but sequential numbering is the standard and makes editing easier.

If you are inserting or deleting cues manually, use the Cue Renumbering tool afterwards to fix the sequence.

Dialogue rules

Timing rules

Writing the file

  1. Open a plain text editor.
  2. Write the first cue (number, timestamp, dialogue).
  3. Add a blank line.
  4. Write the second cue.
  5. Continue for all cues.
  6. Save with a .srt extension and UTF-8 encoding.

Do not use Word, Google Docs or any word processor. They add smart quotes, may introduce invisible characters and often save with a different encoding.

Encoding

SRT files should be saved as UTF-8. If you are subtitling in a language with non-Latin characters (Chinese, Arabic, Hebrew, Russian, etc.), UTF-8 is essential — any other encoding will produce garbled characters in most players.

If a file displays garbled characters, run it through the Encoding Cleaner to fix common issues.

Validating the result

Before shipping the subtitle file, always validate it. Use the SRT Validator to catch:

Testing

Play the video in a player that supports subtitles (VLC is a good choice) and watch the first minute, a middle scene and the last minute. If subtitles appear at the right time throughout, the file is in sync. If they are off by a constant amount, use the SRT Time Shifter to correct.

Related tools and guides