XConvert
Downloads
Pricing

Convert TTML to SUB Online

Turn TTML subtitle files into SUB format in a few clicks—upload your TTML, convert, then download the SUB file.

Input (TTML)
Output (SUB)

How to Convert TTML to SUB Online

  1. Upload Your TTML File: Drag and drop the .ttml, .xml, or .dfxp file or click "Add Files" to pick it from disk. You can also paste the XML directly into the editor. Batch is supported — queue multiple TTML tracks (IMSC, EBU-TT-D, iTT, SMPTE-TT) and convert them in one pass. Files never leave your browser session.
  2. Confirm SUB as the Target Format: SUB is already selected as the output. XConvert writes the SubViewer 2.0 variant of .sub — time-based cues with HH:MM:SS.cc start/end stamps and an [INFORMATION] header — not the legacy MicroDVD frame-numbered variant that drifts when the video frame rate changes.
  3. Review What Survives the Conversion (Optional): TTML's XML structure carries a lot more than SUB can hold. The parser preserves cue text, start/end times, line breaks, and basic <span tts:fontStyle="italic"> / tts:fontWeight="bold" runs (mapped to <i> / <b>). It drops <region>, tts:textAlign, tts:color, tts:backgroundColor, multi-track metadata, and any nested <set> animations — SubViewer has no slot for those.
  4. Convert and Download: Click Convert. Everything runs in your browser session — no upload to a server, no sign-up, no watermark. Output is a clean SubViewer-format .sub ready for VLC, MPC-HC, KMPlayer, or DVD-authoring tools.

Why Convert TTML to SUB?

TTML is the W3C-standardised XML format that broadcast and streaming workflows rely on — Netflix, Apple iTT, Amazon, EBU broadcasters, and ATSC/DVB systems all consume some flavour of it. SubViewer SUB is a much older desktop-player sidecar format that predates TTML by roughly a decade and has almost no overlap with the modern streaming stack. If you've pulled a TTML track out of a broadcast deliverable, a YouTube/Netflix download, or a captioning tool and now need it to load in a desktop player or burn to disc, conversion is the only path. Common reasons people make this switch:

  • VLC, MPC-HC, KMPlayer playback — Lightweight and legacy media players auto-load .sub from the video folder. VLC supports both SubViewer and MicroDVD; MPC-HC and KMPlayer ship with strong SubViewer compatibility, which is why XConvert writes the SubViewer flavour by default.
  • DVD and Blu-ray authoring — DVDStyler, ConvertXtoDVD, and similar burning tools accept SubViewer .sub as a soft-subtitle source. They typically can't parse a TTML XML tree directly, so a flat time-stamped .sub is the practical hand-off format.
  • Stripping streaming-only metadata — TTML files exported from Netflix-style pipelines often carry <region> blocks, IMSC-specific styling, ruby text, and timing metadata that mean nothing to a desktop player. Converting to SUB produces a clean caption-text track that plays consistently everywhere.
  • Hand-off to subtitle editors — Aegisub, Subtitle Edit, and Subtitle Workshop all open .sub natively. Editors and proofreaders who don't want to wade through XML tags often prefer the much simpler SubViewer structure.
  • Legacy set-top boxes and smart TVs — Pre-2018 smart TVs and many DLNA media servers still expect .srt or .sub next to the video file on a USB drive. TTML support on consumer hardware that old is essentially nonexistent.
  • Archival in a stable, frozen format — TTML has shipped TTML1 (2010), TTML2 (2018), and continues to evolve via profiles like IMSC 1.1 and EBU-TT-D. SubViewer 2.0 has been frozen for two decades, which makes it a predictable archive format for plain caption text paired with video.

If you'd rather keep TTML's styling and positioning intact, ASS/SSA is the closer match — it supports inline colour, font, and on-screen positioning. SUB is the right pick when "plays in any old desktop player" matters more than "preserves the original styling."

TTML vs SUB — Format Comparison

Property TTML (Timed Text Markup Language) SUB (SubViewer 2.0)
Standard / origin W3C Recommendation; TTML1 finalised Nov 2010, TTML2 finalised Nov 2018 SubViewer player format, released circa 1999-2000
Structure XML document with <tt>, <head>, <body>, <div>, <p>, <span> Plain-text cue blocks under an [INFORMATION] header
Timing model Time-based, supports clock-time, offset-time, SMPTE timecode Time-based, HH:MM:SS.cc (centiseconds) only
FPS dependent? No (clock-time profile); SMPTE-timecode profile encodes the rate No (this is SubViewer; MicroDVD .sub IS frame-based)
Styling CSS-like (tts:color, tts:fontFamily, tts:fontSize, tts:textAlign) Basic <b>, <i>, <u> only
Positioning / regions Yes (<region>, tts:origin, tts:extent) None
Multiple language tracks Yes (xml:lang per <div> or document) No — one file per language
Typical adopters Netflix (IMSC 1.1), Apple iTT, BBC iPlayer (EBU-TT-D), broadcast (SMPTE-TT) VLC, MPC-HC, KMPlayer, DivX/legacy desktop players, DVD authoring
File size for the same track Larger (XML overhead, styling, regions) Much smaller (plain text only)

Two Flavours of .sub — Know Which One You Need

The .sub extension is shared by two unrelated formats. XConvert writes the SubViewer flavour by default because it's FPS-independent and the modern default for .sub. Here's how to tell them apart:

Flavour Timing First-line marker Behaviour at 23.976 vs 25 fps
SubViewer 2.0 00:01:23.45,00:01:25.12 (centiseconds) [INFORMATION] header Identical — FPS-independent
MicroDVD {1000}{1200}Text (frame numbers) {1}{1}23.976 or similar fps marker Drifts — must be re-converted for new fps

If your downstream player specifically requires MicroDVD-style frame stamps (rare in 2026 — mostly very old DivX-era boxes), convert to SRT first and run a separate frame-stamping pass. For VLC, MPC-HC, DVD authoring, and smart-TV USB playback, SubViewer is the right .sub.

Frequently Asked Questions

Will my TTML styling — colours, fonts, positioning — survive the conversion?

No. SubViewer doesn't carry colour, font, on-screen positioning, or region blocks — those are TTML-only constructs. The parser preserves cue text, timing, line breaks, and inline italic / bold runs (mapping <span tts:fontStyle="italic"> to <i> and tts:fontWeight="bold" to <b>). Everything else — tts:color, tts:backgroundColor, tts:textAlign, <region> placement, <set> animations, ruby text — is dropped because SubViewer has no equivalent. If you need to keep styling and positioning, ASS/SSA is the format that maps most closely from TTML.

Which TTML profiles does the parser accept?

The common ones used in the wild: plain TTML1, TTML2, IMSC 1 / IMSC 1.1 (used by Netflix's Japanese delivery pipeline, with TTML1 for other languages), EBU-TT-D (the BBC/EBU broadcast profile), Apple iTT, and SMPTE-TT. File extensions in the wild include .ttml, .xml, .dfxp, and .itt — XConvert reads them all and writes a single SubViewer .sub for each. Profile-specific extensions (e.g., IMSC's <image> regions for image-based subtitles, SMPTE-TT's Base64-tunnelled legacy data) are not converted; only text cues come through.

My TTML file uses SMPTE timecode (00:01:23:12) — will the cues line up?

Yes. The parser detects SMPTE-timecode timing and converts it to wall-clock time using the rate declared in the document's ttp:frameRate attribute (commonly 24, 25, 29.97, or 30). If the frame rate isn't declared, the parser falls back to 30 fps, which can cause drift on European 25 fps content; in that case open the source TTML in a text editor and add ttp:frameRate="25" to the <tt> element before converting, or convert with the clock-time profile.

Is SubViewer frame-rate dependent like MicroDVD?

No — that's the most common mix-up because both use .sub. SubViewer uses real timestamps (HH:MM:SS.cc), so it plays at the right time regardless of whether the video is 23.976, 24, 25, 29.97, or 60 fps. MicroDVD uses frame numbers {start}{end} and DOES drift if the video frame rate changes. XConvert writes the SubViewer flavour specifically to sidestep that whole class of sync bug.

Why doesn't VLC load my converted .sub?

VLC reads both SubViewer and MicroDVD .sub and picks one parser based on the first line: [INFORMATION] triggers the SubViewer parser, {1}{1}... triggers MicroDVD. XConvert's output opens with [INFORMATION], so VLC reads it as SubViewer. If VLC still ignores the file, check (a) the filename matches the video (e.g., Movie.mkv and Movie.sub in the same folder), (b) the file is in the same folder as the video, and (c) "Subtitle Track" under the Video menu isn't set to "Disable." VLC's auto-load behaviour is filename-based, not content-based.

My TTML has multiple language tracks — what happens?

A single TTML document can carry several <div xml:lang="..."> blocks for different languages. SubViewer has no concept of multi-language packaging — one .sub file holds one language. The parser writes a separate .sub for each xml:lang it finds and suffixes the filename with the BCP-47 language tag (e.g., Movie.en.sub, Movie.es.sub, Movie.de.sub), matching the convention most media players use for picking the right sidecar subtitle.

What encoding does the SUB file use?

UTF-8 by default, which handles every language including CJK, Arabic, Hebrew, Cyrillic, and emoji — important because TTML files frequently carry non-Latin scripts straight from Netflix or BBC pipelines. Some very old players (early-2000s DivX boxes, some hardware DVD players) expect ANSI / Windows-1252 and may show mojibake on UTF-8 files; in that case open the resulting .sub in a text editor that lets you re-save as the target codepage. Modern players — VLC, MPC-HC, PotPlayer, Kodi, Plex — all handle UTF-8 SubViewer correctly.

Can I batch-convert a whole season of TTML tracks at once?

Yes. Drop the entire folder of .ttml, .xml, or .dfxp files into the queue and they all process in parallel in your browser. There's no per-file or quantity cap because nothing leaves your machine. Output filenames mirror the input (e.g., S01E01.en.ttml → S01E01.en.sub) so they auto-pair with the matching video files in players that do filename-based subtitle loading.

Can I go back from SUB to TTML later?

Technically yes — SUB-to-TTML conversion is available — but it's not a clean round-trip. The styling, regions, positioning, and metadata you lose going TTML → SUB cannot be reconstructed from a SubViewer file; reverse conversion produces a minimal TTML document with cue text and timing only. If you anticipate needing the full TTML feature set later (for re-delivery to a streamer, broadcast, or accessibility workflow), keep the original .ttml archived alongside the .sub rather than relying on round-tripping.

Related Convert tools
TTML ConverterConvert Ttml To SrtConvert Ttml To VttConvert Ttml To AssConvert Ttml To SsaConvert Srt To SubConvert Vtt To SubConvert Ass To Sub

Image Tools

Image CompressorCompress JPEGCompress PNGCompress GIFCompress WebPImage ConverterJPG ConverterImage Resizer

Video Tools

Video CompressorCompress MP4MP4 to GIFVideo to GIFVideo ConverterMP4 ConverterVideo Cutter

Audio Tools

Audio CompressorCompress MP3Compress WAVAudio ConverterMP3 ConverterFLAC to MP3Audio Cutter

Document Tools

Compress PDFMerge Images to PDFSplit PDFPDF to JPGUnzip FilesRAR Extractor

Converters

Time Zone ConverterMeeting PlannerIST to ESTTime Zone AbbreviationsUnit ConverterLength ConverterFlow Rate Converter
© 2026 XConvert.com. All Rights Reserved.
About UsPrivacy PolicyTerms of ServiceContactHelp Us Grow