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
- A plain text editor (Notepad, TextEdit in plain mode, VS Code, Sublime Text).
- A player that can display subtitles side by side with your video (VLC is a good option).
- The video file you want to subtitle.
Structure of a cue
Every cue has three parts:
- A cue number on its own line (1, 2, 3…).
- A timestamp line:
00:00:01,000 --> 00:00:04,000. - 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:
- HH — hours, two digits, zero-padded.
- MM — minutes, two digits, zero-padded.
- SS — seconds, two digits, zero-padded.
- mmm — milliseconds, three digits, zero-padded.
- Milliseconds are separated from seconds by a comma.
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
- One blank line between cues. This is critical — two adjacent cues without a blank line will be merged by players.
- No blank lines inside a cue. If you want two separate lines of dialogue in the same cue, put them on consecutive lines without an intervening blank line.
- Two lines maximum per cue for readability. More than two lines is a warning sign that the cue should be split.
- Keep lines short. 42 characters per line is the classic guideline. Modern guidelines are 32–42 depending on context.
- Avoid smart quotes. Use plain ASCII quotes and apostrophes.
Timing rules
- Minimum cue duration is about 1 second — anything shorter cannot be read.
- Maximum cue duration is about 6 seconds. Longer cues encourage the viewer to stop paying attention.
- Leave small gaps between cues — 2–3 frames at 24fps (roughly 80–120ms) is normal.
- Do not overlap cues unless there is a deliberate reason (e.g. dialogue that overlaps in the source audio).
Writing the file
- Open a plain text editor.
- Write the first cue (number, timestamp, dialogue).
- Add a blank line.
- Write the second cue.
- Continue for all cues.
- Save with a
.srtextension 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:
- Timestamps that do not parse.
- Cues that end before they start.
- Overlapping cues.
- Cue blocks that are missing dialogue.
- Line-length advisories.
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.