EBU Subtitling Data Exchange Format
How Europe's broadcasters have exchanged subtitles since 1991: a binary file of fixed-size blocks, made for floppy disks. A header about the programme, then a block for each subtitle, its text in teletext's character set.
At a glance
| Extension | .stl |
|---|---|
| Media type | None registered |
| Specification | EBU Tech 3264 (1991). Its XML successor is EBU-TT (Tech 3350). |
| Time precision | A frame, at 25 or 30 (29.97) a second |
| Text encoding | ISO 6937 for Latin languages, its accents before their letters; ISO 8859 for Cyrillic, Arabic, Greek and Hebrew |
| Styling | Teletext's colours and double height; italics and underline for open subtitles |
| Positioning | A row (of 23 in teletext), and left, centre or right |
| Speakers | None |
| In containers | None. A file delivered with the programme. |
Anatomy of a file
Not text but bytes: a 1,024-byte header, then a 128-byte block for each subtitle.
GSI · 1,024 bytes STL25.01 · teletext Latin · English Tears of Steel … TTI · 128 bytes 10:00:01:00 10:00:02:12 row 20 · centred You're a jerk,␊␊Celia. TTI · 128 bytes …
- 1 · GSI
General Subtitle Information: the frame rate, teletext or open subtitles, the character table, the language, the titles, the programme's start, and how many blocks follow.
- 2 · Timing
Text and Timing Information, one block a subtitle: its timecodes in and out.
- 3 · Text
The row it starts on, its justification, and 112 bytes of text with the control codes that style it.
The header
| Field | What it holds |
|---|---|
| DFC | The frame rate: STL25.01, or STL30.01 for 29.97 video |
| DSC | 1 or 2 for teletext, 0 for open subtitles, burned in or rendered by a player |
| CCT | The character table: 00 Latin, 01 Cyrillic, 02 Arabic, 03 Greek, 04 Hebrew |
| LC | The language, by EBU's own codes: 09 English, 0F French, 21 Portuguese |
| TCP | The timecode the programme starts at |
| OPT | The programme's title |
The timecode
Programmes often start at ten. Broadcasters number a programme's frames from 10:00:00:00, and the header says so. Subtitld counts a file's subtitles from that start, so they meet a video that starts at 0:00.
The text field
Characters and control codes share the 112 bytes.
| Bytes | What they do |
|---|---|
0x00–0x07 |
Teletext colours: black, red, green, yellow, blue, magenta, cyan, white |
0x0D |
Double height |
0x0B |
Start the box: teletext subtitles show only what is boxed |
0x8A |
CR/LF, a new line |
0x80, 0x81 |
Italics on and off, for open subtitles |
0x82, 0x83 |
Underline on and off, for open subtitles |
0xC1–0xCF |
An accent, before the letter it goes on |
0x8F |
Unused space, after the text |
Every code takes a cell. In teletext a control code is drawn as a space, so a colour change between two words is the space between them. Subtitld writes codes in place of spaces.
Teletext or open subtitles?
| Teletext | Open subtitles | |
|---|---|---|
Header DSC |
1 or 2 |
0 |
| Shown by | The viewer's TV, as teletext | Burned into the picture, or drawn by a player |
| Rows | 23, each 40 cells | As many as the header says |
| Italics, underline | — | Yes |
| Double height | Yes | — |
| Boxes | 0x0B, around what shows |
0x84 and 0x85, a box behind the text |
STL in Subtitld
- Every subtitle's text and line breaks
- Colours; italics and underline in open subtitles
- Where it sits: top, middle or bottom; left, centre or right
- The language
- Start and end, to the frame
- Italics in teletext
- A language's region (EBU's codes name languages only)
- Speakers, translations beside the original
- Dubs, speakers' faces and colours
Save a .usfx project to keep them.
Opening an STL file
Subtitld reads:
- the frame rate the header names, STL25.01 or STL30.01, and the 23.976, 24 and 50 of later files;
- times from the programme's start, when the header says it is in use;
- Latin text in ISO 6937, or the Cyrillic, Arabic, Greek or Hebrew table the header names;
- a long subtitle's extension blocks as one, and comments and user data as nothing;
- colours, italics and underline, and the row and justification as the subtitle's place;
- the header's language as the project's.
The file's frame rate, display and programme start are kept, to save it again as it was. A file that is not EBU STL, such as a 3D model's .stl, says so.
Exporting STL
Export, then Subtitles and STL, offers:
- TextThe original, a translation, or both, the translation below.
- Speaker namesLeft out, or before the text (Thom: …).
- FormattingKept, or removed.
- Shift timesEvery subtitle earlier or later by the same amount.
- Frame rate25, or 30 for 29.97 video: the video's, unless you choose.
- DisplayTeletext, each line double height and boxed, or open subtitles, with italics and underline.
- Programme starts at00:00:00:00, or 10:00:00:00, as broadcasters often ask.
The character table is the one the text needs: Latin unless it is Cyrillic, Greek, Arabic or Hebrew. The title is the video's name. A teletext row holds about 36 characters of text after its codes; Subtitld does not wrap longer lines for you.
Trivia
The EBU published Tech 3264 for exchanging subtitles on floppy disks. The header still has fields for how many disks a file spans and which one this is.
Bytes of text in each block. A longer subtitle continues in extension blocks, numbered, the last marked 255.
STL's XML successor, Tech 3350, came in 2012, with Tech 3360 mapping STL onto it. Its distribution profile, EBU-TT-D, is a kind of TTML.
Related formats
Open it in Subtitld with the video and retime it on the waveform.