AfterDawn.com

Troubleshooting Text-based Subtitle Problems



Subtitles are one of the simplest possible components of a multimedia file. Compared to the much more complex video and audio formats, simple text and basic graphics seem downright primitive. And yet sometimes the biggest challenge when playing video is getting the subtitles to display.

The problem isn't one of complexity in the actual formats used, but rather one of competing standards. In fact, most of the subtitle formats in common use today aren't really standards in the traditional sense of the word. They were not developed by, nor are the sanctioned by, companies or industry groups. Instead they have been cobbled together over time by video enthusiasts as a way to bridge the gap between commercial offerings and personal need.

Our goal in this guide will be to help you understand subtitle formats you are likely to run across, including how to recognize them, how to play them, and how to convert them to another format when necessary. We will be focusing on text-style subtitles, rather than the image-based formats used in formats like DVD and Blu-ray.

SubRip


By far the leading hobbyist format for text-based subtitles is SubRip, also referred to by its file extension, SRT. Most modern video software capable of handling subtitles will support SRT at a minimum. If you find the video player of your choice doesn't support the subtitles you need to display, converting them to SRT format is almost always an option.

There are various programs capable of performing this conversion. One such program is Subtitle Edit. Before we look at the specifics for various subtitle formats, let's take a quick look at how to convert to SRT format.

Software Used

Subtitle Edit




Converting Subtitles To SRT


The conversion process is just about as simple as it can get. Just follow the numbers.

  1. Open your subtitle file
  2. Select SRT from the top of the Format list.
  3. Save your SRT file


Convert Subtitle to SRT format with Subtitle Edit


Identifying What Subtitle Format You Have


For various reasons, you may need to identify what type of subtitles you have. In some cases that can be done easily by simply looking at the file extension. However, there are many file extensions, such as .SUB or .XML, which are used by multiple formats. In those cases you will need to go further and open the subtitle file to take a closer look. The simplest way to do this is to once again use a program like Subtitle Edit. When you open the file it will automatically show you the type in the same dropdown you use to convert to SRT. The other option is opening the file in a simple text editor like Notepad.

Common Text-Based Subtitle Formats


Format File Extension
SubRip .SRT
Sub Station Alpha .SSA
Advanced Sub Station Alpha .ASS
MicroDVD .SUB
SubViewer 2.0 .SUB
TTXT (Timed Text) .XML
SAMI (Synchronized Accessible Media Interchange) .SMI

This table is a non-exhaustive list of text-based subtitle formats. Rather than trying to list every format, most of which are actually used for authoring rather than playback anyway, I've stuck to a handful of formats commonly supported by media players. The file extension used for each is also listed.

Click on the name of a subtitle format for more information on the formatting inside each format of subtitle file. This may be useful if you aren't sure what format your subtitles are in, particularly if the file has a very generic extension like .SUB.


SubRip (.SRT)


Each subtitle in a SubRip file begins with the subtitle number, starting with 1 for the first subtitle. The next line lists the range of time during which the subtitle will display. The last line (or multiple lines) is the text to be displayed. SRT is an extremely simple subtitle format, giving the player a lot of latitude in how subtitles are displayed.

1351

01:00:13,940 --> 01:00:15,010
To make soap,
first we render fat.


Sub Station Alpha (.SSA) & Advanced Sub Station Alpha (.ASS)


SSA and ASS subtitle files are as complex as SRT files are simple. They are actually scripts, which include detailed instructions for how subtitles should be displayed. Text similar to this will be found at the beginning of each SSA or ASS subtitle file.

The full range of options used in SSA/ASS scripts is beyond this guide, but it's worth noting the Timer field. This field, which should be read as a decimal (100.0000 in the example below) is a sort of clock speed for the subtitles. You can read it as a percentage by which the subtitle timestamps will be multiplied. If you change the framerate of the video, you can alter the playing speed of the subtitles by altering this number.

[Script Info]

; This is a Sub Station Alpha v4 script.
; These lines are comments
Title: Fight Club
Original Script: Rich Fiscus
ScriptType: v4.00
Collisions: Normal
PlayDepth: 0
PlayResY: 352
PlayDepth: 0
Timer: 100,0000

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle,
Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Tahoma,18,16777215,65535,65535,-2147483640,-1,0,1,3,0,2,30,30,30,0,0

[Events]
Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text


Each subtitle in a Sub Station Alpha file is an event which includes detailed instructions for what to display, as well as where and when it should be displayed, and how it should look. Multiple lines in a single subtitle require the use of a newline (\N) character.

Dialogue: 0,1:00:13.94,1:00:15.01,Default,NTP,0000,0000,0000,,To make soap,\Nfirst we render fat.


MicroDVD (.SUB)


MicroDVD is as simple as SRT. Instead of start and end timecodes, the temporal position of subtitles is given with a begin and end frame in curly braces { }. Line breaks are represented by |

{86647}{86673}To make soap,|first we render fat.


SubViewer 2.0


SubViewer subtitle files include a header, mostly made up of optional, purely informational tags. There is a tag for setting the delay, in frames, between the beginning of the video and when the clock starts for subtitle timestamps. The last line of the header specifies the subtitle font information, including the size, style (bold, italic, etc,...), and color in hexadecimal.

[INFORMATION]

[TITLE]Fight Club
[AUTHOR]
[SOURCE]
[PRG]Subtitle Edit
[FILEPATH]
[DELAY]0
[CD TRACK]0
[COMMENT]
[END INFORMATION]
[SUBTITLE]
[COLF]&H000000,[STYLE]bd,[SIZE]25,[FONT]Arial


Much like SRT subtitles, SubViewer 2.0 format uses begin and end times. A handful of special markup tags can be used for bold, italics, and line breaks.

01:00:13.94,01:00:15.01

To make soap,[br]first we render fat.


Timed Text


Timed Text subtitles are the rare exception of a format developed by commercial interests rather than hobbyists. It uses a markup language based on XHTML and CSS called Timed Text Markup Language (TTML), which is standardized by W3C. Although largely web oriented, it is also supported by modern multimedia containers like MP4 and TS.

As you might expect from a standard based heavily on existing HTML technology, TTXT files begin with a head section containing style information for formatting the text.

<?xml version="1.0" encoding="utf-8"?>

<tt xmlns="http://www.w3.org/ns/ttml" xmlns:ttp="http://www.w3.org/ns/ttml#parameter" ttp:timeBase="media"
xmlns:tts="http://www.w3.org/ns/ttml#style" xml:lang="en" xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
<head>
<metadata>
<ttm:title>Fight Club</ttm:title>
</metadata>
<styling>
<style id="s0" tts:backgroundColor="black" tts:fontStyle="normal" tts:fontSize="16" tts:fontFamily="sansSerif"
tts:color="white" />
</styling>
</head>
<body style="s0">
<div>


Subtitles themselves use HTML like tags including <p> to enclose text and <br />> for line breaks.
      <p begin="01:00:13.940" id="p1350" end="01:00:15.10">To make soap,<br />first we render fat.</p>


SAMI (Synchronized Accessible Media Interchange)


SAMI is a Microsoft implementation of the W3C standard Synchronized Multimedia Integration Language (SMIL). Like TTML, SMIL borrows heavily from HTML and CSS for markup and formatting, including the use of a Head section which includes style elements for the subtitle text.

<SAMI>


<HEAD>
<TITLE>Fight Club</TITLE>

<SAMIParam>
Metrics {time:ms;}
Spec {MSFT:1.0;}
</SAMIParam>

<STYLE TYPE="text/css">
<!--
P { font-family: Arial; font-weight: normal; color: white; background-color: black; text-align: center; }
.ENUSCC { name: English; lang: en-US ; SAMIType: CC ; }
-->
</STYLE>

</HEAD>

<BODY>

<-- Open play menu, choose Captions and Subtiles, On if available -->
<-- Open tools menu, Security, Show local captions when present -->


Rather than using standard hours, minutes, seconds, and milliseconds for display timecodes, the times listed for SAMI subtitles are exclusively in milliseconds.

<SYNC Start=3613940><P Class=ENUSCC>To make soap,<br />first we render fat.</P></SYNC>
Written by: Rich Fiscus
Last updated: