/Windrecorder

Windrecorder is a memory search app by records everything on your screen in small size, to let you rewind what you have seen, query through OCR text or image description, and get activity statistics. Developed as MacOS App Rewind.ai's alternative on Windows platform.

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

Windrecorder

🦝 Windrecorder | 捕风记录仪

An Open Source Rewind's alternative tool on Windows to help you retrieve memory cues.

一款运行在 Windows 平台上的 Rewind 替代工具,帮助你找回记忆线索

English | 简体中文


捕风记录仪 是一款通过记录屏幕上所有内容、从而实现记忆搜索的应用。它可以根据 OCR 文本、或对画面的描述进行搜索,摘要浏览活动。它的所有能力都完全运行在本地,无需联网或上传任何数据,你完全拥有所有数据。

Windrecorder

Windrecorder 目前可以做到:

  • 以较小的文件体积稳定持续地录制屏幕。只索引发生变化的画面,记录其 OCR 文本、页面标题等信息到数据库;在无人使用电脑时,自动维护数据库、清理、压缩视频;
  • 完善的 webui 界面,可以回溯画面、进行 OCR /图像语义等查询;
  • 提供活动统计、词云、时间轴、光箱、散点图等数据摘要;
  • 支持多语言。目前内建有:简体中文、English、日本語。Welcome to contribute multilingual translations and help us improve copywriting quality.
  • coming soon... 请关注我们的 PR

Windrecorder 目前局限:

  • 仅支持主屏幕的录制索引,多屏幕支持仍在开发中;
  • FFmpeg 在部分情况下可能会有较大内存占用;

Warning

该项目仍在较早期开发阶段,体验与使用上可能会遇上些小问题,欢迎提出 issue 反馈、关注更新、在 Discussions 讨论区发起讨论与查看 roadmap。也欢迎帮助我们优化与构建项目,提出 PR / review。

Important

由于代码编写小失误,0.0.5 以前版本可能无法正常检测更新、或通过 install_update.bat 进行升级。如是,请在 Windrecorder 根目录的路径框输入cmd打开命令行,输入git pull进行更新。🙇‍♀️

🦝 安装

  • 下载 ffmpeg ,将其中 bin 目录下的 ffmpeg.exeffprobe.exe 解压至 C:\Windows\System32 下(或其他位于 PATH 的目录下)

  • 安装 Git,一路下一步即可;

  • 安装 Python,安装时确保勾选 Add python.exe to PATH

    • 注意!目前暂未支持 python 3.12,推荐使用 python 3.11,即上面链接指向的版本
  • 在文件管理器中,导航到想要安装此工具目录(推荐放在空间富足的分区中),通过终端命令 git clone https://github.com/yuka-friends/Windrecorder 下载该工具;

    • 可以打开想要安装的文件夹,在路径栏输入cmd 并回车,即可在终端定位到当前目录,将以上命令贴入、回车执行;
  • 打开目录下的 install_update.bat 进行工具安装与配置,顺利的话就可以开始使用了!

🦝 如何使用

  • 打开目录下的 start_app.bat,工具会运行在系统托盘,通过右键菜单使用;
  • 所有的数据(视频、数据库、统计信息)将会存储于 Windrecorder 同目录下。如想拷贝、移动工具位置(比如更换了电脑),只需删除目录下 .venv、在移动文件夹后,重新运行 install_update.bat 安装虚拟环境即可使用;

Tip

最佳实践:在 webui 中设置开机自启动,即可无感记录下一切。

当画面没有变化、或屏幕睡眠时将自动暂停记录。当电脑空闲无人使用时,工具会自动维护数据库、压缩、清理过期视频。

Just set it and forget it!

🦝 运作原理

Windrecorder

当启动记录后,捕风记录仪将逐段录制 15 分钟的视频,在录制完毕后对视频片段进行索引(因此,数据的查询可能会有 15 分钟的延迟时间)。当屏幕没有变化、窗口标题在跳过列表、或电脑进入锁屏时,将会自动暂停录制,并进行闲时维护(压缩与清理视频、进行图像嵌入识别等),直到用户回来、继续操作电脑。

  • 图像嵌入索引以扩展形式提供,可以在目录 extension/install_img_embedding_module 下进行安装
视频录制大小 SQlite 数据库大小
每小时:2-100 Mb (取决于画面变化\显示器数量)
每个月:10-20 Gb (取决于屏幕时间) 不同的视频压缩预设,可将这些数据压缩至 0.1-0.7 倍大小 每个月:约 160 Mb

未来可能会改进录制方法,降低 ffmpeg 资源占用、让回溯不必等待。目前 ffmpeg 在录制时可能有较高的内存占用。

🦝 Q&A | 常见问题

Q: 打开 webui 时没有近期一段时间的数据。

  • A: 当工具正在索引数据时,webui 将不会创建最新的临时数据库文件。 解决方法:尝试稍等一段时间,等待工具索引完毕后,刷新 webui 界面,或删除 db 目录下后缀为 _TEMP_READ.db 的数据库文件后刷新即可(若出现数据库文件损坏提示,不必担心,可能是工具仍然在索引中,请尝试过段时间刷新/删除)。此项策略未来将会修复重构。 #26

Q: 在打开webui时提示:FileNotFoundError: [WinError 2] The system cannot find the file specified: './db\\user_2023-10_wind.db-journal'

  • A: 通常在初次访问 webui 时、工具仍正在索引数据时出现。 解决方法:在工具后台索引完毕后,删除 db 文件夹下对应后缀为 _TEMP_READ.db 的数据库文件后刷新即可。

Q: 录制过程中鼠标闪烁

  • A:Windows 历史遗留问题,可尝试该帖方法解决🤔。(其实习惯了不去在意也还好(逃

Q: Windows.Media.Ocr.Cli OCR 不可用/识别率过低

  • A1: 检查系统中是否添加了目标语言的语言包/输入法:https://learn.microsoft.com/en-us/uwp/api/windows.media.ocr

  • A2: 早期版本的默认策略会将高度大于 1500 的屏幕分辨率视为「高 DPI /高分辨率屏幕」,其录制视频分辨率将缩小至原来的四分之一。比如在 3840x2160 的 4k 显示器上,录制视频的分辨率将为 1920x1080,而这可能导致 OCR 识别准确率的下降。如果你在高分辨率屏幕上使用较小的字体或缩放,可以前往录制与视频存储中关闭此选项,且可以将原视频保留几天后进行压缩的天数设定为较小的值,从而在视频 OCR 索引后一段时间压缩视频体积。

  • A3: Windows.Media.Ocr.Cli 对较小的文本识别率可能不良,通过在设置中打开「相近字形搜索」选项可以提高搜索时的召回命中率。

🧡

引入了这些项目的帮助:


🧡 喜欢这个工具?欢迎到 Youtube 与流媒体音乐平台上听听 長瀬有花 / YUKA NAGASE 温柔的音乐,谢谢!

"Your tools suck, check out my girl Yuka Nagase, she's amazing, I code 10 times faster when listening to her." -- @jpswing


在 Product Hunt 上为 捕风记录仪 投票:

Windrecorder - search & rewind everything happened on your screen | Product Hunt