Turn a TTML subtitle file into an STL subtitle file in seconds—right in your browser with XConvert.
.ttml, .dfxp, or .xml file, or click "Add Files" to select. The page also accepts pasted XML directly. The whole conversion runs in your browser — your subtitles never leave your machine.$-prefixed configuration commands and HH:MM:SS:FF timecodes, the same dialect used by Apple DVD Studio Pro and Adobe Encore for DVD/NLE authoring..stl file ready to ingest into Cavena, EZTitles, Screen Subtitling, Avid, or your station's playout server. No upload, no watermark, no sign-up.TTML (Timed Text Markup Language) is the modern XML standard W3C finalized as TTML1 in November 2010 and TTML2 in November 2018; streaming services, Apple HLS, DVB, ATSC, and HbbTV all consume it. Spruce STL is the plain-text subtitle script format used by Apple DVD Studio Pro and Adobe Encore for DVD and Blu-ray authoring — and still accepted by NLE captioning suites like EZTitles and FAB Subtitler. If your subtitle was authored in a modern streaming-first XML workflow and now needs to slot into a DVD authoring project, an NLE round-trip, or a legacy post-production archive, STL is the input the authoring app expects.
.stl) as a subtitle stream. Convert your TTML master to STL to bring it into a physical-media authoring pipeline..stl script through the late 2000s; converting your TTML captions to that format lets you slot them next to existing assets in the same library.$-command + cue format is faster to hand-edit or spot-check in any text editor.HH:MM:SS:FF programme timecode, not a millisecond clock. Converting to STL realigns your cues to the frame grid that disc authoring tools schedule against.| Property | TTML (.ttml / .dfxp / .xml) | Spruce STL (.stl) |
|---|---|---|
| Structure | XML, human-readable, CSS-style styling | Plain text: $-prefixed header commands + HH:MM:SS:FF cue lines |
| Standard body | W3C (TTML1 2010, TTML2 2018) | Spruce Technologies (no formal published standard; de facto reference is DVD Studio Pro documentation) |
| Profiles | EBU-TT, IMSC1/IMSC2, SMPTE-TT, DFXP, CFF-TT | N/A — single plain-text format; $DisplayStandard sets frame rate |
| Frame rate handling | Any rate via frameRate / tickRate attributes |
$DisplayStandard directive: NTSC (29.97), NDF, or PAL (25 fps) |
| Character set | UTF-8 (full Unicode) | ANSI code pages or UTF-8/UTF-16 per exporter; global setting at file head |
| Styling | Full CSS subset: color, font, italic, bold, position, region | Global font/colour at file head; inline italic via ^I…^I tags |
| Typical caps | None imposed by spec (limits set by profile/player) | DVD Studio Pro render settings define visible rows and characters |
| Primary use | Streaming, OTT, archive masters, web players | DVD/Blu-ray authoring, NLE subtitle tracks, legacy post-production archives |
| Editing | Any text editor; XML schema validation | DVD Studio Pro, Adobe Encore, EZTitles, FAB Subtitler |
These are the $-prefixed directives at the top of every Spruce STL script. xconvert writes sensible defaults; open the output and tune any of them if your authoring tool expects different values.
| Command | What it controls | Typical value |
|---|---|---|
$DisplayStandard |
Frame rate / TV standard for the timecode grid | NTSC (29.97 non-drop), NDF (drop frame), or PAL (25 fps) |
$TapeOffset |
Whether timecodes are tape-offset (True) or zero-based (False) |
False for media-relative subtitles |
$FontName |
Global font family for all cues | Arial, Helvetica, or a font installed in the authoring app |
$FontSize |
Point size for the cue text | 26–32 is typical for 720×480 NTSC |
$HorzAlign / $VertAlign |
Default horizontal / vertical alignment | Center / Bottom |
$ColorIndex1…$ColorIndex4 |
The four-colour palette used for the subtitle bitmap on DVD | Tool-defined; DVD Studio Pro renders the script against these |
^I … ^I |
Inline italic open/close inside a cue line | Inserted automatically when xconvert detects tts:fontStyle="italic" in TTML |
Spruce STL is not a broadcast standard — it's the subtitle script format for DVD/Blu-ray authoring tools (DVD Studio Pro, Adobe Encore) and NLE captioning suites (EZTitles, FAB Subtitler, Spot). Convert TTML to STL when your downstream is one of those tools or when you're slotting new captions alongside an existing archive stored in the Spruce format. For true broadcast delivery (EBU-style binary STL for linear TV playout), you need a different tool that outputs EBU Tech 3264 binary.
The default is NTSC at 29.97 fps non-drop, which matches the most common North American DVD authoring profile. Open the output and change $DisplayStandard to PAL (25 fps) or FILM (24 fps) if your project is PAL or cinema. Quantisation error in the conversion is at most one half-frame (~17 ms at 29.97 fps), which is below the perceptual threshold for caption timing.
Italics survive — xconvert wraps italic spans in ^I…^I tags so DVD Studio Pro renders them in italic. Bold, underline, and colour spans do not survive, because Spruce STL applies a single global font and style at the file head; you cannot vary it cue-by-cue in the script. Region blocks, tts:origin, tts:extent, and tts:textAlign cue settings are dropped — DVD subtitles place text via the authoring tool's render settings, not per-cue positioning.
xconvert writes UTF-8 by default. Older builds of DVD Studio Pro and some legacy authoring tools default to interpreting the file as Windows-1252. If you see mojibake, re-save the file as the code page that matches your language (Windows-1253 for Greek, Windows-1251 for Cyrillic, Windows-1256 for Arabic) or, if your tool supports it, save as UTF-16 BOM. EZTitles' export panel documents this exact workflow.
Spruce STL (what xconvert outputs here) is a plain-text DVD/NLE authoring format. EBU STL (EBU Tech 3264 / .stl) is an entirely different binary format used by European broadcasters for linear-TV subtitle delivery — it shares the .stl extension by historical accident. DFXP is the original Netflix-era TTML profile — XML, Unicode, rich styling. SBV is YouTube's plain-text format. Pick Spruce STL for DVD/NLE workflows; pick DFXP for OTT/streaming masters; pick SBV for direct YouTube upload. We also offer TTML to SRT and TTML to VTT for the most common SRT/WebVTT pipelines.
Yes — drag-and-drop multiple .ttml files at once and each one outputs an independent .stl. Because conversion runs entirely in your browser there's no per-file size cap imposed by an upload service; the practical limit is your machine's available memory. We've seen feature-length TTML files (over 2,000 cues) convert in under a few seconds on a recent laptop. Nothing is uploaded to our servers.
Yes. Use STL to TTML to lift a legacy .stl from your broadcaster archive back to XML/TTML for streaming or web delivery. The reverse is common when a programme that was originally subtitled for linear TV gets a streaming re-release; the TTML output preserves timing and falls back to UTF-8, so Cyrillic/Greek/Arabic that was lost to a single-CCT STL can be re-added by hand.
Yes. Open the Network tab in your browser DevTools and you'll see zero subtitle bytes leaving your machine — the TTML→STL parser runs as compiled JavaScript locally. This matters when the script is under NDA (pre-release titles, embargoed news), when you're handling personally identifiable spoken content, or when broadcast-rights agreements forbid third-party cloud processing.