登录
video-subtitle-extractor视频字幕提取器 全智能加速优化版 构建by科哥
一键提取视频字幕 加速优化
0
0/小时
v1.1

一句指令开始使用说明:

1、先打开终端;

2、输入如下指令: cd /root/video-subtitle-extractor && bash smart_run.sh test/test_cn.mp4(提取字幕的视频路径)

3、然后回车开始执行,等待。字幕txt,srt文件会在与视频路径一起同名输出。

cd /root/video-subtitle-extractor && bash smart_run.sh test/test_cn.mp4

视频字幕提取器 - 小白使用手册

🎯 一句话介绍:这是一个能把视频里"烧"进去的字幕提取出来,变成可编辑的文本文件的工具。


📖 目录

  1. 这个工具是干什么的?
  2. 我需要什么电脑配置?
  3. 安装步骤(超详细)
  4. 使用方法
  5. 常见问题解答
  6. 视频教程

1. 这个工具是干什么的?

🤔 什么是"硬字幕"?

想象一下,你下载了一个视频,字幕是直接"印"在画面上的,就像照片上的水印一样,无法关闭或编辑。这种字幕就叫硬字幕(也叫内嵌字幕)。

┌─────────────────────────────────────┐
│                                     │
│          视频画面                   │
│                                     │
│                                     │
│  ┌───────────────────────────────┐ │
│  │  这是硬字幕,无法关闭        │ │ ← 硬字幕(烧进画面)
│  └───────────────────────────────┘ │
└─────────────────────────────────────┘

✨ 这个工具能做什么?

本工具可以:

  1. 识别视频中的硬字幕 - 自动找到字幕在哪里
  2. 提取成文本文件 - 把字幕变成可编辑的文本
  3. 生成带时间轴的SRT文件 - 可以重新挂载到视频上
  4. 支持87种语言 - 中文、英文、日文、韩文...都能识别

💡 使用场景

  • ✅ 提取外语视频字幕用于翻译
  • ✅ 保存视频教程的文字笔记
  • ✅ 提取电影台词用于学习
  • ✅ 制作多语言字幕版本
  • ✅ 字幕二次编辑和排版

2. 我需要什么电脑配置?

⚙️ 最低配置

项目要求说明
操作系统Windows 10/11 或 LinuxMac也可以但需要额外配置
CPU4核以上可以运行,但会比较慢
内存8GB以上最少8GB,推荐16GB
硬盘空间5GB以上存放程序和模型文件
显卡无要求CPU模式就能跑

🚀 推荐配置(速度快10倍+)

项目要求说明
显卡NVIDIA显卡(GTX 1060及以上)必须是NVIDIA,AMD不支持
显存4GB以上6GB更好,8GB最佳
CUDACUDA 11.7 或 11.8需要单独安装

⚠️ 重要提示

  • 如果你有NVIDIA显卡,强烈建议使用GPU版本,速度差距巨大!
  • AMD显卡或Intel核显无法使用GPU加速,只能用CPU模式

3. 安装步骤(超详细)

📦 步骤一:安装Python环境

Windows用户:

  1. 下载Miniconda

  2. 安装Miniconda

    • 双击下载的安装包
    • 勾选 Add Miniconda3 to my PATH environment variable(重要!)
    • 一路点击"Next"直到安装完成
  3. 验证安装

    • Win + R 键,输入 cmd,按回车
    • 在黑色窗口输入:
      python --version
      
    • 如果显示 Python 3.x.x,说明安装成功

Linux用户:

# 1. 下载Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 2. 安装
bash Miniconda3-latest-Linux-x86_64.sh

# 3. 重启终端或执行
source ~/.bashrc

# 4. 验证
python --version

📥 步骤二:下载本项目

方法1:直接下载(推荐新手)

  1. 访问项目主页:https://github.com/YaoFANGUK/video-subtitle-extractor
  2. 点击绿色的 Code 按钮
  3. 点击 Download ZIP
  4. 解压到纯英文路径(⚠️ 重要!路径不能有中文或空格)
    • ✅ 好的路径:C:\tools\video-subtitle-extractor
    • ❌ 坏的路径:C:\我的文档\字幕提取器 (有中文)
    • ❌ 坏的路径:C:\Program Files\video subtitle (有空格)

方法2:使用Git(推荐熟悉命令行的用户)

git clone https://github.com/YaoFANGUK/video-subtitle-extractor.git
cd video-subtitle-extractor

🔧 步骤三:创建虚拟环境

  1. 打开命令行

    • Windows:按 Win + R,输入 cmd,回车
    • Linux:打开终端(Terminal)
  2. 进入项目目录

    # Windows示例(替换成你的实际路径)
    cd C:\tools\video-subtitle-extractor
    
    # Linux示例
    cd /home/username/video-subtitle-extractor
    
  3. 创建虚拟环境

    conda create -n videoEnv python=3.8
    
    • 看到提示 Proceed ([y]/n)? 时,输入 y 并回车
    • 等待安装完成(需要1-2分钟)
  4. 激活虚拟环境

    conda activate videoEnv
    
    • 成功后,命令行前面会显示 (videoEnv)

📦 步骤四:安装依赖包

方案A:CPU版本(所有电脑都能用)

# 确保已激活环境(命令行前面有 (videoEnv))
pip install -r requirements.txt

方案B:GPU版本(有NVIDIA显卡)

前提条件:需要先安装CUDA和cuDNN

  1. 安装CUDA 11.7

  2. 安装cuDNN 8.4.1

  3. 安装GPU版本的依赖

    # 先安装GPU版本的PaddlePaddle
    python -m pip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
    
    # 再安装其他依赖
    pip install -r requirements_gpu.txt
    

💡 小贴士:如果觉得GPU版本安装太复杂,用CPU版本也完全可以,只是速度慢一些而已。


✅ 步骤五:验证安装

运行以下命令检查是否安装成功:

python gui.py

如果弹出图形界面,说明安装成功!🎉


4. 使用方法

🖥️ 方法一:图形界面(推荐新手)

步骤1:启动程序

# 1. 激活环境
conda activate videoEnv

# 2. 进入项目目录
cd /path/to/video-subtitle-extractor

# 3. 启动GUI
python gui.py

步骤2:设置参数

界面说明:

┌────────────────────────────────────────────────────────────┐
│  Video Subtitle Extractor                                  │
├────────────────────────────────────────────────────────────┤
│                                                            │
│  视频路径:[___________________] [浏览...]  ← 点这里选视频 │
│                                                            │
│  字幕语言:[中文 ▼]  ← 选择字幕的语言                     │
│                                                            │
│  提取模式:                                                │
│    ○ 快速模式 (fast)     - 速度最快,可能漏字幕          │
│    ● 自动模式 (auto)     - 推荐,平衡速度和准确度  ← 推荐 │
│    ○ 精准模式 (accurate) - 最准确,速度最慢              │
│                                                            │
│  字幕区域:                                                │
│    ○ 自动检测   ← 推荐新手                               │
│    ○ 手动选择                                             │
│                                                            │
│  [开始提取]  [取消]                                        │
│                                                            │
└────────────────────────────────────────────────────────────┘

步骤3:选择视频文件

  1. 点击"浏览..."按钮
  2. 找到你的视频文件(支持MP4、AVI、MKV等)
  3. 选中后点击"打开"

步骤4:选择字幕语言

从下拉菜单选择:

  • 简体中文
  • 繁体中文
  • English
  • 日本語
  • 한국어
  • 等等...(共87种语言)

步骤5:开始提取

  1. 点击"开始提取"按钮
  2. 等待处理(会显示进度条)
  3. 处理完成后,字幕文件会保存在 outputs/ 目录下

⚡ 方法二:智能命令行(最快速度)

如果你有NVIDIA显卡,使用智能脚本可以获得最快速度

Linux用户:

# 1. 激活环境
conda activate videoEnv

# 2. 运行智能脚本
./smart_run.sh /path/to/your/video.mp4

Windows用户:

抱歉,智能脚本目前只支持Linux。Windows用户请使用GUI或普通命令行。

智能脚本的优势:

  • 自动检测字幕区域 - 无需手动选择
  • 显存自适应优化 - 榨干GPU性能,防止爆显存
  • 实时进度显示 - 清楚看到处理进度
  • 速度提升2-5倍 - 相比默认配置

运行效果预览:

╔═══════════════════════════════════════════════════════════════╗
║                                                               ║
║      智能视频字幕提取器 - Smart Subtitle Extractor          ║
║                                                               ║
║   • 自动检测字幕区域                                         ║
║   • GPU显存自适应优化                                        ║
║   • 极致速度提取(防OOM)                                    ║
║                                                               ║
╚═══════════════════════════════════════════════════════════════╝

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  第一阶段:环境准备与验证
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[INFO] 视频路径: /root/video-subtitle-extractor/test/test_cn.mp4
[SUCCESS] 视频文件验证通过
[INFO] 正在分析视频...
[SUCCESS] 视频信息获取成功
  • 分辨率: 1920x1080
  • 帧数: 434
  • 帧率: 25.00 fps
  • 时长: 17.4 秒

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  第二阶段:GPU显存智能分析与参数优化
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[INFO] GPU型号: Tesla T4
[INFO] 总显存: 15109 MB
[INFO] 已用显存: 0 MB
[INFO] 可用显存: 15109 MB
[SUCCESS] 显存充足,开始计算最优参数...

  ╔════════════════════════════════════════════════════════╗
  ║           智能优化参数(基于15109MB显存)             ║
  ╠════════════════════════════════════════════════════════╣
  ║  REC_BATCH_NUM      : 55 (原值: 40)
  ║  MAX_BATCH_SIZE     : 68 (原值: 50)
  ║  GPU_MEM            : 8476 MB (原值: 8000)
  ║  EXTRACT_FREQUENCY  : 5 (原值: 5)
  ╠════════════════════════════════════════════════════════╣
  ║  预估显存占用       : ~12400 MB
  ║  安全边界           : 0.8x (预留20%)
  ║  预期速度提升       : 1.4x (相比默认配置)
  ╚════════════════════════════════════════════════════════╝

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  第五阶段:极速字幕提取
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[INFO] 开始提取字幕...
[INFO] 正在加载OCR模型和处理视频帧...

  ✓ 使用GPU模式
  → 提取帧数: 87
  ⟳ 识别中... 10%
  ⟳ 识别中... 25%
  ⟳ 识别中... 50%
  ⟳ 识别中... 75%
  ⟳ 识别中... 100%
  ✓ 识别完成

[SUCCESS] 字幕提取完成!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
              📁 字幕文件输出路径 (Output Files)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  [SRT字幕文件]
  /root/video-subtitle-extractor/outputs/test_cn_20251114_123045/subtitle/raw_vsf.srt
  大小: 1234 bytes

  [TXT纯文本文件]
  /root/video-subtitle-extractor/outputs/test_cn_20251114_123045/subtitle/raw.txt
  大小: 567 bytes

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

╔═══════════════════════════════════════════════════════════════╗
║                     🎉 提取成功完成!                         ║
╚═══════════════════════════════════════════════════════════════╝

🎯 方法三:普通命令行(兼容性最好)

如果智能脚本无法运行,使用这个方法:

# 1. 激活环境
conda activate videoEnv

# 2. 运行程序
python backend/main.py

然后按提示输入:

  1. 视频路径(例如:/path/to/video.mp4
  2. 字幕区域(例如:842 1069 72 1368

💡 如何知道字幕区域?

  • 使用GUI的"预览"功能,手动框选字幕区域
  • 使用智能脚本,会自动检测
  • 或者试试常用值:0 视频高度 0 视频宽度(提取整个底部区域)

5. 常见问题解答

❓ 安装问题

Q1: 提示"不是内部或外部命令"

原因:Python或conda没有添加到系统PATH

解决方法

  1. 重新安装Miniconda,记得勾选"Add to PATH"
  2. 或者手动添加到环境变量:
    • Windows:我的电脑 → 属性 → 高级系统设置 → 环境变量
    • 添加Miniconda安装路径到PATH

Q2: 提示"pip不是最新版本"

解决方法

python -m pip install --upgrade pip

Q3: 安装依赖时报错"Failed building wheel"

解决方法

# 安装Microsoft Visual C++ 编译工具(Windows)
# 下载地址:https://visualstudio.microsoft.com/visual-cpp-build-tools/

# 或者使用conda安装
conda install -c conda-forge shapely

❓ 运行问题

Q4: 启动后没有识别到字幕

可能原因

  1. ❌ 字幕区域选择不正确
  2. ❌ 字幕语言选择错误
  3. ❌ 字幕太小或模糊

解决方法

  1. 使用GUI的"预览"功能,确认字幕区域
  2. 检查语言设置是否正确
  3. 提高视频清晰度或使用精准模式

Q5: 提示"CUDA out of memory"(显存不足)

解决方法

  1. 关闭其他占用GPU的程序
  2. 降低batch size:
    # 编辑 backend/config.py
    REC_BATCH_NUM = 10  # 改小这个值
    
  3. 或者使用CPU模式

Q6: 提取速度非常慢

可能原因

  • 使用了CPU模式
  • batch size太小
  • 视频分辨率太高

解决方法

  1. 安装GPU版本(速度提升10倍+)
  2. 使用智能脚本(自动优化参数)
  3. 使用"快速模式"而非"精准模式"

Q7: 提取的字幕有错别字

这是正常的!OCR识别不可能100%准确。

解决方法

  1. 使用精准模式提高识别率
  2. 手动编辑生成的字幕文件
  3. 添加自定义错词映射:
    // 编辑 backend/configs/typoMap.json
    {
      "l'm": "I'm",
      "威筋": "威胁"
    }
    

❓ 其他问题

Q8: 支持哪些视频格式?

支持几乎所有常见格式:

  • ✅ MP4
  • ✅ AVI
  • ✅ MKV
  • ✅ MOV
  • ✅ FLV
  • ✅ WMV
  • 等等...

Q9: 生成的字幕文件在哪里?

在项目目录的 outputs/ 文件夹下:

outputs/
└── 视频名称_时间戳/
    ├── frames/           ← 提取的视频帧
    └── subtitle/         ← 字幕文件
        ├── raw.txt       ← 纯文本字幕
        └── raw_vsf.srt   ← 带时间轴的SRT字幕

Q10: SRT字幕如何使用?

SRT字幕可以:

  1. 用PotPlayer等播放器挂载到视频上
  2. 导入到剪辑软件(剪映、PR等)
  3. 用字幕编辑器修改
  4. 上传到视频平台作为外挂字幕

6. 视频教程

📺 快速上手视频(5分钟)

TODO: 可以录制一个简短的操作视频放在这里

🎬 完整教程视频(15分钟)

TODO: 详细讲解每个功能的使用


7. 进阶使用

🔧 配置文件说明

配置文件位置:backend/config.py

重要参数

# 每秒提取帧数(值越大越精确,但速度越慢)
EXTRACT_FREQUENCY = 5  # 推荐: 3-5

# 每批次OCR识别文本框数量(取决于GPU显存)
REC_BATCH_NUM = 40     # GPU 4GB: 20, 8GB: 40, 12GB+: 60

# 置信度阈值(低于此值的识别结果会被丢弃)
DROP_SCORE = 0.75      # 推荐: 0.7-0.8

# 文本相似度阈值(去重时判断是否为同一字幕)
THRESHOLD_TEXT_SIMILARITY = 0.8  # 推荐: 0.75-0.85

📝 自定义错词替换

编辑 backend/configs/typoMap.json

{
  "l'm": "I'm",
  "威筋": "威胁",
  "性感荷官在线发牌": ""
}
  • 键:要替换的文本
  • 值:替换后的文本(空字符串表示删除)

8. 获取帮助

💬 社区支持

  • QQ群1:210150985
  • QQ群2:816881808

🐛 报告问题

如果遇到Bug,请到GitHub提Issue: https://github.com/YaoFANGUK/video-subtitle-extractor/issues

提Issue时请包含

  1. 操作系统版本
  2. Python版本
  3. 错误截图或日志
  4. 复现步骤

📚 更多文档


9. 小贴士 💡

⚡ 提升速度

  1. 使用GPU版本:速度提升10-20倍
  2. 使用智能脚本:自动优化参数,再提升2-5倍
  3. 降低提取频率EXTRACT_FREQUENCY = 3
  4. 使用快速模式:牺牲一点准确度换速度

🎯 提高准确度

  1. 使用精准模式:不会漏掉任何字幕
  2. 提高视频清晰度:使用高清视频
  3. 精确选择字幕区域:不要包含多余的画面
  4. 选择正确的语言:语言选错会严重影响识别率

🔍 字幕区域选择技巧

方法1:使用GUI预览(推荐)

  1. 启动GUI后,点击"预览"按钮
  2. 视频会暂停在有字幕的画面
  3. 用鼠标框选字幕区域
  4. 确认后自动填入坐标

方法2:手动估算

字幕通常在屏幕底部,可以尝试:

对于1920x1080的视频:
左: 0
上: 900(底部10%区域)
右: 1920
下: 1080

对于1280x720的视频:
左: 0
上: 600
右: 1280
下: 720

方法3:使用智能脚本(自动检测)

智能脚本会自动分析视频,找到字幕区域,无需手动选择。


10. 常见使用场景案例

场景1:提取美剧字幕学英语

# 1. 准备高清视频(1080p最佳)
# 2. 使用智能脚本
./smart_run.sh /path/to/friends_s01e01.mp4

# 3. 得到SRT字幕文件
# 4. 用记事本打开,复制单词到Anki

场景2:提取B站视频字幕

# 1. 使用下载工具下载B站视频(如you-get)
you-get https://www.bilibili.com/video/BV1xx411c7mD/

# 2. 提取字幕
./smart_run.sh downloaded_video.mp4

# 3. 整理成笔记

场景3:制作双语字幕

# 1. 先提取原语言字幕
./smart_run.sh movie_cn.mp4  # 中文字幕

# 2. 翻译SRT文件(用字幕编辑器)
# 3. 合并成双语字幕

11. 常用命令速查表

# 激活环境
conda activate videoEnv

# 启动GUI
python gui.py

# 智能脚本(Linux)
./smart_run.sh /path/to/video.mp4

# 普通命令行
python backend/main.py

# 退出环境
conda deactivate

# 查看GPU状态
nvidia-smi

# 更新项目
git pull
pip install -r requirements.txt --upgrade

12. 故障排除流程图

开始
能启动程序吗?
  ├─ 否 → 检查Python安装 → 重新安装Miniconda
  └─ 是 ↓

有GPU吗?
  ├─ 是 → 检查CUDA → 安装CUDA 11.7 + cuDNN
  └─ 否 → 使用CPU版本 ↓

能识别到字幕吗?
  ├─ 否 → 检查字幕区域 → 使用GUI预览功能
  │       检查语言设置 → 确认语言选择正确
  │       提高清晰度 → 使用高清视频
  └─ 是 ↓

识别准确吗?
  ├─ 否 → 使用精准模式
  │       添加错词映射
  │       手动校对
  └─ 是 ↓

完成!🎉

13. 附录

A. 支持的语言列表

中文简体 (ch)          英语 (en)             日语 (japan)
中文繁体 (chinese_cht) 韩语 (korean)         法语 (french)
德语 (german)          俄语 (ru)             西班牙语 (es)
葡萄牙语 (pt)          阿拉伯语 (ar)         意大利语 (it)
荷兰语 (dutch)         泰语 (th)             越南语 (vi)
印地语 (hi)            土耳其语 (tr)         波兰语 (pl)
等等... 共87种语言

完整列表请查看 backend/config.py 中的 LANG_DICT

B. 提取模式对比

模式速度准确度显存占用适用场景
快速⭐⭐⭐⭐⭐⭐⭐⭐快速预览、低配置电脑
自动⭐⭐⭐⭐⭐⭐⭐⭐日常使用(推荐)
精准⭐⭐⭐⭐⭐⭐⭐专业字幕制作

C. 性能参考数据

测试视频:1080p,17秒,434帧

配置提取模式耗时速度
Intel i7 (CPU)快速~120秒3.6帧/秒
Intel i7 (CPU)精准~300秒1.4帧/秒
GTX 1060 (GPU)自动~40秒10.9帧/秒
RTX 3080 (GPU)自动~15秒28.9帧/秒
Tesla T4 + 智能脚本自动~10秒43.4帧/秒

🎉 结语

恭喜你!读到这里,你已经掌握了视频字幕提取器的所有使用方法。

如果这个工具帮到了你,请给项目点个⭐Star: https://github.com/YaoFANGUK/video-subtitle-extractor

祝使用愉快!🚀

镜像信息
@科哥AIGC
科哥AIGC认证作者
已使用2
运行时长
0 H
镜像大小
30GB
最后更新时间
2025-11-17
支持卡型
3080TiRTX50系RTX40系48G RTX40系2080Ti30902080A800H20P40A100
+11
框架版本
PyTorch-2.0
CUDA版本
11.8
应用
JupyterLab: 8888
版本
v1.1
2025-11-17
PyTorch:2.0 | CUDA:11.8 | 大小:30.00GB