返回目录
开源项目AI 视频增强类新手

Video-subtitle-extractor (VSE):视频硬字幕提取为 srt 外挂字幕

VSE 是一款基于深度学习的视频硬字幕提取软件,本地完成关键帧提取、字幕区域检测与文本识别,无需接入第三方 OCR API,可批量生成 srt/txt 字幕文件,支持 87 种语言与快速/自动/精准三种模式,支持 CPU、CUDA、DirectML、ONNX 四种运行方式。

0 次阅读2026/09/14 发布
Video-subtitle-extractor (VSE):视频硬字幕提取为 srt 外挂字幕 来源图片

社区作者 · zZz

它解决什么问题

Video-subtitle-extractor(简称 VSE)是一款将视频中的硬字幕提取为外挂字幕文件(srt 格式)的软件,整体流程基于深度学习框架实现,主要功能包括:提取视频中的关键帧、检测视频帧中文本的所在位置、识别视频帧中文本的内容、过滤非字幕区域的文本、去除水印/台标文本/原视频硬字幕(可配合 video-subtitle-remover,即 VSR 使用)、去除重复字幕行并生成 srt 字幕文件或 txt 文本文件,支持视频字幕批量提取。

语言支持:简体中文(中英双语)、繁体中文、英文、日语、韩语、越南语、阿拉伯语、法语、德语、俄语、西班牙语、葡萄牙语、意大利语等 87 种语言的字幕提取。

三种识别模式:

建议优先使用快速/自动模式,如果前两种模式存在较多丢字幕轴情况时,再使用精准模式。

  • 快速(推荐):使用轻量模型,快速提取字幕,可能丢少量字幕、存在少量错别字。
  • 自动(推荐):自动判断模型,CPU 下使用轻量模型;GPU 下使用精准模型,提取字幕速度较慢,可能丢少量字幕、几乎不存在错别字。
  • 精准(不推荐):使用精准模型,GPU 下逐帧检测,不丢字幕,几乎不存在错别字,但速度非常慢。

项目特色:采用本地 OCR 识别,无需设置调用任何 API,不需要接入百度、阿里等在线 OCR 服务即可本地完成文本识别;支持 GPU 加速,GPU 加速后可获得更高的准确率与更快的提取速度。

识别模式与引擎对应关系:快速模式(有/无 GPU、迷你 OCR 模型尺寸、字幕检测引擎 VideoSubFinder);自动模式(有 GPU 用大模型、无 GPU 用迷你模型,字幕检测引擎均为 VideoSubFinder,推荐);精准模式(有/无 GPU、大模型、字幕检测引擎 VSE,非常慢)。Windows/Linux/MacOS 环境下字幕检测引擎均为 VideoSubFinder。

使用说明:点击【打开】后选择视频文件,调整字幕区域,点击【运行】;打开文件时选择单个视频为单文件提取,选择多个视频为批量提取,批量提取需确保每个视频的分辨率、字幕区域保持一致。如需去除水印文本或替换特定文本,可编辑 backend/configs/typoMap.json 文件,加入要替换或去除的内容,例如将“威筋”替换为“威胁”,将“性感荷官在线发牌”替换为空字符串即删除该文本。

重要注意事项:视频以及程序路径请不要带中文和空格,否则可能出现未知错误(如 D:\下载\vse\运行程序.exe 路径含中文、E:\study\kaoyan\sanshang youya.mp4 路径含空格均不可行)。可直接下载压缩包解压运行(下载地址见 Release),如果不能运行再按源码安装教程使用 conda/虚拟环境运行。NVIDIA 官方提供了各 GPU 型号计算能力列表,可参考 CUDA GPUs 查看 GPU 适合哪个 CUDA 版本;NVIDIA 50 系显卡需要 CUDA 12.8.

0 及以上版本,但 Paddle 3.3.1 目前仍未支持,建议使用 DirectML 通用版本。

配图说明:配图 1 为 VSE Logo(design/icon_1024.png);配图 2、配图 3 为界面与运行效果演示(design/demo.png、design/demo.gif);配图 4 为赞助相关图片(design/sponsor.png)。

使用问题可加 QQ 群讨论:210150985(已满)、806152575(已满)、816881808(已满)、295894827;改进意见可在 ISSUES 和 DISCUSSION 中提出。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

一、准备环境

  1. 安装 Python:请确保已经安装 Python 3.12+。
  • Windows 用户可前往 Python 官网下载并安装 Python。

MacOS 用户可使用 Homebrew 安装:

可复制命令
brew install [email protected]
  • Linux 用户可使用包管理器安装,例如 Ubuntu/Debian:sudo apt update && sudo apt install python3.12 python3.12-venv python3.12-dev
  1. 安装依赖文件:请使用虚拟环境管理项目依赖,避免与系统环境冲突。

(1)创建虚拟环境并激活

(1)创建虚拟环境并激活
python -m venv videoEnv
  • Windows:videoEnv\Scripts\activate
  • MacOS/Linux:source videoEnv/bin/activate

步骤 3 · 切换到源码所在目录:

可复制命令
cd <源码所在目录>

例如源代码放在 D 盘 tools 文件夹下,文件夹名为 video-subtitle-extractor,则输入

例如源代码放在 D 盘 tools 文件夹下,文件夹名为 video-subtitle-extractor,则输入
cd D:/tools/video-subtitle-extractor-main

二、安装合适的运行环境(四选一) 本项目支持 CUDA(NVIDIA 显卡加速)、CPU(无 GPU)、DirectML(AMD、Intel 等 GPU/APU 加速)、ONNX 四种运行模式。

(1)CUDA(NVIDIA 显卡用户) 请确保 NVIDIA 显卡驱动支持所选 CUDA 版本;推荐 CUDA 11.8,对应 cuDNN 8.6.0。

Windows:从 CUDA 11.8 下载页获取安装包。 Linux:

  • 安装 CUDA:
命令
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

sudo sh cuda_11.8.0_520.61.05_linux.run MacOS 不支持 CUDA。

  • 安装 cuDNN(CUDA 11.8 对应 cuDNN 8.6.0):Windows 与 Linux 分别下载 cuDNN 8.6.0,安装方法参考 NVIDIA 官方文档。
  • 安装 PaddlePaddle GPU 版本(CUDA 11.8):
命令
pip install paddlepaddle-gpu==3.3.1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
命令
pip install -r requirements.txt

(2)DirectML(AMD、Intel 等 GPU/APU 加速卡用户) 适用于 Windows 设备的 AMD/NVIDIA/Intel GPU。

命令
pip install paddlepaddle==3.3.1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
命令
pip install -r requirements.txt
命令
pip install -r requirements_directml.txt

(3)ONNX(适合 macOS、AMD ROCm 等环境加速用户,基础环境与 DirectML 方式一致,未测试) 使用这个方式部署请勿反馈 Issues;适用于 Linux 或 macOS 设备的 AMD/Metal GPU/Apple Silicon GPU。

命令
pip install paddlepaddle==3.3.1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
命令
pip install -r requirements.txt

阅读文档 https://onnxruntime.ai/docs/execution-providers/

根据你的设备选择合适的执行后端,参考 requirements_directml.txt 文件修改成合适你环境的依赖

例如:requirements_coreml.txt 中

paddle2onnx==1.3.1

onnxruntime-coreml==1.13.1

命令
pip install -r requirements_coreml.txt

(4)CPU 运行(无 GPU 加速) 适用于没有 GPU 或不希望使用 GPU 的情况,直接安装 CPU 版本 PaddlePaddle:

命令
pip install paddlepaddle==3.3.1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
命令
pip install -r requirements.txt

三、运行程序(首次运行)

运行图形化界面版本(GUI):

可复制命令
python gui.py

运行命令行版本(CLI):

可复制命令
python ./backend/main.py

首次使用:点击【打开】后选择视频文件,调整字幕区域,点击【运行】;选择单个视频为单文件提取,选择多个视频为批量提取,批量提取需确保每个视频的分辨率、字幕区域保持一致。

四、常见问题与解决方案

  1. 运行不正常/没有结果/cuda 及 cudnn 问题:根据自己的显卡型号、显卡驱动版本,安装对应的 cuda 与 cudnn。
  1. 7z 文件解压错误:升级 7-zip 解压程序到最新版本。
  1. 路径问题:视频以及程序路径请不要带中文和空格,否则可能出现未知错误。
  1. 去除水印文本/替换特定文本:编辑 backend/configs/typoMap.json,加入要替换或去除的内容(例如将“威筋”替换为“威胁”,将“性感荷官在线发牌”替换为空以删除)。
  1. 显卡兼容:NVIDIA 50 系显卡需要 CUDA 12.8.0 及以上版本,但 Paddle 3.3.1 目前仍未支持,建议使用 DirectML 通用版本。
  1. 直接下载压缩包解压运行(下载地址见 Release),如果不能运行再按上述教程尝试源码安装虚拟环境运行。

来源教程配图

VSE Logo
配图 1 · VSE Logo查看原图
demo.png
配图 2 · demo.png查看原图
demo.gif
配图 3 · demo.gif查看原图
教程配图
配图 4 · 教程配图查看原图

适用场景

从没有字幕文件的视频中提取硬字幕并生成 srt 外挂字幕
为多语言视频(87 种语言)批量提取字幕
便于翻译与二次加工
批量处理同一分辨率
同一字幕区域的多集视频
通过 typoMap.json 去除水印/台标文本或替换识别错别字
配合 video-subtitle-remover (VSR) 去除原视频硬字幕
在无网络或数据不外传场景下使用本地 OCR 完成字幕识别
为视频剪辑
字幕组
学习资料整理提供字幕文本(srt/txt)