Quick Answer: SRT (SubRip) uses comma-separated timestamps (00:01:23,456) and is universally supported by all media players, making it ideal for offline viewing, Smart TVs, and hardware devices. WebVTT uses dot-separated timestamps (00:01:23.456), requires a WEBVTT header, and supports CSS styling and positioning, making it the standard for HTML5 web video and streaming platforms. Choose SRT for maximum compatibility, or VTT for web embedding and advanced styling.
Introduction
When working with video subtitles, you will almost certainly encounter two major formats: SRT (SubRip Text) and VTT (WebVTT - Web Video Text Tracks). While both are plain-text formats designed to synchronize text with video playback, they were built for different eras of technology.
In this breakdown, we examine the differences between SRT and VTT, their syntax variations, and when you should choose one over the other. For a comprehensive guide on subtitling best practices, see our article on 5 common mistakes when subtitling in Sinhala.
Quick Comparison Table
| Feature | SRT (.srt) | WebVTT (.vtt) |
|---|---|---|
| Origin | Windows SubRip DVD ripping tool (2000) | W3C Web Standards for HTML5 (2010) |
| Header | None (starts with index 1) | Required (WEBVTT on line 1) |
| Timecode Separator | Comma (,) e.g. 00:01:23,456 | Period (.) e.g. 00:01:23.456 |
| Hour Component | Mandatory (HH:MM:SS,mmm) | Optional for short times (MM:SS.mmm) |
| Styling & Positioning | Limited / Player dependent | Native CSS styling, alignment, and positioning |
HTML5 <video> Support | No native support | Native standard support |
| Desktop Media Players | Universally supported | Widely supported |
1. Format Breakdown: SRT (SubRip Text)
SRT is the oldest and most universally supported subtitle format in existence. Almost every hardware TV, streaming box, and software video player supports .srt.
SRT Structure Example:
1
00:00:01,200 --> 00:00:04,500
හෙලෝ, ඔයා කොහෙද යන්නේ?
2
00:00:05,100 --> 00:00:08,300
මම මේ ටවුන් එක පැත්තට යනවා.Key Characteristics:
- Sequential Indexing: Every cue must have an integer index (
1,2,3). - Strict Timestamp Syntax: Hours must have 2 digits, and milliseconds must be separated by a comma (
,). - Simplicity: No complex metadata or CSS styles—just timing and text.
Worked Example: Converting SRT for Different Frame Rates
Scenario: You have an SRT file timed for 25 fps PAL video, but you're watching a 23.976 fps version.
Problem: Subtitles drift progressively earlier, ending up almost four minutes ahead by the 90-minute mark.
Solution using Subtitle Edit:
- Open the SRT file in Subtitle Edit
- Go to Synchronization > Change Frame Rate
- Set "From frame rate" to 25.000
- Set "To frame rate" to 23.976
- Click OK to recalculate all timestamps proportionally
- Save the corrected file
This preserves the timing relationships while adjusting for the frame rate difference. For more on fixing sync issues, see our guide on how to sync out-of-sync Sinhala subtitles.
2. Format Breakdown: WebVTT (Web Video Text Tracks)
WebVTT was developed by the W3C to bring rich subtitle and caption capabilities directly to modern web browsers and the HTML5 <track> element.
WebVTT Structure Example:
WEBVTT - Sinhala Spoken Subtitles
1
00:00:01.200 --> 00:00:04.500 align:center size:80%
හෙලෝ, ඔයා කොහෙද යන්නේ?
cue-2
00:05.100 --> 00:08.300
<v Speaker1>මම මේ ටවුන් එක පැත්තට යනවා.</v>Key Characteristics:
- Header Line: Must start with
WEBVTTon the first line. - Dot Milliseconds: Milliseconds are separated by a dot (
.), not a comma. - Positioning & Alignment: Allows specifying screen coordinates, text alignment (
align:start,align:center), and bounding box size (size:80%). - Speaker Tags & Styling: Supports
<v SpeakerName>,<b>,<i>, and custom CSS classes.
Advanced WebVTT Features
Cue Settings
WebVTT allows inline cue settings for precise positioning:
00:00:10.000 --> 00:00:15.000 line:90% position:50% size:60%
This subtitle appears centered in the bottom half of the screen.Metadata Blocks
WebVTT supports metadata headers:
WEBVTT
NOTE This file contains Sinhala spoken translations.
STYLE
::cue {
font-family: "Noto Sans Sinhala";
background-color: rgba(0,0,0,0.8);
}3. Technical Differences in Detail
Timestamp Format Comparison
| Aspect | SRT | WebVTT |
|---|---|---|
| Separator | Comma (,) | Period (.) |
| Hours | Required: HH:MM:SS,mmm | Optional: MM:SS.mmm or HH:MM:SS.mmm |
| Header | None | WEBVTT required |
| Index | Required integer | Optional (can use custom IDs) |
Encoding and Unicode Support
Both formats support UTF-8 encoding and handle Sinhala Unicode characters (ක, ස, ල, etc.) identically. The encoding is not tied to the format but to how the file is saved.
Styling Capabilities
SRT Styling: Very limited. Some players support basic HTML tags like <i>, <b>, <u>, but positioning and font selection are player-dependent.
WebVTT Styling: Rich CSS support through:
- Inline styles in cue settings
- Global
STYLEblocks - CSS classes and IDs
- Ruby text for pronunciation guides
- Voice spans (
<v>) for speaker identification
4. When to Use Which?
Choose SRT if:
- You are downloading subtitles for offline viewing in VLC, MPC-HC, PotPlayer, or TV USB ports.
- You are uploading to older media centers or legacy transcoding pipelines.
- You need maximum universal playback across hardware devices.
- You're sharing subtitles with friends who use various players.
Choose VTT if:
- You are building a web application or embedding video with HTML5
<video>tags. - You are uploading captions to platforms like YouTube, Vimeo, or Coursera.
- You require custom subtitle positioning (e.g. top of the screen to avoid covering lower-third graphics).
- You need speaker identification or advanced accessibility features.
Worked Example: Converting for Web Deployment
Scenario: You have an SRT file for a movie website you're building.
Problem: HTML5 <video> element doesn't recognize SRT format directly.
Solution:
- Use SriSubs or a conversion tool to convert SRT to WebVTT
- Add
WEBVTTheader at the top - Replace comma timestamps with dot timestamps
- Add appropriate cue settings for positioning
- Embed in HTML:
html
<video controls> <source src="movie.mp4" type="video/mp4" /> <track src="movie.vtt" kind="subtitles" srclang="si" label="Sinhala" /> </video>
5. Compatibility by Platform
Desktop Players
| Player | SRT Support | WebVTT Support | Notes |
|---|---|---|---|
| VLC | Excellent | Excellent | Both work perfectly |
| MPC-HC | Excellent | Good | SRT preferred |
| PotPlayer | Excellent | Good | SRT preferred |
| mpv | Excellent | Excellent | Both work perfectly |
Mobile Players
| Player | SRT Support | WebVTT Support | Notes |
|---|---|---|---|
| MX Player (Android) | Excellent | Good | SRT preferred |
| VLC Mobile | Excellent | Excellent | Both work |
| Infuse (iOS) | Excellent | Excellent | Both work |
Smart TVs & Streaming
| Platform | SRT Support | WebVTT Support | Notes |
|---|---|---|---|
| Samsung TV | Excellent | Poor/None | Use SRT |
| LG TV | Excellent | Limited | Use SRT |
| Roku | Good | Good | Both work |
| Fire TV | Good | Good | Both work |
For detailed Smart TV setup instructions, see our guide on adding Sinhala subtitles to any video player.
6. Common Conversion Issues
Issue: Timestamps Offset After Conversion
Cause: Inconsistent millisecond rounding between comma and dot formats Solution: Use tools that preserve exact millisecond values rather than rounding
Issue: Character Encoding Problems
Cause: File saved as ANSI instead of UTF-8 Solution: Always save as UTF-8. A BOM is optional: it helps some legacy players detect UTF-8 (and the WebVTT spec allows it), but a few strict SRT parsers reject it. For detailed encoding troubleshooting, see our guide on fixing broken Sinhala characters.
Issue: Missing WEBVTT Header
Cause: Converting SRT to VTT without adding required header
Solution: Add WEBVTT as the very first line of the file
Frequently Asked Questions
Can I use SRT files on YouTube?
Yes, YouTube accepts SRT files. However, YouTube converts them internally to its own format. For better control over styling, WebVTT with CSS is sometimes preferred for YouTube uploads.
Why do some Smart TVs refuse VTT files?
Many Smart TVs (especially older Samsung models) have limited WebVTT parsers. They often lack support for VTT positioning features and may fail to parse the file entirely. SRT is safer for TV playback.
Does WebVTT support Sinhala Unicode better than SRT?
No. Both formats handle Unicode identically. The rendering quality depends on the player's font support, not the subtitle format.
Can I have both SRT and VTT for the same video?
Yes, absolutely. Many websites provide both formats for compatibility. You can offer SRT for download and VTT for embedded web players.
Which format does SriSubs use?
SriSubs supports both SRT and VTT input and output. You can switch between formats with the output-format toggle in the translator, which automatically handles timestamp separator changes and adds the WEBVTT header when needed.
Conclusion
Both SRT and VTT are great formats. At SriSubs, our built-in parser and writer allow you to seamlessly switch between formats with a single click, automatically adjusting comma and dot timestamp formatting.
For most offline viewing scenarios, SRT remains the safest choice due to universal compatibility. For web applications and modern streaming platforms, WebVTT offers superior styling and positioning capabilities.
To ensure your subtitles display correctly across all devices, review our guide on how to add Sinhala subtitles to any video player.

