Product
Services
Solutions
BlogDocs
Back

SRT Subtitles Format Guide

The SRT (SubRip Text) format is the most widely used subtitle format for video content, providing a simple yet effective way to display synchronized text alongside video and audio media.

What is SRT format

SRT is a plain text subtitle format that contains subtitle entries with timing information and text content. Each subtitle entry includes a sequence number, timestamps for when the subtitle should appear and disappear, and the actual subtitle text.

Key characteristics

  • Universal compatibility — Supported by virtually all video players and platforms

  • Simple text format — Easy to create, edit, and parse

  • Precise timing — Millisecond-accurate synchronization

  • Lightweight — Minimal file size overhead

  • Multi-line support — Multiple lines of text per subtitle

File structure and syntax

Basic SRT structure

1
00:00:01,500 --> 00:00:04,000
Welcome to our tutorial series

2
00:00:04,500 --> 00:00:07,200
Today we'll learn about
video localization

3
00:00:08,000 --> 00:00:11,300
Let's get started with the basics

Entry components

Each subtitle entry consists of four parts:

  1. Sequence number — Unique identifier (1, 2, 3, etc.)

  2. Timestamp — Start time --> End time

  3. Subtitle text — One or more lines of text

  4. Blank line — Separator between entries

Timestamp format

Format structure:

HH:MM:SS,mmm --> HH:MM:SS,mmm

Components:

  • HH — Hours (00-99)

  • MM — Minutes (00-59)

  • SS — Seconds (00-59)

  • mmm — Milliseconds (000-999)

  • --> — Arrow separator (spaces are required)

Examples:

00:00:01,500 --> 00:00:04,000    # 1.5 seconds to 4 seconds
00:01:23,750 --> 00:01:26,200    # 1 minute 23.75 seconds to 1 minute 26.2 seconds
01:15:30,000 --> 01:15:33,500    # 1 hour 15 minutes 30 seconds to 1 hour 15 minutes 33.5 seconds

Text formatting and styling

Multi-line subtitles

5
00:00:15,000 --> 00:00:18,500
This is the first line
This is the second line
And this is the third line

Basic HTML-style formatting

10
00:00:30,000 --> 00:00:33,000
<i>Italicized text for emphasis</i>

11
00:00:34,000 --> 00:00:37,000
<b>Bold text for importance</b>

12
00:00:38,000 --> 00:00:41,000
<u>Underlined text</u>

13
00:00:42,000 --> 00:00:45,000
Normal text with <i>some italics</i> mixed in

Color formatting

15
00:00:50,000 --> 00:00:53,000
<font color="#FF0000">Red text</font>

16
00:00:54,000 --> 00:00:57,000
<font color="yellow">Yellow text</font>

17
00:00:58,000 --> 00:01:01,000
Regular text with <font color="blue">blue highlight</font>

Speaker identification

20
00:01:10,000 --> 00:01:13,000
- Speaker 1: Hello there!
- Speaker 2: Hi, how are you?

21
00:01:14,000 --> 00:01:17,000
NARRATOR: Meanwhile, at the office...

22
00:01:18,000 --> 00:01:21,000
[JOHN]: I think we should proceed
[MARY]: I agree completely

Translation-specific considerations

Text length guidelines

General rules:

  • Maximum 2 lines per subtitle entry

  • Maximum 42 characters per line (for readability)

  • Reading speed — Allow 1 second per 10-15 characters

  • Minimum duration — At least 1 second display time

Examples:

✅ Good length:
25
00:02:00,000 --> 00:02:03,000
This text fits comfortably
on two readable lines

❌ Too long:
26
00:02:04,000 --> 00:02:06,000
This is an extremely long subtitle that contains too much text and will be difficult for viewers to read in the short time it's displayed on screen

Language-specific adaptations

Text expansion/contraction:

# English (original)
30
00:03:00,000 --> 00:03:02,500
Save

# German (longer)
30
00:03:00,000 --> 00:03:04,000
Speichern

# Chinese (shorter)
30
00:03:00,000 --> 00:03:02,000
保存

Right-to-left languages:

# Arabic/Hebrew subtitles
35
00:04:00,000 --> 00:04:03,000
مرحبا بكم في برنامجنا التعليمي

# May require special encoding and player support

Cultural localization

Currency and units:

# US version
40
00:05:00,000 --> 00:05:03,000
The price is $19.99

# UK version
40
00:05:00,000 --> 00:05:03,000
The price is £16.99

# EU version
40
00:05:00,000 --> 00:05:03,000
The price is €18.99

Names and references:

# Original
45
00:06:00,000 --> 00:06:03,000
Call me on my cell phone

# UK localization
45
00:06:00,000 --> 00:06:03,000
Call me on my mobile

# Generic international
45
00:06:00,000 --> 00:06:03,000
Call me on my phone

Integration with Localit.io

Uploading SRT files

File processing:

  • Automatic parsing — Extracts sequence numbers and timestamps

  • Text extraction — Isolates translatable content

  • Timing preservation — Maintains original synchronization

  • Format validation — Checks SRT syntax compliance

Import features:

  • Encoding detection — Supports UTF-8, Latin-1, and other encodings

  • Error handling — Identifies and reports malformed entries

  • Duplicate detection — Finds repeated sequences or overlapping times

  • Text normalization — Handles line breaks and formatting

Translation workflow

In Localit.io editor:

Entry #1 (00:00:01,500 --> 00:00:04,000)
Source: "Welcome to our tutorial series"
Target: [Translation field]

Entry #2 (00:00:04,500 --> 00:00:07,200)
Source: "Today we'll learn about video localization"
Target: [Translation field]

Key features:

  • Visual timeline — See subtitle timing context

  • Character counting — Real-time length validation

  • Preview mode — Check formatting and line breaks

  • Timing adjustment — Modify timestamps if needed for target language

Export capabilities

Standard export:

  • Complete SRT format — Maintains proper structure

  • Encoding options — UTF-8, UTF-8 BOM, custom encodings

  • Timing preservation — Keeps original synchronization

  • Format validation — Ensures player compatibility

Advanced export options:

  • Custom timing adjustments — Modify timestamps for text length

  • Line break optimization — Smart text wrapping

  • Format conversion — Export to other subtitle formats (VTT, ASS)

  • Quality checks — Validate reading speed and duration

Timing considerations for translation

Reading speed calculations

Formula:

Reading Time = (Character Count × Language Factor) / Reading Speed

Language factors:

  • English: 1.0 (baseline)

  • Spanish: 1.2 (20% longer)

  • German: 1.3 (30% longer)

  • Chinese: 0.8 (20% shorter)

  • Arabic: 1.1 (10% longer)

Example calculation:

# Original English: "Hello" (5 characters)
# Minimum time: 5 × 1.0 / 15 = 0.33 seconds
50
00:07:00,000 --> 00:07:01,500
Hello

# Spanish: "Hola" (4 characters)
# Minimum time: 4 × 1.2 / 15 = 0.32 seconds
50
00:07:00,000 --> 00:07:01,500
Hola

# German: "Guten Tag" (9 characters)
# Minimum time: 9 × 1.3 / 15 = 0.78 seconds
50
00:07:00,000 --> 00:07:02,000
Guten Tag

Timing adjustments

When to adjust timing:

  • Text expansion — Target language is significantly longer

  • Reading speed differences — Language-specific reading patterns

  • Cultural pacing — Different information processing speeds

  • Technical constraints — Platform-specific limitations

Adjustment strategies:

# Original timing
55
00:08:00,000 --> 00:08:02,000
Quick!

# Extended for longer translation
55
00:08:00,000 --> 00:08:03,000
¡Rápidamente, por favor!

# Split long content
56
00:08:00,000 --> 00:08:02,000
Schnell,

57
00:08:02,500 --> 00:08:04,500
bitte schön!

Best practices for subtitle translation

Content adaptation

Preserve meaning over literal translation:

✅ Good adaptation:
60
00:09:00,000 --> 00:09:03,000
Original: "It's raining cats and dogs"
Spanish: "Está lloviendo a cántaros"

❌ Literal translation:
60
00:09:00,000 --> 00:09:03,000
Spanish: "Está lloviendo gatos y perros"

Handle untranslatable elements:

# Wordplay or puns
65
00:10:00,000 --> 00:10:03,000
Original: "That's a-peel-ing!" (about bananas)
Translation: "¡Qué divertido!" + [Translator note if needed]

# Cultural references
66
00:10:01,000 --> 00:10:04,000
Original: "Like a deer in headlights"
Translation: [Equivalent local expression]

Technical guidelines

File naming conventions:

movie_title.srt           # Original
movie_title.es.srt        # Spanish
movie_title.fr-CA.srt     # French Canadian
movie_title.zh-CN.srt     # Simplified Chinese

Quality assurance checklist:

  • Sequence numbering — Consecutive and unique

  • Timing format — Proper HH:MM:SS,mmm format

  • Reading speed — Appropriate for target audience

  • Line length — Within character limits

  • Synchronization — Matches audio/video content

  • Encoding — UTF-8 for international characters

Common translation challenges

Humor and wordplay:

# Challenge: Maintaining comedic timing
70
00:11:00,000 --> 00:11:02,500
Original: "I'm reading a book about anti-gravity. 
It's impossible to put down!"

# Solution: Adapt the joke structure
70
00:11:00,000 --> 00:11:03,500
Spanish: "Estoy leyendo un libro sobre la gravedad.
¡No puedo soltarlo!"

Technical terminology:

# Maintain accuracy while being accessible
75
00:12:00,000 --> 00:12:03,000
Original: "Initialize the database connection"
Technical: "Inicializar la conexión de base de datos"
Simplified: "Conectar con la base de datos"

Names and proper nouns:

# Decide on transcription vs. translation
80
00:13:00,000 --> 00:13:02,500
Original: "Welcome to New York"
Options:
- "Bienvenidos a New York" (transcription)
- "Bienvenidos a Nueva York" (translation)

Troubleshooting common issues

Format errors

Invalid timestamp format:

❌ Wrong:
85
0:1:30,500 --> 0:1:33,000    # Missing leading zeros
Text here

✅ Correct:
85
00:01:30,500 --> 00:01:33,000
Text here

Missing separators:

❌ Wrong:
90
00:02:00,000->00:02:03,000    # Missing spaces around arrow
Text without proper spacing

✅ Correct:
90
00:02:00,000 --> 00:02:03,000
Text with proper spacing

Encoding issues

Character display problems:

# Ensure UTF-8 encoding for international characters
95
00:03:00,000 --> 00:03:03,000
Café, naïve, résumé    # Requires UTF-8

# Test special characters
96
00:03:04,000 --> 00:03:07,000
中文字符    # Chinese characters
العربية     # Arabic script
Русский     # Cyrillic script

Synchronization issues

Overlapping timestamps:

❌ Problem:
100
00:04:00,000 --> 00:04:05,000
First subtitle

101
00:04:03,000 --> 00:04:08,000    # Overlaps with previous
Second subtitle

✅ Solution:
100
00:04:00,000 --> 00:04:02,500
First subtitle

101
00:04:03,000 --> 00:04:08,000
Second subtitle