XConvert
Popular
Compress Video Files OnlineCompress MP4 Video OnlineAudio CompressorMTS to MP4 ConverterCompress GIFWAV Compressor
Browse by task
Compress
Compress GIFCompress PNG OnlineAudio TrimmerJPG / JPEG CompressorAudio CompressorWAV CompressorHEIC CompressorWebP Compressor
Convert
MP4 to GIF ConverterPDF to JPG ConverterVideo ConverterVideo to GIF ConverterImage ConverterImage to Video ConverterAV1 to MP4 ConverterWebM to GIF Converter
Edit / PDF / Archive
Merge Images to PDFMerge PDFResize GIFFlip ImageCrop ImageCut OGGCut MP3Split PDF
Browse by category
🖼️Image Tools🎬Video Tools🎧Audio Tools📝Document Tools🗄️Archive Tools🛠️Other Utilities
Downloads
Pricing

Convert TTML to SSA Online

Convert a TTML subtitle file to SSA format directly in your browser for quick playback and editing compatibility.

Input (TTML)
Output (SSA)

How to Convert TTML to SSA Online

  1. Upload Your TTML File: Drag and drop your .ttml, .xml, or .dfxp file onto the page, or click "+ Add Files" to pick from your device. Batch upload is supported — convert a whole season's worth of captions in one pass. Processing happens locally in your browser.
  2. Confirm Output Format (SSA): SSA is preselected. The conversion maps each TTML <p> cue to an SSA Dialogue: event under the standard [V4+ Styles] "Default" style — timing is converted from TTML's HH:MM:SS.mmm clock-time to SSA's H:MM:SS.cs (centisecond) format.
  3. Review or Edit (Optional): SSA is a plain-text INI format, so you can open the output in any editor (VS Code, Notepad++, Aegisub) afterward to tweak the [V4+ Styles] block — font, colour, outline, margins — without re-running the conversion.
  4. Download Your SSA File: Click "Convert" and grab the .ssa file individually or, for batches, as a ZIP. UTF-8 with BOM is the safe default for modern players (VLC, mpv, MPC-HC). No sign-up, no watermark, no email gating.

Why Convert TTML to SSA?

TTML (Timed Text Markup Language, a W3C standard) is the captioning format the broadcast and streaming industry hands you — Netflix, BBC, Disney+, and the FCC's "safe harbor" interchange format (SMPTE-TT) are all TTML profiles. SSA/ASS (SubStation Alpha) is what video players, fansubbers, and offline tools actually prefer: a plain INI-style file with a [V4+ Styles] section that gives you font, colour, outline, shadow, and positioning control well beyond what TTML/IMSC exposes by default.

  • Editing in Aegisub — Aegisub is the dominant open-source subtitle editor, and its native format is SSA/ASS. TTML opens awkwardly (if at all) in Aegisub; converting first lets you time-shift, restyle, and re-export without fighting XML.
  • Playback in VLC and mpv — Both players read SSA natively with full V4+ style support, including alpha-blended outlines and per-line position overrides. TTML support varies — VLC handles a subset, mpv requires the libass renderer plus FFmpeg's TTML demuxer, and edge cases (animations, regions) often render incorrectly.
  • Fansub workflow — Anime, K-drama, and community translators have used SSA/ASS for two decades because the format supports karaoke timing (\k, \K, \kf), typesetting (\pos, \frx, \fry, \frz), and inline overrides. TTML you pulled from a streaming service strips all of that.
  • Muxing into MKV — Matroska accepts SSA/ASS as an embedded soft-subtitle track via mkvmerge, and most players (VLC, mpv, Plex, Jellyfin, Kodi) toggle SSA tracks the same way they toggle audio tracks. TTML tracks in MKV are rarer and inconsistently supported.
  • Restyling streaming captions — Once a Netflix or Disney+ TTML capture is converted to SSA, you can replace the bland default style (white sans-serif, drop shadow) with anything libass renders — useful for foreign-language overlays, accessibility (larger fonts, high-contrast outlines), or production work.
  • Lightweight, human-readable — TTML's XML overhead can make a 90-minute caption file 200–400 KB; the same content in SSA is usually 40–80 KB, easier to diff in Git and easier to hand-edit.

Need a different output? Try TTML to SRT for the most universally-supported format, TTML to VTT for HTML5 <track> elements, or TTML to ASS if you specifically want the ASS (v4+) variant. Already have SSA? Convert back with SSA to SRT or SSA to ASS.

TTML vs SSA — Format Comparison

Property TTML (.ttml / .xml / .dfxp) SSA (.ssa)
Syntax XML, namespaced (xmlns="http://www.w3.org/ns/ttml") INI-style sections ([Script Info], [V4+ Styles], [Events])
Standardisation W3C Recommendation; IMSC 1.x profile is the streaming flavour De-facto standard, originated with SubStation Alpha (1990s); spec maintained informally
Time format HH:MM:SS.mmm clock-time or <frames>f media-time H:MM:SS.cs (centiseconds)
Styling model CSS-like inline + <styling> head section Reusable named styles in [V4+ Styles] + inline {\override} tags
Positioning <region> + tts:origin / tts:extent \pos(x,y), alignment numpad codes 1–9, MarginL/R/V
Animation <animate> element (limited renderer support) \t(start,end,override) transforms, \move(), drawing commands \p
File size (1 hr) Typically 200–400 KB (XML overhead) Typically 40–80 KB
Primary use case Broadcast / streaming delivery, FCC closed-caption compliance Fansubs, anime, karaoke, editor-friendly local playback
Native editor Caption authoring tools (EZTitles, MacCaption, WinCaps) Aegisub, Subtitle Edit
Player support Browser HTML5 (partial), Netflix/Disney+ players, some smart TVs VLC, mpv, MPC-HC, PotPlayer; any libass-based renderer

TTML Profile Quick Guide — What You're Probably Converting From

Profile Source / users What to expect when converted to SSA
IMSC 1.0.1 / 1.1 Text Netflix, Disney+, Apple TV+, most modern OTT Clean conversion — cues, basic styles, italics, line-breaks all transfer
IMSC 1.x Image Subtitles delivered as PNGs inside TTML Cannot convert to SSA losslessly — SSA is text-only; output will be empty or skip image cues
SMPTE-TT US broadcast / FCC safe-harbor Converts cleanly; SMPTE-specific extensions (e.g., smpte:backgroundImage) are dropped
EBU-TT (EBU-TT-D) BBC and European broadcasters Converts cleanly; region/positioning collapses to default style unless you re-add \pos manually
DFXP (legacy) Older authoring tools, some captioning houses Converts; positioning attributes treated as IMSC-equivalent
TTML2 Newer authoring workflows Most features convert; advanced metadata (audio descriptions, ruby annotations) drop

Frequently Asked Questions

What is the difference between SSA and ASS, and which does this tool output?

SSA refers to SubStation Alpha v4 (the original 1990s spec). ASS is "Advanced SubStation Alpha" — informally called v4+ — which adds the [V4+ Styles] section (extra colour channels, BorderStyle, ScaleX/Y, etc.) and richer override tags. In practice almost every modern player and editor uses the ASS feature set even for files saved with a .ssa extension. This tool outputs the ASS-compatible structure (V4+ Styles section, modern override tags) under the .ssa filename so the file works in any libass-based renderer. If you specifically need a .ass extension, run TTML to ASS instead.

Will styling, colours, and positions from my TTML file carry over?

Basic styling carries over: italic, bold, underline, font colour, and line breaks map directly to SSA equivalents. Position regions in TTML (used to put captions at the top of the screen for hard-of-hearing speaker identification) are flattened to the default alignment unless you re-add {\pos(x,y)} or change the SSA Alignment value in [V4+ Styles]. Animated/rolling captions and IMSC image cues do not survive — SSA is text only.

My TTML came from Netflix / Disney+. Will the conversion work?

Yes. Both services deliver IMSC 1.1 text-profile TTML, which is the well-trodden path for this conversion (the open-source ttml2ssa project by Paco8 was built specifically for Netflix/HBO/Disney+/Prime Video files). The Events section in the resulting SSA contains one Dialogue: line per TTML <p> cue, in chronological order, ready to load into Aegisub or mux into MKV.

Why is my SSA file noticeably smaller than the original TTML?

XML is verbose: every cue carries opening/closing tags, namespaces, and styling attributes. SSA collapses all of that into one INI header plus a single Dialogue: line per cue. A 90-minute Netflix subtitle file that is 280 KB of TTML typically becomes ~55 KB of SSA — same caption content, less than a quarter of the bytes.

Can I play the converted SSA in a browser or upload it to YouTube?

Browsers (Chrome, Firefox, Safari, Edge) do not play SSA natively in the HTML5 <track> element — that element wants WebVTT. For browser playback, run TTML to VTT instead, or convert the SSA output with a separate step. YouTube accepts SSA on upload but strips the styling and converts it to plain text — for YouTube captions, TTML to SRT is the better starting point.

Does this conversion handle multi-line cues, italics, and <br/> tags?

Yes. TTML <br/> and explicit line-breaks inside <p> cues become \N (hard newline) in the SSA Dialogue: text field. <span tts:fontStyle="italic"> (or <i>) becomes {\i1}...{\i0} override pairs. Bold and underline work the same way ({\b1}, {\u1}). Mixed inline styles within a single line are preserved.

How do I open the SSA file once I have it?

For editing: install Aegisub (Windows/macOS/Linux) — it is the standard SSA/ASS editor and lets you adjust timing, fonts, and styles visually. For playback: drop the .ssa next to your video file with the same base name (e.g., episode01.mkv + episode01.ssa), and VLC/mpv/MPC-HC will pick it up automatically. Plex and Jellyfin do the same.

Is anything uploaded to your servers?

No. TTML-to-SSA is a pure text-format conversion that runs entirely in your browser via JavaScript. No account is required, there is no file-count limit, no size cap beyond what your browser's memory can hold, and there is no watermark or paid tier gating the converter.

Why does my converted SSA show garbled characters for non-Latin text?

SSA files are usually saved as UTF-8 (this tool defaults to UTF-8 with BOM, which is the most compatible choice). If your player shows boxes or mojibake for CJK, Arabic, or Cyrillic text, the player may be guessing the wrong encoding — in VLC, set "Subtitles / OSD → Default encoding" to UTF-8; in mpv, add --sub-codepage=utf-8 to your config. The TTML source's encoding is preserved through the conversion regardless.

Related Convert tools
Convert TTML to SRT OnlineConvert TTML to LRC OnlineConvert TTML to TXT OnlineConvert ASS to SSA OnlineConvert CSV to SSA OnlineConvert DFXP to SSA OnlineConvert LRC to SSA OnlineConvert SBV to SSA OnlineConvert SMI to SSA OnlineConvert SRT to SSA OnlineConvert STL to SSA OnlineConvert SUB to SSA OnlineConvert TTML to ASS OnlineConvert TTML to CSV OnlineConvert TTML to DFXP OnlineConvert TTML to SBV OnlineTTML ConverterSSA ConverterConvert SSA to TTML Online

Image Tools

MP4 to GIF ConverterCompress GIFImage ConverterCompress PNG OnlineJPG / JPEG CompressorWebM to GIF ConverterICO ConverterHEIC Compressor

Video Tools

Video ConverterVideo to GIF ConverterImage to Video ConverterAV1 to MP4 ConverterWebP to MP4 ConverterHEVC to MP4 ConverterPNG to Video ConverterMKV to MKV Converter

Audio Tools

Audio TrimmerMP3 to FLAC ConverterFLAC to MP3 ConverterMP4 to M4A ConverterAudio CompressorWAV CompressorFLAC to WAV ConverterCompress MP3

Document Tools

PDF to JPG ConverterZIP to ZIPPSD to PDF ConverterPDF to HEIC ConverterMerge Images to PDFMerge PDFPDF CompressorImage to PDF Converter

Converters

Unit ConverterWorld Clock & Time Converter
© 2026 XConvert.com. All Rights Reserved.
About UsPrivacy PolicyTerms of ServiceContactHelp Us Grow