mcpField
V
video-subtitle-remover

video-subtitle-remover

github.com/zrt-ai-lab创意与媒体29667 次安装14 周前更新
代码仓库

关于 video-subtitle-remover

video-subtitle-remover 是用于移除视频字幕的技能,面向需要处理视频文字的用户。它负责准备环境、运行处理脚本,并打开生成的无字幕视频。

主要功能

  1. 01准备代码、依赖和模型
  2. 02支持字幕及文字去除流程
  3. 03检测视频信息并估算处理时间
  4. 04后台运行长视频任务
  5. 05打开生成的无字幕视频

适用场景

  1. 01去除视频中的字幕
  2. 02去掉视频里的文字或水印
  3. 03处理较长的视频文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zrt-ai-lab/opencode-skills --skill video-subtitle-remover

安装后在 Claude Code 中输入/video-subtitle-remover确认已加载。

附带文件README.md

详细介绍

来自项目 README

视频字幕去除技能 (Video Subtitle Remover)

触发场景

当用户提到以下关键词时触发本技能:

  • "去字幕"、"去除视频字幕"
  • "去掉视频里的文字/水印"
  • "把这视频的字幕干掉"

工作流程

这是一个需要本地 GPU/Apple Silicon 加速的重型任务,你需要作为一个完整的执行器,从环境准备到执行全包揽。

第一阶段:环境检查与准备 (非常重要)

在首次运行前,必须检查环境并在用户机器上安装所需组件。工作目录约定为:~/.opencode/tools/video-subtitle-remover。

  1. 检查目录与代码 使用 bash 检查 ~/.opencode/tools/video-subtitle-remover/run_remove.py 是否存在。如果不存在,执行以下初始化操作:

    # 1. 创建工作目录
    mkdir -p ~/.opencode/tools/video-subtitle-remover/backend/models/{V4/ch_det,sttn}
    cd ~/.opencode/tools/video-subtitle-remover
    
    # 2. 拉取核心代码 (跳过模型文件)
    curl -sL "https://api.github.com/repos/YaoFANGUK/video-subtitle-remover/git/trees/main?recursive=1" | python3 -c "
    import sys, json, os, urllib.request
    data = json.load(sys.stdin)
    for item in data.get('tree', []):
        if item['type'] != 'blob': continue
        path = item['path']
        ext = os.path.splitext(path)[1].lower()
        if ext in {'.pth', '.onnx', '.pdiparams', '.pdmodel'} or '__pycache__' in path or item.get('size', 0) > 500000: continue
        
        os.makedirs(os.path.dirname(path) if os.path.dirname(path) else '.', exist_ok=True)
        url = f'https://raw.githubusercontent.com/YaoFANGUK/video-subtitle-remover/main/{path}'
        try:
            content = urllib.request.urlopen(url).read()
            with open(path, 'wb') as f: f.write(content)
        except: pass
    "
    
  2. 安装 Python 依赖

    pip3 install torch torchvision
    pip3 install filesplit==3.0.2 scikit-image pyclipper lmdb PyYAML omegaconf tqdm easydict scikit-learn pandas webdataset einops av shapely paddleocr paddle2onnx albumentations imgaug
    
  3. 下载并合并模型 (STTN 模式必需) 如果 backend/models/sttn/infer_model.pth 或 backend/models/V4/ch_det/inference.pdiparams 不存在,使用 curl 下载:

    cd ~/.opencode/tools/video-subtitle-remover/backend/models
    # 下载 STTN 模型
    curl -L -o sttn/infer_model.pth "https://raw.githubusercontent.com/YaoFANGUK/video-subtitle-remover/main/backend/models/sttn/infer_model.pth"
    
    # 下载并合并 PaddleOCR 文本检测模型 (3个分割包)
    curl -L -o V4/ch_det/inference_1.pdiparams "https://raw.githubusercontent.com/YaoFANGUK/video-subtitle-remover/main/backend/models/V4/ch_det/inference_1.pdiparams"
    curl -L -o V4/ch_det/inference_2.pdiparams "https://raw.githubusercontent.com/YaoFANGUK/video-subtitle-remover/main/backend/models/V4/ch_det/inference_2.pdiparams"
    curl -L -o V4/ch_det/inference_3.pdiparams "https://raw.githubusercontent.com/YaoFANGUK/video-subtitle-remover/main/backend/models/V4/ch_det/inference_3.pdiparams"
    curl -L -o V4/ch_det/fs_manifest.csv "https://raw.githubusercontent.com/YaoFANGUK/video-subtitle-remover/main/backend/models/V4/ch_det/fs_manifest.csv"
    curl -L -o V4/ch_det/inference.pdiparams.info "https://raw.githubusercontent.com/YaoFANGUK/video-subtitle-remover/main/backend/models/V4/ch_det/inference.pdiparams.info"
    curl -L -o V4/ch_det/inference.pdmodel "https://raw.githubusercontent.com/YaoFANGUK/video-subtitle-remover/main/backend/models/V4/ch_det/inference.pdmodel"
    
    # 使用 Python 合并
    python3 -c "from fsplit.filesplit import Filesplit; fs=Filesplit(); fs.merge(input_dir='V4/ch_det')"
    
  4. 注入修复代码与启动脚本 使用 edit 工具修改 backend/config.py:

    • 修复 Mac 的 MPS 设备支持 (device = torch.device('mps'))
    • 修复 FFMPEG_PATH 指向系统 ffmpeg (shutil.which('ffmpeg'))
    • 删除不必要的 LAMA 和 ProPainter 模型校验。

    并使用 write 工具生成 run_remove.py 启动脚本。

第二阶段:执行任务
  1. 提取信息与评估 获取用户提供的视频绝对路径,运行 ffprobe 或 ls -lh 获取帧数,给用户预报处理时间。

  2. 执行处理 运行处理脚本:

    export KMP_DUPLICATE_LIB_OK=True
    python3 ~/.opencode/tools/video-subtitle-remover/run_remove.py "<视频绝对路径>"
    

    注意:如果视频较长,务必使用 tmux 放后台跑。

  3. 结果交付 使用 open 命令为用户自动打开输出的 _no_sub.mp4 视频。

评论

支持 Markdown