Subtitle guide Workflow guides

How to extract hardcoded subtitles from video

Updated

TL;DR — Learn whether hardcoded or burned-in video subtitles can be extracted, when OCR is required, and how to check for an embedded text track before uploading video.

Related tool

Extract Subtitles from Video

Open Video extractor

Hardcoded subtitles are visible in the video picture itself. They look like captions, but they are not a separate subtitle file that a normal extractor can save.

Quick answer

You cannot extract hardcoded subtitles as clean SRT text with a normal subtitle extractor. Hardcoded, burned-in, or hardsubbed captions require OCR because the words are stored as pixels in the video frames.

Before you start OCR, open Extract Subtitles from Video and check whether the video has an embedded text subtitle track. If the tool finds SRT, ASS, SSA, WebVTT, or another supported text stream, extract that instead of doing OCR.

Extractor or OCR?

Use this decision table before spending time on OCR or uploading a private video to another service:

What you seeWhat it meansBest next step
Captions can be turned off in the playerEmbedded or external subtitle trackTry Extract Subtitles from Video first.
The extractor lists a text subtitle streamEditable subtitles already existExtract the track, then clean or validate it.
Captions are always visible and cannot be disabledHardcoded or burned-in subtitlesUse OCR; extraction cannot read video pixels as text.
FFmpeg lists PGS, VobSub, or DVD subtitle streamsImage-based subtitlesOCR is usually required before creating SRT text.
The website showed captions but the downloaded file has noneSeparate streaming caption fileLook for the original VTT or SRT from the page or export source.

If the video contains an extractable text track, extraction is usually more accurate than OCR. OCR is the fallback when the captions are only part of the image.

Why hardcoded subtitles cannot be extracted directly

A subtitle extractor reads subtitle streams inside the container:

MKV file
├── Video stream
├── Audio stream
└── Subtitle stream: SRT or ASS

Hardcoded subtitles are different:

MP4 file
├── Video stream with subtitle text already painted into each frame
└── Audio stream

There is no separate caption data to export. OCR has to inspect the video image, recognize the letters, and rebuild timing by looking at when each caption appears and disappears.

Step-by-step workflow

  1. Play the video and try to disable captions in the subtitle or CC menu.
  2. If captions can be disabled, use Extract Subtitles from Video to check for an embedded text track.
  3. If the extractor finds a text track, save it and review the first, middle, and last cues.
  4. If the extractor finds no text track, assume OCR may be required.
  5. After OCR, run the output through cleanup and validation before using it in YouTube, Plex, or a web player.

This keeps the private-video check local first and avoids uploading a file when there may already be a clean embedded subtitle stream.

Common hardcoded subtitle cases

Social video exports

TikTok, Instagram, Shorts, and other social exports often burn captions into the video. They are designed to be always visible, so there is usually no subtitle stream to extract.

Anime hardsubs

Fansubbed videos may include stylized captions, signs, karaoke lines, and translation notes. OCR can recover plain text, but styling and positioning usually need manual reconstruction.

DVD or Blu-ray image subtitles

PGS, VobSub, and DVD subtitle streams are not normal text even when they are separate streams. Extracting them may give image subtitle data, but OCR is still needed to create editable SRT.

Downloaded videos with missing captions

Some websites load captions separately through VTT, SRT, or JSON files. The downloaded video may have no caption stream even though the web player showed subtitles. See Why downloaded video has no subtitles for that case.

Clean up the OCR output

OCR subtitle output usually needs review before delivery:

OCR problemFix
Misread letters or punctuationManually review captions against the video.
Long lines from merged captionsUse Clean SRT File or Subtitle Cleaner.
Invalid cue numbers or blank linesRun SRT Validator.
Captions appear early or lateUse Subtitle Time Shifter.
Bad accents or replacement symbolsTry Subtitle Encoding Fixer.

For a broader distinction between embedded and burned-in captions, read Embedded vs burned-in subtitles.

Frequently asked questions

Can hardcoded subtitles be extracted as SRT?

Not directly. Hardcoded subtitles are pixels in the video image, so you need OCR to recreate editable SRT text. A normal subtitle extractor can only save an existing embedded text track.

Should I try subtitle extraction before OCR?

Yes. A local extraction check is faster and more accurate when a text stream exists. If the tool finds no embedded text captions, then OCR is the realistic next step.

Why does an extractor find no subtitles when text is visible?

The text may be burned into the video frames, loaded from a separate sidecar caption file, or stored as image-based subtitles such as PGS or VobSub. Those are not direct editable text tracks.

What should I do after OCR creates an SRT file?

Review misread words, fix timing, remove OCR artifacts, and validate the SRT before uploading or converting it.

Use the Extract Subtitles from Video

Extract embedded text subtitle tracks from MKV, MP4, MOV, and WebM files locally with no video upload. No signup, no upload, and everything runs locally in the browser.

Open Video extractor