EBU Subtitling Data Exchange Format

OpenSaveBinaryBroadcast

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 typeNone registered
SpecificationEBU Tech 3264 (1991). Its XML successor is EBU-TT (Tech 3350).
Time precisionA frame, at 25 or 30 (29.97) a second
Text encodingISO 6937 for Latin languages, its accents before their letters; ISO 8859 for Cyrillic, Arabic, Greek and Hebrew
StylingTeletext's colours and double height; italics and underline for open subtitles
PositioningA row (of 23 in teletext), and left, centre or right
SpeakersNone
In containersNone. 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. 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. 2 · Timing

    Text and Timing Information, one block a subtitle: its timecodes in and out.

  3. 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

Kept in the .stl
  • 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
Nowhere to go
  • 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

Subtitld's export dialog with STL chosen, teletext at 25 frames, the programme starting at 10:00:00:00

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

1991

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.

112

Bytes of text in each block. A longer subtitle continues in extension blocks, numbered, the last marked 255.

EBU-TT

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

Have a .stl to fix?

Open it in Subtitld with the video and retime it on the waveform.

Download Subtitld