简体中文 | English
video-subtitle-extractor是一款将视频中的硬字幕提取为外挂字幕文件(srt格式)的软件。 主要实现了以下功能:
- 提取视频中的关键帧
- 检测视频帧中文本的所在位置
- 识别视频帧中文本的内容
- 过滤非字幕区域的文本
- 去除重复字幕行,去除水印(台标)文本
- 生成srt字幕文件
- 多语言:支持中文、日语、韩语、法语、德语字幕的提取
- 多模式:
- fast - 快速提取字幕但时间轴不准确
- accurate - 时间轴准确但提取速度较慢
下载地址:
-
Windows GPU版本:
-
Windows CPU版本:
-
MacOS CPU版本:
- 采用本地进行OCR识别,无需设置调用任何API,不需要接入百度、阿里等在线OCR服务即可本地完成文本识别
- 支持GPU加速,GPU加速后可以获得更高的准确率与更快的提取速度
- (CLI版本) 无需用户手动设置字幕区域,项目通过文本检测模型自动检测字幕区域
- (GUI版本) 图形化界面
点击【打开】后选择视频文件,调整字幕区域,点击【运行】
有任何改进意见请在ISSUES中提出
- GUI版:
- 点击查看视频教程 👇
PS: Google Colab只能运行CLI版本
https://www.anaconda.com/products/individual#Downloads
conda create --name videoEnv python=3.8
conda activate videoEnv
请确保你已经安装 python 3.8+
-
CPU用户 (mac用户) :
-
安装依赖:
pip install -r requirements.txt
-
-
GPU用户(有N卡): 要达到高精度的识别率请使用GPU版
-
安装CUDA 10.2和cuDNN 7.6.5
Linux用户
wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
sudo sh cuda_10.2.89_440.33.01_linux.run --override
1. 输入accept
2. 选中CUDA Toolkit 10.2(如果你没有安装nvidia驱动则选中Driver,如果你已经安装了nvidia驱动请不要选中driver),之后选中install,回车
3. 添加环境变量
在 ~/.bashrc 加入以下内容
# CUDA export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
使其生效
source ~/.bashrc
国内:cudnn-10.2-linux-x64-v7.6.5.32.tgz
国外:cudnn-10.2-linux-x64-v7.6.5.32.tgz
tar -zxvf cudnn-10.2-linux-x64-v7.6.5.32.tgz sudo cp ./cuda/include/* /usr/local/cuda-10.2/include/ sudo cp ./cuda/lib64/* /usr/local/cuda-10.2/lib64/ sudo chmod a+r /usr/local/cuda-10.2/lib64/* sudo chmod a+r /usr/local/cuda-10.2/include/*
Windows用户
cuda_10.2.89_441.22_win10.exe国内:cudnn-10.2-windows10-x64-v7.6.5.32.zip
国外:cudnn-10.2-windows10-x64-v7.6.5.32.zip
将cuDNN解压后的cuda文件夹中的bin, include, lib目录下的文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\ 对应目录下
-
安装paddlepaddle:
conda install -y paddlepaddle-gpu==2.1.0 cudatoolkit=10.2 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
如果安装cuda 10.2,请对应安装7.6.5的cuDNN, 请不要使用cuDNN v8.x 和 cuda 10.2的组合
-
安装其他依赖:
pip install -r requirements_gpu.txt
-
- 运行图形化界面版本(GUI)
python gui.py
- 运行命令行版本(CLI)
python main.py
解决方案:如果你使用的是3060/3070/3080等安培架构的显卡,请使用最新的paddlepaddle版本以及最新的cuda 11+
解决方案:https://zhuanlan.zhihu.com/p/260034241
_lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll'))
File "C:\Users\Flavi\anaconda3\envs\subEnv\lib\ctypes\__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。
解决方案:
- 卸载Shapely
pip uninstall Shapely -y
- 使用conda重新安装Shapely
conda install Shapely