MICRODVD to JSON
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
1 thing is dropped or needs a decision
- Frame rate
the source stores times as frame numbers — every timestamp depends on the frame rate you supply
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 JSON. Drop a file in — or paste the text — and you get the JSON 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 has nowhere to go in JSON. 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 JSON
Input
{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.
Output
{
"version": 1,
"fps": 25,
"cues": [
{
"start": 4000,
"end": 6000,
"lines": [
"The quick brown fox jumps over the lazy dog."
]
},
{
"start": 8000,
"end": 10400,
"lines": [
"Faster than",
"the last one."
]
}
]
}
Dropped in this output: frame rate. 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
{
"version": 1,
"fps": 25,
"cues": [
{
"start": 4000,
"end": 6000,
"lines": [
"Leading zeros in the frame numbers."
]
},
{
"start": 12000,
"end": 13600,
"lines": [
"An unrecognized line above was kept in place."
]
},
{
"start": 16000,
"end": 18000,
"lines": [
"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 JSON?
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 JSON 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.
What does the output look like when MICRODVD becomes JSON?
Like JSON: an array of cue objects, each with its own `id`, `start` and `end`. Every MICRODVD cue becomes one JSON cue, in the same order, with the same text.
How does a two-line MICRODVD cue come out in JSON?
As two entries in the cue's `lines` array. The pairing survives — the two MICRODVD lines still belong to one subtitle in the JSON output, and a player shows them together.
Do MICRODVD cues keep their order in the JSON 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 JSON 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 JSON back to MICRODVD?
Yes, and it has its own list: converting JSON to MICRODVD drops styling, positioning, karaoke and frame rate. That list is different from the one above because the two formats keep different things.
Does the JSON 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 JSON.