Skip to main content
SubtitleMatrix

MICRODVD to SSA

Format conversionMicroDVD (SUB)
Or paste subtitle text

Options

Which frame rate the timings are counted in. On the format pages this is what MicroDVD needs, because it stores timing as frame numbers. On the frame rate pages it is the rate the file was timed against — the version the subtitles were made for — and the page's second box takes the rate of the video you are going to use them with. 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60 are the common ones. Getting it wrong shifts the whole timeline, and on the frame rate pages it shifts it by a ratio rather than by a fixed amount.

What this conversion changes

2 things are dropped or need a decision

  • Frame rate

    the source stores times as frame numbers — every timestamp depends on the frame rate you supply

  • Precision

    timing precision — the output's clock is coarser, so every timestamp is rounded to the nearest 10 ms

This list comes from the capability matrix for these two formats, not from the particular file you loaded. A specific file may lose more if it uses features the format allows but the matrix does not model.

This page converts MICRODVD to SSA. Drop a file in — or paste the text — and you get the SSA version back. The conversion runs entirely in your browser, so nothing is uploaded and no account is needed.

These two formats do not store the same things, and the difference is not cosmetic: frame rate and precision have nowhere to go in SSA. The list above comes from what the two formats can each express rather than from your file, so it is the same answer before you load anything.

One file is fine, and so is a whole season: the queue works through them in order and the results come down together as a single ZIP.

Examples

A typical MICRODVD file, converted to SSA

Input

{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.

Output

[Script Info]
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0,0,0,,The quick brown fox jumps over the lazy dog.
Dialogue: 0,0:00:08.00,0:00:10.40,Default,,0,0,0,,Faster than\Nthe last one.

Dropped in this output: frame rate and precision. Everything else matches line for line.

The same conversion on an awkward input

Input

{1}{1}23.976
{0100}{0150}Leading zeros in the frame numbers.
[INFORMATION]
{300}{340}An unrecognized line above was kept in place.
{400}{450}Trailing spaces are kept.   

Output

[Script Info]
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0,0,0,,Leading zeros in the frame numbers.
Dialogue: 0,0:00:12.00,0:00:13.60,Default,,0,0,0,,An unrecognized line above was kept in place.
Dialogue: 0,0:00:16.00,0:00:18.00,Default,,0,0,0,,Trailing spaces are kept.   

This is the kind of damage real files have — mixed line endings, stray whitespace, fields left empty. Compare it with the tidy example above to see what the parser forgives.

Frequently asked questions

Which frame rate is used to read MICRODVD before writing SSA?

The frame rate field on this page comes first — whatever is in it wins when the frames are turned back into clock times for the SSA output. Leave it blank and the rate the MICRODVD file declares in its first line is used instead, falling back to 25 if it declares nothing. Worth checking either way: `.sub` files in circulation were often written by tools that assumed PAL video, so a declared 25 is not proof that the video ran at 25.

Why have the timestamps moved from MICRODVD to SSA?

SSA stores time as `0:00:04.13` where MICRODVD stores it as `{103}{175}` — a hundredth of a second against a thousandth — so every timecode is rounded to the nearest 10 ms: 00:00:04,126 comes out as 4.13 seconds. Nothing is stretched or reordered and no cue moves by more than 5 ms, but if you are lining these subtitles up against another file, that is the one place this conversion stops being exact.

What does the output look like when MICRODVD becomes SSA?

Like SSA: no cue numbers: every subtitle is a `Dialogue:` line in the `[Events]` section, with a `Marked` field where SRT keeps the number. Every MICRODVD cue becomes one SSA cue, in the same order, with the same text.

How does a two-line MICRODVD cue come out in SSA?

As two lines with `\N` between them, which is how SSA writes a hard line break. The pairing survives — the two MICRODVD lines still belong to one subtitle in the SSA output, and a player shows them together.

Do MICRODVD cues keep their order in the SSA output?

Yes, and they are sorted by start time on the way — earliest first, which is how every format here expects them and how players read them. If your MICRODVD file listed its cues out of sequence, the SSA output puts them back in order; that is a change to the file's structure rather than its content, and it is deliberate.

Can I convert the SSA back to MICRODVD?

Yes, and it has its own list: converting SSA to MICRODVD drops styling, positioning, karaoke, frame rate and format-specific content. That list is different from the one above because the two formats keep different things.

Does the SSA output keep the MICRODVD file's encoding?

No — the output is UTF-8, with Unix line endings and no byte-order mark, whatever the MICRODVD file used. A file that arrives in UTF-16, or in a Windows single-byte encoding, is decoded on the way in (the result panel says so when that happens); what comes out is always the same UTF-8 SSA.

Related tools