Subtitles are no longer an accessibility afterthought. An XR Extreme Reach study across five countries found that 80% of viewers now use captions at least sometimes, and 87% of Americans say they use them regularly — even when audio is perfect. That shift puts SRT files at the center of almost every modern video workflow.
SRT files are plain text. You can open one in Notepad right now and read every timestamp and subtitle line. That simplicity is what makes them portable across every platform — YouTube, Vimeo, VLC, Premiere Pro, DaVinci Resolve, Final Cut. But it also means that editing them manually can be tedious and error-prone, especially when you need to shift 400 timestamps by the same amount, or hunt down a BOM encoding bug that’s invisible to the naked eye.
This guide explains the SRT format, shows you how to edit SRT files online with no software, covers the most common edits, and walks you through every major error type that causes SRT files to break.
Key Takeaways
- SRT is plain text — any text editor can open it, but a purpose-built editor saves significant time
- Timestamp format:
HH:MM:SS,mmm— the comma before milliseconds is mandatory; a period breaks compatibility - Global shift: use the offset tool to move all timestamps at once instead of editing hundreds of rows
- UTF-8 without BOM — always save with this encoding or your file will break in Premiere Pro and Final Cut
- No sign-up needed for basic editing at videodubbing.com/tools/srt-editor/
What Is an SRT File?
SRT stands for SubRip Text. Created by the SubRip software in the early 2000s, it is the most widely supported subtitle format and the default export from most AI transcription tools, YouTube Studio, and video editing software. Its staying power comes from a single advantage: it is pure plain text with zero proprietary encoding.
A typical SRT file looks like this:
1
00:00:01,000 --> 00:00:03,500
Hello, and welcome to the video.
2
00:00:04,200 --> 00:00:07,800
Today we're going to cover subtitle editing
from start to finish.
3
00:00:08,100 --> 00:00:11,000
Let's get started.
Each block has four components:
- Index — sequential number starting at 1
- Timing line —
start --> endinHH:MM:SS,mmmformat - Text — one or more lines of subtitle content
- Blank line — separates blocks; missing blank lines corrupt the entire file
That’s the entire format. No headers, no metadata, no style information (unless you add HTML-style tags like <i> for italics or <b> for bold — though not all players render them).
Why Subtitles Matter: The Data
Before diving into editing mechanics, it helps to understand why getting subtitle quality right has real business consequences:
Fixing a broken SRT file is not just a technical chore. It directly affects reach, retention, and legal compliance.
How to Edit an SRT File Online — Step by Step
Step 1: Open the SRT Editor
Go to videodubbing.com/tools/srt-editor/. No account, no installation, no file size limits for typical subtitle files.
Step 2: Load Your SRT File
Two options:
- Paste: open your
.srtfile in a text editor, select all (Ctrl+A / Cmd+A), copy, and paste into the editor - Upload: click Choose file and select your
.srtor.vttfile directly
Step 3: Click “Load & Edit”
The editor parses the file and displays each cue as a table row with three editable fields: start timestamp, end timestamp, and subtitle text. Parsing errors (missing blank lines, malformed timestamps) are flagged immediately.
Step 4: Edit What You Need
- Fix a typo: click the text cell in any row and type your correction
- Fix a single timestamp: click the start or end timestamp field and update it in
HH:MM:SS,mmmformat - Shift all timestamps: use the Shift all timestamps control, enter the number of seconds (positive to delay, negative to advance), and click Apply — this is the fastest fix when every subtitle is off by the same amount
Step 5: Download the Corrected File
Click Download SRT to save the corrected file. Use Download VTT if your platform requires WebVTT format.
SRT Timestamp Format Reference
The format HH:MM:SS,mmm breaks down as:
| Component | Range | Notes |
|---|---|---|
HH | 00–99 | Hours — most videos only use 00 or 01 |
MM | 00–59 | Minutes |
SS | 00–59 | Seconds |
mmm | 000–999 | Milliseconds — separator is a comma |
00:01:23.450 is VTT format — in an SRT file it will silently break many parsers. The correct form is 00:01:23,450. The --> arrow also requires a space on each side.Valid: 00:01:23,450
Invalid: 00:01:23.450 — period instead of comma; VTT format
Invalid: 1:23,450 — missing leading zeros cause parse failures in strict players
Most Common SRT Edits
Fix All Subtitles That Are Early or Late (Global Shift)
This is the most frequent case. Every subtitle is off by the same amount — because the file was generated from a different cut, an intro was added, or the wrong export settings were used.
Online method: use the Shift tool in the SRT editor. Enter the offset in seconds (e.g., 2.5 or -1.0). Positive delays all cues, negative advances them.
Manual method: requires a regex-capable text editor and knowledge of the timestamp pattern. The online tool eliminates the risk of pattern errors.
Fix a Specific Subtitle That’s Off
Find the cue in the editor table, click the start or end timestamp, and type the corrected value. If you’re unsure of the exact correct time, use the Subtitle Sync tool with video preview — you can watch the cue play against the video and adjust timing directly.
Correct a Transcription Error
Find the cue row, click the text cell, and type the correction. Multi-line subtitles use Enter for line breaks within the cell.
Delete a Cue
Clear the text field for the row. On export, empty cues are omitted automatically. In a text editor, delete the entire block including the blank line that follows it.
Split a Long Subtitle Into Two
Find the cue to split and decide where the speech pause occurs. Edit the first cue’s end time to the pause point. Add a new row with the pause point as the start time and the remaining text. Industry standard: keep each cue under 42 characters per line and on screen no longer than 7 seconds.
Add Formatting Tags
SRT supports a limited set of HTML-style inline formatting tags:
| Tag | Effect | Player support |
|---|---|---|
<b>text</b> | Bold | Broad |
<i>text</i> | Italic | Broad |
<u>text</u> | Underline | Moderate |
<font color="#ffffff">text</font> | Color | VLC, limited others |
Editing SRT Files Manually in a Text Editor
If you prefer a text editor, any plain-text application works. Critical rules:
Never change the timing line format. The format is rigid: HH:MM:SS,mmm --> HH:MM:SS,mmm. The comma between seconds and milliseconds is required by the SRT spec. Changing it to a period produces a file that looks correct but fails silently in many players.
Keep the blank line between blocks. Missing blank lines cause parsers to merge adjacent cues, which corrupts everything downstream.
Don’t renumber manually if you don’t have to. Most players and platforms ignore the index number and rely only on timestamps. Renumbering is cosmetic. If you need a clean sequence, use Find & Replace in your editor.
Use a plain-text editor, not a word processor. Word, Pages, and Google Docs add hidden formatting characters that corrupt SRT files. Use Notepad (Windows), TextEdit in Plain Text mode (Mac), VS Code, or Notepad++.
Troubleshooting Common SRT Errors
These are the errors that account for the majority of “my SRT won’t load” support tickets, ordered by frequency.
Error 1: Period Instead of Comma in Timestamps
# Broken (SRT file with VTT-style timestamp)
00:01:23.450 --> 00:01:25.900
# Correct
00:01:23,450 --> 00:01:25,900
Fix: in VS Code or Notepad++, use Find & Replace with regex enabled. Find:
(\d{2}:\d{2}:\d{2})\.(\d{3}), Replace: $1,$2Error 2: UTF-8 BOM Encoding (Windows Notepad)
Windows Notepad silently adds an invisible Byte Order Mark (BOM — the bytes EF BB BF) at the start of UTF-8 files. This causes the first subtitle entry to be misread or skipped.
Fix: open the file in VS Code. The encoding indicator appears in the bottom-right status bar. If it shows “UTF-8 with BOM,” click it and select “Save with Encoding → UTF-8”. In Notepad++: Encoding menu → “Convert to UTF-8 (without BOM).”
Error 3: Overlapping Timecodes
# Broken — cue 2 starts before cue 1 ends
1
00:00:04,000 --> 00:00:06,500
First subtitle.
2
00:00:06,200 --> 00:00:08,000
Second subtitle overlaps the first.
Fix: ensure each cue’s end time is strictly earlier than the next cue’s start time, with at least a 2-frame gap (approximately 0.042 seconds at 24fps, per the Netflix Timed Text Style Guide).
Error 4: Missing Blank Lines Between Cues
# Broken — no blank line between cue 1 and cue 2
1
00:00:01,000 --> 00:00:03,000
First subtitle.
2
00:00:04,000 --> 00:00:06,000
Second subtitle.
Fix: add a blank line after every cue’s text block, including the last one in the file.
Error 5: Wrong Character Encoding for Non-Latin Text
Fix: ensure the file is saved as UTF-8 (not Windows-1252, Shift-JIS, GB2312, or Big5). Use VS Code or Notepad++ to detect and convert the encoding.
Professional Subtitle Standards
If you’re producing content for platforms or clients with quality requirements, these are the industry benchmarks:
Netflix Timed Text Style Guide
| Requirement | Specification |
|---|---|
| Maximum characters per line | 42 characters |
| Maximum lines per event | 2 lines (1 preferred) |
| Maximum event duration | 7 seconds |
| Minimum event duration | 5/6 second (≈0.833s) |
| Minimum gap between events | 2 frames |
| Reading speed — adult content | 20 characters per second maximum |
| Reading speed — children’s content | 17 characters per second maximum |
| Character encoding | UTF-8 |
Subtitle Reading Speed — Practical Calculator
To check if a cue meets the 20 CPS limit: count the characters in the subtitle text, then divide by the cue duration in seconds. For example, a 10-character subtitle displayed for 1 second = 10 CPS — well within limits. A 60-character subtitle displayed for 2 seconds = 30 CPS — too fast to read comfortably.
WCAG and EAA Compliance
If your video content needs to be WCAG-compliant, use SRT as the starting point and enrich it with SDH (Subtitles for the Deaf and Hard-of-Hearing) formatting before publishing.
SRT vs VTT vs ASS: Which Format Should You Use?
| SRT | VTT (WebVTT) | ASS/SSA | |
|---|---|---|---|
| Timestamp separator | Comma (,) | Period (.) | Centiseconds |
HTML5 <video> support | Limited | Native | No |
| YouTube upload | Yes | Yes | No |
| Vimeo upload | Yes | Yes | No |
| CSS styling | No | Yes | Advanced |
| Positioning control | No | Yes | Full |
| Speaker labels | No | Yes | Yes |
| Best for | Universal distribution, NLEs | Web embeds, HTML5 | Anime, karaoke, advanced styling |
| Platform coverage | Near-universal | Broad | Limited |
<video> tag. The Subtitle Converter converts between all formats instantly.Workflow: Getting a Clean SRT From AI Transcription
AI tools like Whisper, AssemblyAI, or videodubbing.com’s subtitle generator produce SRT files automatically. The output is usually 90–95% accurate, but almost always needs editing.
- Generate the SRT from your video using an AI subtitle tool
- Load the file into the online SRT editor
- Scan for the most common AI errors: proper nouns, technical terms, homophone confusions (there/their, your/you’re), and punctuation
- Check timing — AI tools occasionally produce overlapping cues or cues that are a few hundred milliseconds off
- Apply the 42-character rule — split any cue that exceeds this limit at a natural language boundary (after punctuation, before conjunctions)
- Export as SRT (for video editors and social platforms) or VTT (for web embeds)
Generate accurate subtitles from your video in minutes — then edit them with the free SRT Editor.




Use the share button below if you liked it.