Turn your SUB subtitle file into SBV in a few clicks—upload a .sub file, convert, and download the SBV result instantly.
SBV is SubViewer — the plain, no-markup caption format YouTube's own caption editor writes and accepts on upload. MicroDVD .sub is a much older text format whose timings are frame numbers rather than clock times. Moving between them is mostly a timing job, and this tutorial walks the whole thing: reading the frame rate out of your file, running the conversion in the browser, and fixing the handful of things that commonly go wrong before a YouTube upload.
{start}{end}text lines into the Input (SUB) box. The character count beside the label confirms it was read; one file at a time..sub in a text editor and look at line one. A first line of {1}{1}23.976 is the frame-rate hint; note the number and delete the line. This converter reads every MicroDVD file at 25 fps and has no frame-rate control.subtitles.sbv, UTF-8 encoded — or "📋 Copy" to paste into YouTube Studio's caption editor. Check the first and last cue against the video before you publish.A MicroDVD line like {25}{100}Hello says "show this from frame 25 to frame 100". Turning that into 00:00:01.000,00:00:04.000 needs the frame rate of the encode the subtitles were cut against, and MicroDVD's syntax has no field for it. By convention the rate is smuggled into the first cue as {1}{1}23.976 — FFmpeg's MicroDVD demuxer scans the opening lines for that shape, and the reference Python library pysubs2 raises UnknownFPSError and refuses the file rather than guess when it is missing.
This converter does neither. It does not read the hint line, it renders no frame-rate control, and it parses every MicroDVD file at 25 fps. So delete the hint line before converting — otherwise it becomes a caption reading 23.976 — and treat the timings in the output as provisional until you have checked them against the video. On YouTube that check costs nothing: upload the track, scrub to the end of the video, and see whether the last caption still lands on the right line.
The underlying arithmetic is simple, which makes it easy to sanity-check by hand — frame number divided by frame rate is the time in seconds:
| Frame number | at 23.976 fps | at 24 fps | at 25 fps | at 29.97 fps | at 30 fps |
|---|---|---|---|---|---|
| 24 | 0:00:01.001 | 0:00:01.000 | 0:00:00.960 | 0:00:00.801 | 0:00:00.800 |
| 1,500 | 0:01:02.563 | 0:01:02.500 | 0:01:00.000 | 0:00:50.050 | 0:00:50.000 |
| 90,000 | 1:02:33.754 | 1:02:30.000 | 1:00:00.000 | 0:50:03.003 | 0:50:00.000 |
Drift from a wrong frame rate compounds, which is exactly the failure mode viewers complain about: fine over the intro, unwatchable by the end.
| Source authored at | Read at 25 fps, captions land | After 1 minute | After 10 minutes | After 1 hour |
|---|---|---|---|---|
| 23.976 fps | early | 2.5 s early | 24.6 s early | 2 min 28 s early |
| 24 fps | early | 2.4 s early | 24.0 s early | 2 min 24 s early |
| 29.97 fps | late | 11.9 s late | 1 min 59 s late | 11 min 56 s late |
| 30 fps | late | 12.0 s late | 2 min 0 s late | 12 min 0 s late |
| Property | MicroDVD (.sub) | SubViewer (.sbv) |
|---|---|---|
| Timing | Frame numbers, {25}{100} |
Clock time, 00:00:01.000,00:00:04.000 |
| Precision | One frame — 40 ms at 25 fps | One millisecond |
| Cue separator | One line per cue | Timing line, text lines, then a blank line |
| Line breaks in a cue | Pipe character ` | ` |
| Styling | Inline {y:i}, {c:$BBGGRR}, {f:}, {s:} codes |
None — YouTube recognises no markup in SBV |
| Speaker labels | No convention | >> Name: prefixes are common |
| Encoding | Unspecified; legacy files are often Windows-125x | YouTube requires plain UTF-8 |
| YouTube upload | Accepted, listed as an alternate SubViewer extension | Accepted as a basic format |
The practical read: SBV throws away nothing you can keep. MicroDVD's styling codes have no SBV equivalent and YouTube would ignore them anyway, so the only information that has to survive is text, order and timing.
{digits}{digits} followed by text. You get this message when the .sub is really VobSub (a binary bitmap track paired with an .idx), a SubViewer .sub that already uses timestamps, or a file whose curly braces were mangled in transit. Nothing was uploaded and nothing was lost; change "From format" to what the file actually is.23.976 — that is the frame-rate hint, {1}{1}23.976. It is not special-cased here, so it becomes a real cue. Note the number, then delete the line from the input.{. Windows-authored .sub files often carry one; re-save without the BOM, or paste the text into the input box instead of uploading.{1234}{} never appears — an empty end-frame is accepted by some MicroDVD readers but not by this parser, which requires digits in both braces. Give the cue a real end frame..sub was saved in Windows-1250, Windows-1251 or Big5, the damage happens on the way in: re-save the .sub as UTF-8 in a text editor first, then convert.< and a > on the same line is treated as markup and removed, so 5 < 6 but 7 > 2 becomes 5 2. Reword or use typographic angle characters before converting.If the .sub came with an .idx file, it is VobSub and there is no text inside it to convert — the subtitles are pictures lifted off a DVD, and getting them into SBV requires OCR rather than a format converter. Separately, if you are captioning for YouTube and have any choice in the matter, SRT is the safer upload: it is accepted everywhere, survives a round trip through more editors, and carries the same information SBV does. SUB to SRT covers that route, and SUB to VTT is the one to use for a self-hosted HTML5 player.
Yes. YouTube lists SubViewer among the basic caption formats it accepts, with the extension given as .sbv or .sub, alongside SubRip, MPsub, LRC and Videotron Lambda. The documented caveat is that only basic versions of these files are supported, no style markup is recognised, and the file must be plain UTF-8 — which suits a converted MicroDVD file, since none of MicroDVD's styling codes survive the conversion anyway.
Because three unrelated formats have claimed the extension. SubViewer files sometimes use .sub; MicroDVD files use .sub; and VobSub DVD rips use .sub for a binary bitmap stream paired with an .idx. Open the file in a text editor to tell them apart — curly-brace frame numbers mean MicroDVD, hh:mm:ss timestamps with a comma between them mean SubViewer, and unreadable binary means VobSub.
Milliseconds, written as hh:mm:ss.mmm on both sides of the comma. That is finer than the source can justify: a MicroDVD frame at 25 fps is a 40 ms bucket, so the converted timings are precise to the millisecond but only accurate to the frame boundary the original author set. Cues past the hour mark are written with a real hours field, so a cue at 61 minutes reads 01:01:40.000.
Not automatically. SubViewer files often mark speaker changes with a >> Name: prefix — the SBV reader on this page recognises that convention and strips those prefixes when it parses an .sbv file back in. Nothing in this conversion adds them, because MicroDVD has no speaker-label convention to translate from. If you want them, add them by hand after converting; they are plain text at the start of the cue.
No — the file picker takes a single file and the input box holds one document, so multi-episode batches are one conversion each. That is a consequence of how the tool works rather than a limit imposed on you: because the conversion runs inside the page, each run is only as slow as parsing a text file, and repeating it for a season of episodes is a matter of seconds per file.
Neither. This converter reads the file with the browser's FileReader API and builds the output with JavaScript that arrived with the page, so no request carries your subtitle text anywhere and there is no server-side copy to expire. Uploading to YouTube is a separate step you take afterwards with the downloaded .sbv.
We ran a three-cue MicroDVD file, including one cue using the pipe separator, through this exact pipeline. The output was a well-formed SubViewer file: a timing line, the caption text on the following lines with the piped cue split across two real lines, and a blank line between blocks, using CRLF line endings throughout. Text, ordering and line breaks came through unchanged. The timings are the part to check against your video, for the frame-rate reasons in the walk-through.
It is written out as a timing line followed by an empty text line. MicroDVD files occasionally carry cues whose text was deleted but whose frame markers remain, and nothing in the conversion drops them, so those come through as blank blocks. Scan the output before uploading and delete any block with no text — an empty caption is harmless in a desktop player but there is no reason to ship one.