TL;DR: Hardcoded (burned-in) subtitles are part of the video image, so getting editable text back means OCR — and the right tool depends mostly on your operating system and how far you need to go after extraction. On Windows or Linux, VideOCR is the best free pick: one program, video in, timestamped SRT out. For maximum control, the classic two-step route is VideoSubFinder (frame detection + cleaned images) feeding RapidVideOCR or Subtitle Edit. On a Mac, GeekLink is the only native option — and the only tool here that continues past the SRT to review, AI translation, and burn-in in the same app. Below: five dedicated tools and three DIY engine routes (PaddleOCR, Tesseract, Google Lens), all compared in one table.

Key takeaways

  • Your operating system decides first. On Windows or Linux, VideOCR is the best free end-to-end extractor. On a Mac, GeekLink is the only native all-in-one option — none of the open-source extractors ship a Mac build.
  • VideoSubFinder doesn't OCR by itself. It finds the subtitle frames and cleans the images; you pair it with RapidVideOCR or Subtitle Edit for the actual text. Maximum control, two-step workflow.
  • Video-Subtitle-Extractor (VSE) is the most popular open-source pick (9,000+ GitHub stars), but it's NVIDIA/CUDA-oriented — slow on machines without a compatible GPU.
  • PaddleOCR, Tesseract, and Google Lens are engines, not tools. They read images; the video layer (frame detection, timing, dedup) is what the tools above add on top.
  • Only GeekLink goes past extraction — review with flagged uncertain lines, AI translation, and burn-in happen in the same app.

On a Mac? GeekLink extracts burned-in subtitles locally — draw a box, run OCR, get a timestamped SRT. Free tier, no account required.

Download Free

Part 1: Dedicated subtitle extraction tools

These five are purpose-built for pulling hardcoded (burned-in) subtitles out of video. They differ mainly in platform, how many steps the workflow takes, and what happens after you have the SRT.

1. VideOCR — Best free end-to-end extractor for Windows and Linux

Price: Free, open source (MIT)
Platform: Windows, Linux, Docker (CPU & NVIDIA GPU builds)

VideOCR is the simplest free way to go from a video with burned-in subtitles to a finished SRT in one program. Load the video, crop the subtitle area, run — it reads the text with PaddleOCR locally, or with Google Lens in a hybrid cloud mode, and writes a timestamped SRT. Active project, ~680 GitHub stars as of July 2026.

VideOCR Windows GUI with a crop box drawn around bilingual burned-in subtitles, OCR engine set to PaddleOCR detection + Google Lens recognition
VideOCR's Windows GUI: crop box around the subtitle line, engine set to PaddleOCR + Google Lens hybrid. Screenshot from the official VideOCR repository (MIT).

What stands out:

  • True one-step workflow: video in, SRT out
  • Local PaddleOCR mode (its README lists 200+ languages) or higher-accuracy Google Lens hybrid mode
  • GUI and CLI, plus Docker images; NVIDIA CUDA acceleration

Limitations:

  • No macOS build
  • Slow on CPU by its own documentation — you really want the GPU build
  • No editor to review results, no translation, no burn-in

Best for: Windows/Linux users who want free, no-fuss extraction and are done once they have the SRT.

2. Video-Subtitle-Extractor (VSE) — Most popular open-source extractor

Price: Free, open source (Apache 2.0)
Platform: Windows, Linux, macOS (tuned for NVIDIA GPU; CPU fallback is slow)

Video-Subtitle-Extractor is the most popular tool in this category — 9,000+ GitHub stars — and extracts burned-in subtitles to SRT with local OCR across 87 languages. It detects the subtitle region frame by frame, de-duplicates repeated lines, and offers Fast/Auto/Precise modes. Especially strong in the Chinese-speaking community.

Video-Subtitle-Extractor GUI detecting a burned-in English subtitle line in an anime frame, with batch queue and recognition log
VSE detecting the subtitle line (green box) with a batch queue on the right — the interface is Chinese-first. Screenshot from the official VSE repository (Apache 2.0).

What stands out:

  • 87 languages, fully local, no API keys
  • Batch extraction across multiple videos (same resolution/region)
  • Sister project (video-subtitle-remover) can erase the old burned-in text

Limitations:

  • NVIDIA/CUDA-oriented — on a Mac it falls back to slow CPU processing
  • Python/conda setup if the release build doesn't work for you; paths can't contain spaces or non-ASCII characters
  • No in-app editor, translation, or burn-in

Best for: Technical users with an NVIDIA GPU who want free bulk extraction, especially for Chinese content. Full comparison: GeekLink vs VSE.

3. GeekLink — Best for Mac, and the only all-in-one (extract → review → translate → burn-in)

Price: Free tier (OCR extraction included); Pro $12.99/mo, $99/yr (~$8.25/mo), or $169 one-time lifetime
Platform: macOS (native, Apple Silicon)

GeekLink is the only tool on this list that runs natively on a Mac — and the only one where extraction is step one instead of the whole job. Import the video, draw a box around the subtitle area, and it OCRs the text locally into a timestamped, editable subtitle list. Size and color filters keep logos and watermarks out of the result, and the editor flags the lines it's least confident about so you review a handful instead of proofreading everything. From there you can translate (Claude 3.5 Haiku, GPT-4o, GPT-4o mini, DeepSeek — context-aware, 40+ languages) and burn the result back in, all in the same app.

GeekLink on macOS: drawing a box around the burned-in subtitle area before running local OCR
GeekLink on macOS: draw a box around the subtitle line — OCR reads only inside the box, ignoring logos and watermarks.

What stands out:

  • Native macOS app — no Python, no conda, no CUDA; OCR runs 100% locally
  • Draw-a-box region select plus size/color clutter filtering
  • Editor flags uncertain lines — fastest review pass of any tool here
  • Same app continues to AI translation and styled burn-in; batch processing built in

Limitations:

  • macOS only — no Windows or Linux version
  • Closed source; AI translation is a paid (Pro) feature — extraction itself is on the free tier

Best for: Mac users, and anyone whose real job is "burned-in subtitles in one language → finished video in another." Step-by-step guide: How to Extract Hardcoded Subtitles with OCR.

4. VideoSubFinder — Best subtitle frame detection (classic two-step workflow)

Price: Free, open source (GPLv2)
Platform: Windows, Linux

VideoSubFinder doesn't do OCR at all — it solves the video half of the problem better than anyone: finding the frames with subtitle text, recording exact timing, and outputting cleaned images with the background stripped away. You then run those images through an OCR tool (RapidVideOCR, Subtitle Edit, FineReader) to get the text. A fansubbing classic, still pulling hundreds of downloads a week on SourceForge.

What stands out:

  • Excellent background cleaning — hands your OCR tool much easier images
  • Precise appear/disappear timing per line
  • Every stage is inspectable and tunable

Limitations:

  • No OCR of its own — a second program is required
  • No macOS build
  • The most manual workflow here: two apps, image batches in between

Best for: Fansubbers and perfectionists who want maximum control and the best possible raw images for OCR.

5. RapidVideOCR — Best OCR companion for VideoSubFinder

Price: Free, open source (Apache 2.0)
Platform: Windows, Linux, macOS (Python/pip; desktop EXE for Windows)

RapidVideOCR is the purpose-built second half of the VideoSubFinder workflow: it takes VideoSubFinder's cleaned image folders (RGBImages/TXTImages) and OCRs them into SRT, ASS, or TXT. It's built on the RapidOCR engine and actively maintained (~500 GitHub stars).

RapidVideOCR online demo asking for a ZIP of RGBImages or TXTImages exported by VideoSubFinder
RapidVideOCR's demo says it plainly: feed it the RGBImages/TXTImages that VideoSubFinder exports. Screenshot from the official RapidVideOCR demo (Apache 2.0).

What stands out:

  • Designed specifically for VideoSubFinder output — timing comes through cleanly
  • SRT, ASS, and TXT output
  • pip-installable, works cross-platform

Limitations:

  • Not a standalone extractor — useless without VideoSubFinder's images (and VideoSubFinder itself has no Mac build, so the pair is still Windows/Linux-bound)
  • CLI-first; the friendlier desktop version is Windows-only

Best for: Completing the VideoSubFinder pipeline without ABBYY FineReader or manual Subtitle Edit OCR passes.

Part 2: DIY routes — OCR engines you can build on

These aren't subtitle tools — they're the recognition engines. On their own they read images; you (or a tool above) must handle frame sampling, subtitle detection, de-duplication, and timing. Worth knowing about because "which engine" explains many of the differences in Part 1.

6. PaddleOCR — Best engine for CJK if you build your own pipeline

Price: Free, open source
Platform: Python library (any OS)

PaddleOCR is a deep-learning OCR toolkit with modern accuracy, particularly strong on Chinese and other CJK text — it's the engine inside VideOCR's local mode. Point it at images and it returns text; to use it on video you script frame extraction, cropping, dedup, and SRT assembly yourself.

Best for: Developers building a custom extraction pipeline, especially for Chinese/Japanese/Korean content.

7. Tesseract OCR — The veteran engine (what Subtitle Edit uses)

Price: Free, open source
Platform: Library/CLI (any OS)

Tesseract is the classic open-source OCR engine — mature, free, and wide language coverage, but designed for printed documents. Low-resolution, stylized video text is a hard target for it, which is exactly why VideoSubFinder's background-cleaning step exists: feed Tesseract clean, high-contrast images (for example via Subtitle Edit's image OCR) and it performs respectably.

Best for: The Subtitle Edit route on cleaned images; not recommended raw against video frames.

8. Google Lens — Most accurate recognition, no video workflow

Price: Free (cloud)
Platform: Cloud service

Google Lens is arguably the most accurate text recognition you can point at a messy frame — but there's no batch video workflow and no timing. By hand it's screenshot-by-screenshot. VideOCR's hybrid mode automates it (local detection, Lens recognition), at the price of an internet connection and sending your frames to Google.

Best for: Spot-checking a few hard frames, or via VideOCR's hybrid mode when accuracy beats privacy.

How do all 8 options compare?

Tool Platform Does its own OCR Steps to SRT Translation / burn-in Price
VideOCRWindows / Linux / DockerYes (PaddleOCR or Google Lens)1NoFree (MIT)
Video-Subtitle-ExtractorWin / Linux / macOS (NVIDIA-tuned)Yes (local)1NoFree (Apache 2.0)
GeekLinkmacOS (Apple Silicon)Yes (local)1Yes — AI translation + styled burn-inFree tier; Pro $12.99/mo, $99/yr, $169 lifetime
VideoSubFinderWindows / LinuxNo — images only2 (needs OCR tool)NoFree (GPLv2)
RapidVideOCRWin / Linux / macOS (pip)Yes (RapidOCR) — on VideoSubFinder images2 (with VideoSubFinder)NoFree (Apache 2.0)
PaddleOCRPython libraryEngine onlyDIY scriptingNoFree
TesseractLibrary / CLIEngine onlyDIY / via Subtitle EditNoFree
Google LensCloudEngine only (cloud)Manual / via VideOCR hybridNoFree

Which should you choose?

You're on Windows or Linux, extraction is the whole job: VideOCR (one step, free), or Video-Subtitle-Extractor if you have an NVIDIA GPU and batch volumes — especially for Chinese content.

You want the highest-control, best-possible-quality route and don't mind two steps: VideoSubFinder for detection + RapidVideOCR (or Subtitle Edit) for recognition. The traditional fansubber's recipe.

You're on a Mac: GeekLink. The open-source extractors either don't ship Mac builds or fall back to slow CPU processing; GeekLink's OCR is native, local, and on the free tier.

Extraction is step one, not the goal: if the subtitles need to be reviewed, translated, and burned back into a finished video, GeekLink is the only tool here that does all of it in one app — everything else hands you an SRT and wishes you luck.

You're a developer building something custom: PaddleOCR for the recognition (especially CJK), and study how VideOCR and VSE structure their frame-detection and dedup layers — that video layer is where the real work is.

Frequently Asked Questions

What is the best free tool to extract hardcoded subtitles?

On Windows or Linux: VideOCR — free, open-source, one step from video to SRT. On a Mac: GeekLink's free tier covers full OCR extraction and SRT export. If you want maximum quality control and don't mind a two-step workflow, VideoSubFinder + RapidVideOCR is also completely free.

How do I extract hardcoded subtitles on a Mac?

GeekLink is the only native Mac option in this list — the open-source extractors ship Windows/Linux builds (VideoSubFinder, VideOCR) or run slowly on Mac CPUs (Video-Subtitle-Extractor). GeekLink runs OCR locally on Apple Silicon: import, draw a box around the subtitle area, run, export SRT.

Do I need a GPU to extract hardcoded subtitles?

For the open-source extractors, effectively yes for reasonable speed — VideOCR and Video-Subtitle-Extractor are both built around NVIDIA CUDA and are slow on CPU. On a Mac, GeekLink runs its OCR natively on Apple Silicon without a discrete GPU.

Can any of these tools translate the extracted subtitles?

Only GeekLink. The others stop at the original-language SRT (or images). GeekLink translates in-app with Claude 3.5 Haiku, GPT-4o, GPT-4o mini, or DeepSeek, using context across lines, and can burn the translated subtitles back into the video.

Should I use VideoSubFinder or VideOCR?

VideOCR if you want one program and one step — it detects and OCRs in a single run. VideoSubFinder if you want maximum control and quality: it produces the cleanest possible text images and precise timing, then you OCR them with RapidVideOCR or Subtitle Edit. Same platforms (Windows/Linux), different philosophies.

Why not just use Google Lens or Tesseract directly?

They're OCR engines, not video tools — they read single images. Extracting subtitles from video also requires finding which frames contain text, de-duplicating lines across frames, and building timestamps. That video layer is exactly what VideOCR, VSE, VideoSubFinder, and GeekLink provide on top of an engine.

Related Articles