Format conversion and OCR

Subtitle Edit reads and writes more than 380 subtitle formats. This page shows how to convert one file or a whole folder, and how to OCR image-based subtitles into text you can edit.

Common subtitle formats

Subtitle Edit detects the format automatically when you open a file. These are the formats you're most likely to need:

FormatExtensionTypeTypical use
SubRip.srtTextThe most widely supported format. Works in nearly every player and upload site.
WebVTT.vttTextHTML5 video, web players, streaming.
Advanced SubStation Alpha.assText + stylingStyled subtitles: fonts, colors, positioning, karaoke.
SubStation Alpha.ssaText + stylingOlder predecessor of ASS.
Timed Text / TTML / DFXP.ttml .xml .dfxpXMLBroadcast and streaming delivery.
EBU STL.stlBinaryEuropean broadcast delivery.
MicroDVD.subText (frame-based)Older frame-based format. Needs the correct frame rate.
SAMI.smiTextOlder Windows Media format.
Blu-ray PGS.supImageBlu-ray subtitles. Needs OCR to become text.
VobSub.sub + .idxImageDVD subtitles. Needs OCR to become text.

Spreadsheets (.xlsx, .ods, .csv) can be imported with your own column mapping, but not saved back to those formats. The full format list is in the official documentation.

Convert a single file

  1. Open the subtitleUse File → Open or drag the file into the window. The format is detected automatically.
  2. Save AsChoose File → Save As, pick the new format in the dialog's format list (for example WebVTT), and save.
  3. Check the resultStyling can be lost when you convert from ASS to SRT. Frame-based formats such as MicroDVD need the correct frame rate. Check a few lines before you share the file.

Some broadcast and image formats are under File → Export, such as Export to Blu-ray SUP, Export to EBU STL, Export to PAC, Export to Cavena 890, Export as plain text and Export custom text format.

SubRip (.srt)
1
00:00:05,200 --> 00:00:07,900
Where were you last night?
WebVTT (.vtt)
WEBVTT

00:00:05.200 --> 00:00:07.900
Where were you last night?

Batch convert a folder

Open Tools → Batch convert… to convert many files in one go.

  1. Add filesDrag files in, click Add, or add a whole folder. Tick Include subfolders when adding a folder if you need to.
  2. Choose outputPick the target format and text encoding (UTF-8 is the safest), then the output folder. Optional settings: Overwrite existing, Keep source file timestamp, Language post fix.
  3. Add operations (optional)Tick any fixes to apply during conversion (list below).
  4. ConvertStart the batch and check the status of each file in the list.

Operations you can apply during conversion:

  • Fix common errors
  • Offset time codes
  • Change speed/frame rate
  • Remove text for hearing impaired
  • Change formatting (add/remove)
  • Split/break long lines, and auto-balance lines
  • Change resolution
  • Merge lines with same text
Batch OCR

Batch convert can also OCR image-based files (SUP, VobSub) straight to text formats. Choose the OCR engine in the batch window, then set things up with the OCR settings described below.

Command line: seconv

seconv is Subtitle Edit's command-line converter. It works without the window, which suits scripts and automation. Examples from the official documentation:

Convert every SRT file in the folder to WebVTT:

seconv *.srt webvtt

Convert to SubRip, keep the source encoding, and fix common errors:

seconv movie.srt subrip --encoding:source --FixCommonErrors

Extract subtitle track 3 from an MKV as SubRip:

seconv movie.mkv subrip --track-number:3

OCR a Blu-ray SUP file to SubRip with English Tesseract:

seconv movie.sup subrip --ocr-engine:tesseract --ocr-language:eng

All options are in the seconv command-line reference.

Encoding and line-break tips

  • Save as UTF-8 unless the destination requires something else. It handles every language.
  • Garbled characters after opening? The source uses an older code page. Use File → Import → Import subtitle with manually chosen encoding, or turn on Auto-convert encoding to UTF-8 on open in the settings.
  • Long lines: use the auto-break and balance tools (also in Batch convert) so lines stay within your rules profile's character limit.
  • Styling: SRT supports only basic tags such as <i>. Converting from ASS drops positioning and fonts.

OCR: turn image subtitles into text

Blu-ray and DVD subtitles are stored as pictures of text. You can't edit them, and most players and websites can't read them as text. OCR (optical character recognition) reads the images and produces a normal text subtitle.

Supported image sources

  • Blu-ray SUP (.sup) and BDN XML
  • DVD VobSub (.sub + .idx) and DVD subtitles
  • DVB subtitles in transport streams
  • Image subtitles inside Matroska (.mkv: PGS, VobSub, DVB) and MP4 (VobSub)
  • WebVTT with embedded images
  1. ImportChoose File → Import → Import image-based subtitle for OCR…, or just open the image-based file. The OCR window opens automatically.
  2. Pick an engine and languageThe OCR language is pre-selected from the language the source file declares. Change it if it's wrong.
  3. Run OCRStart recognition and watch the preview. Unknown words and suspected errors are highlighted as it runs.
  4. Review and acceptCorrect any flagged lines, then click OK. The text subtitles open in the main window, ready to save in any format.

Choosing an OCR engine

EngineRunsBest for
TesseractLocallyGood general accuracy. Download language packs for each language.
nOCRLocally, built inConsistent fonts. You train it on a font and it gets very accurate.
Binary OCRLocally, built inFast image matching against a character database you build.
Paddle OCRLocally (standalone or Python)Strong on Chinese, Japanese and other non-Latin scripts. GPU or CPU.
Ollama / llama.cppLocally, with a vision modelAI-based recognition on your own hardware.
CrispEmbedLocallySelf-contained with several model backends.
Google LensCloud (free, capped)Quick results without local setup.
Google Vision / Mistral OCRCloud (API key)High accuracy if you already have an account.
Privacy note on cloud engines

Cloud OCR engines send the subtitle images to that provider. Choose a local engine (Tesseract, nOCR, Binary OCR, Paddle OCR) if the material is confidential.

Fixing OCR errors

OCR commonly confuses l/I/1, rn/m and 0/O. Subtitle Edit fixes many of these automatically with its OCR replace list, and you can extend that list:

  • OCR fix replace list ({language}_OCRFixReplaceList.xml): rules for whole words, partial words, whole lines, partial lines and regular expressions, applied as recognition runs.
  • Unknown words: add a correct word to the dictionary so it stops being flagged, or add a replacement rule so the same error is fixed automatically next time.
  • Spell check: after OCR, run spell check in the main window to catch what's left.
  • Proofreading: right-click the subtitle list and use Save all images with HTML index… to compare the original images with the recognized text side by side.
Tip for a whole season

Episodes from one show usually use the same font. Train nOCR on the first episode, then use Batch convert with nOCR on the rest for fast, accurate results.

Next: check the timing of the new text subtitle →