Skip to content

用 VideOCR 从视频里抠硬字幕

约 878 字大约 3 分钟

工具OCR字幕教学

2026-07-19

最近想拿一些英语视频当教学材料,需要把字幕提取出来给 AI 喂。以前一直用 网易见外 做语音转写,但结果很糟糕——专有名词乱拼、标点瞎加、断句完全看心情,每段都得手动过一遍。

关键是:这些视频本来就带着内嵌字幕,根本不需要语音识别,只需要把画面里的字读出来就行了。所以问题变成了视频 OCR

翻了一圈,找到 VideOCR — 一个专门干这事的小工具。

VideOCR 是什么

一个带 GUI 的视频硬字幕提取工具,背后的 OCR 引擎是 PaddleOCR(百度开源),支持 200+ 种语言。也可以切换到 Google Lens 模式,利用云端做文字识别,速度更快。

有 Windows 版和 Linux 版,也提供了 Docker 镜像,不想装环境的话可以直接拉容器跑。

为什么它比语音识别好

语音转写(ASR)的问题是它只能字幕内容,遇到口音、背景音乐、多人重叠说话,基本靠不住。而内嵌字幕本身就是文本的精确呈现,OCR 直接读画面,不会有 ASR 那种"听错了"的错。

网易见外(ASR)VideOCR
识别对象语音画面字幕
正确率受口音/噪音/语速影响大受画质/字体影响,字幕清晰时几乎 100%
后处理经常要改几乎不用改
语言中英为主200+ 种
本地运行❌ 必须上传✅ 纯本地/自托管

怎么用

GUI 版最直观:导入视频,拖动时间轴定位字幕区域,画一个选框框住字幕行(左右留一点余量),点击 Run 就行了。输出是标准的 .srt 文件,可以直接拖进剪辑软件或作为 AI 上下文。

CLI 版适合批量处理:

.\videocr-cli.exe \
  --video_path "lecture.mp4" \
  --output "lecture.srt" \
  --lang en \
  --time_start "18:40" \
  --use_gpu true

关键参数:

  • --lang:字幕语言,PaddleOCR 支持 200+ 种
  • --ssim_threshold:帧相似度阈值,值越低跳过的重复帧越多,速度越快。字幕区域选取精确的话,调到 85 都没问题
  • --frames_to_skip:每隔几帧采样一次,想要精确时间戳就设 0
  • --ocr_enginepaddleocr(本地)或 google_lens(在线,更快)

Docker 用户:

docker run --rm -it --gpus all \
  -v /path/to/videos:/data \
  ghcr.io/timminator/videocr-cli-gpu-cuda12.9:latest \
  --video_path /data/lecture.mp4 \
  --output /data/lecture.srt \
  --use_gpu true

一些细节经验

  1. 选框不要贴着字 — 上下留点缓冲区,OCR 准确率更高;但选框也不要太大,不然会框进背景干扰
  2. PaddleOCR 跑 CPU 很慢 — 有独显一定开 --use_gpu;没独显用 Google Lens 模式
  3. 后处理补空格--post_processing 参数会修复 PaddleOCR 常见的缺空格问题(目前支持英/西/葡/德/意/法)
  4. 中文简繁 — 有 --normalize_to_simplified_chinese 参数,繁体自动转简体
  5. 亮度阈值 — 白字字幕可以设 --brightness_threshold 把暗部涂黑,提升识别效果

适合什么场景

  • 教学视频:把课堂录像的字幕提取出来,给 AI 做语料分析或生成练习题
  • 外语影视:下载带内嵌字幕的外语片,提取字幕做精读 / 查词 / 对照翻译
  • 演讲稿转文字:带字幕的 TED 类视频,一键出稿

只要视频本身有清晰的硬字幕,VideOCR 就是最直接的解法,比语音转写省心太多了。