Skip to content

lsuyu899-tech/VideoMind

Repository files navigation

VideoMind

VideoMind 是一个面向剪辑人员的本地视频素材知识库工具。

它的目标很直接:把散落在本地硬盘、RaiDrive、WebDAV、云盘挂载盘里的大量口播视频,批量转成带时间轴的字幕索引;之后剪辑人员可以通过关键词快速找到对应视频片段,并定位到原视频文件。

当前版本优先解决“找素材”这件事,不做 AI 一键成片。

适合谁使用

  • 手里有大量口播视频、课程视频、访谈视频、直播切片或短视频素材的剪辑团队。
  • 视频素材在本地电脑、NAS、RaiDrive、WebDAV 或云盘挂载盘中,可以被 Windows 资源管理器直接访问。
  • 想通过字幕关键词找素材,而不是靠人工翻文件夹、看封面、凭记忆找视频。
  • 团队人数不多,希望先用一台主机跑本地服务,局域网内多人访问。

核心能力

视频库管理

  • 选择一个本地文件夹或 RaiDrive 挂载目录。
  • 扫描目录下的视频文件。
  • 自动识别已经处理过的视频,避免重复处理。
  • 查看已接入的视频目录、处理进度和索引状态。
  • 打开原文件位置,方便回到资源管理器继续剪辑。

本地字幕识别

  • 使用本地 ASR 流程处理视频。
  • 为每个视频生成字幕片段。
  • 每条字幕片段保存开始时间、结束时间、字幕文本和原视频路径。
  • 支持断点式处理,已经处理过的视频不会重复跑。

字幕关键词搜索

  • 输入关键词搜索字幕内容。
  • 支持“命中任意一个词”和“同时命中所有词”。
  • 支持按工作目录筛选搜索范围。
  • 搜索结果会展示原视频、命中的字幕、时间段和关键词高亮。
  • 点击结果后可以预览原视频,并跳转到对应时间点。

素材采集

  • 在搜索结果中选择“采集片段”。
  • 已选片段会进入可拖动的悬浮条。
  • 可以批量确认采集,把多个视频片段剪切出来。
  • 支持片段前后补时,单位为秒,支持小数。
  • 可以选择已有素材库,也可以新建素材库。
  • 已采集片段按工作空间管理,方便后续剪辑使用。

当前版本不做什么

  • 不做 AI 一键成片。
  • 不做自动混剪成完整视频。
  • 不做复杂的画面语义理解。
  • 不上传整套几十 TB 视频到云端长期存储。
  • 不把任何云盘账号、AK/SK、Token 或私密配置写入仓库。

为什么先做字幕索引

口播素材最重要的信息通常是“说了什么”,而不是“画面长什么样”。

剪辑人员真正需要的是:

  • 这个人什么时候讲到了“新加坡留学”?
  • 哪个视频里提到了“预算”?
  • 有没有讲过“路径”“申请”“本科”“硕士”?
  • 找到之后能不能立刻定位到原视频和时间点?

所以 VideoMind 第一版把重点放在字幕、时间轴、关键词召回和素材定位上。等这条链路稳定后,再考虑语义搜索、画面标签和 AI 混剪。

数据保存方式

VideoMind 默认把索引数据保存在本地 SQLite 数据库中:

data/video_kb.sqlite

数据库会保存:

  • 视频文件路径
  • 文件大小、修改时间等去重信息
  • 字幕片段
  • 每段字幕的起止时间
  • 搜索索引
  • 素材库和已采集片段记录

视频原文件不会被复制进数据库。原视频仍然保留在你的本地磁盘、RaiDrive 或云盘挂载盘中。

快速启动

1. 准备 Python 环境

建议使用 Python 3.12。

项目已经支持使用本地虚拟环境运行:

python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements-local-asr.txt

2. 启动局域网服务

powershell -ExecutionPolicy Bypass -File scripts\start_lan_app.ps1

或直接运行:

.venv\Scripts\python.exe scripts\serve_app.py --db data\video_kb.sqlite --host 0.0.0.0 --port 8765

启动后访问:

http://127.0.0.1:8765

如果给局域网内其他成员使用,把 127.0.0.1 换成主机电脑的局域网 IP。

基本使用流程

  1. 打开“视频库”页面。
  2. 选择素材文件夹,例如本地目录或 RaiDrive 映射目录。
  3. 点击“导入”,等待扫描完成。
  4. 勾选待处理视频,点击“处理所选”。
  5. 处理完成后进入“搜索”页面。
  6. 输入关键词,查看命中的视频片段。
  7. 点击结果预览视频,确认片段是否可用。
  8. 点击“采集片段”,把需要的片段加入已选列表。
  9. 确认采集,把片段剪切到素材库工作空间。

更详细的中文说明见:

docs/user-guide-zh.md

项目结构

VideoMind
├─ scripts/
│  ├─ serve_app.py              # 本地 Web 应用入口
│  ├─ start_lan_app.ps1         # 团队局域网启动脚本
│  ├─ local_transcribe.py       # 本地转写脚本
│  └─ search_transcripts.py     # 字幕搜索脚本
├─ src/video_kb/
│  ├─ store.py                  # SQLite 数据存储
│  ├─ inventory.py              # 视频扫描和清单
│  ├─ local_asr.py              # 本地 ASR 封装
│  ├─ search.py                 # 字幕检索
│  └─ vtt.py                    # 字幕解析
├─ docs/
│  ├─ user-guide-zh.md          # 中文使用说明
│  ├─ diagnostics.md            # 日志和排查说明
│  └─ data-storage-and-dedup.md # 数据保存和去重设计
├─ tests/
└─ requirements-local-asr.txt

日志与排查

应用会记录处理任务、导入、采集、错误等诊断信息,方便后续排查问题。

相关说明见:

docs/diagnostics.md

隐私和安全

  • 仓库不会包含视频原文件。
  • 仓库不会包含本地数据库。
  • 仓库不会包含 .env、Token、AK/SK 或云盘凭证。
  • .gitignore 已默认排除 data/logs/.venv/、常见视频文件和数据库文件。

如果你要把项目部署给团队使用,建议把视频素材、数据库和日志都保留在团队自己的内网或受控机器上。

当前状态

这是一个本地优先的 MVP 版本,已经具备:

  • 视频目录导入
  • 本地视频字幕处理
  • 字幕关键词搜索
  • 原视频预览和时间轴定位
  • 素材片段采集
  • 素材库工作空间管理
  • 局域网团队访问启动方式

后续可以继续扩展:

  • 更好的 ASR 引擎配置
  • 更稳定的大批量队列处理
  • 语义搜索
  • 画面标签
  • 剪辑软件项目导出
  • AI 混剪工作流

适用边界

VideoMind 适合先在小团队、本地素材库、局域网环境中验证工作流。

如果要处理几十 TB 视频,建议分批导入、分批处理,并先用小目录验证识别质量、处理速度和机器稳定性。

About

本地视频字幕检索与素材片段采集工具,面向剪辑团队的口播素材知识库

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors