# thinkrec **Repository Path**: ThinkCsly/thinkrec ## Basic Information - **Project Name**: thinkrec - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-30 - **Last Updated**: 2026-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 思录 ThinkRec 一个面向 Windows 的教程录屏软件,基于 Electron 44 + React 19 + TypeScript + Vite 7,录制后经 FFmpeg 输出标准 MP4。 > 📖 **完整使用教程**见 [docs/USAGE_GUIDE.md](docs/USAGE_GUIDE.md)(录屏、批注、截图贴屏、摄像头悬浮、GIF/变速/裁切/压缩等)。软件内也可随时查看:标题栏 **📖 使用教程** 按钮或菜单 **视图 → 使用教程**。 MVP 已实现: - 选择显示器或应用窗口作为捕获来源(带缩略图),实时预览 - 摄像头实时预览与画中画(显示/隐藏、镜像、三档尺寸、画面上拖动,位置按百分比适配任意分辨率) - 麦克风设备选择;系统声音捕获(Windows loopback,可用性以实际输出试听为准) - 画面比例(跟随来源/16:9/16:10/4:3/1:1/9:16/自定义)× 输出分辨率(原始/1080p/720p/自定义)× 帧率(30/60 FPS) - 完整显示(Contain)/ 裁剪填满(Cover)两种等比适配,禁止拉伸;编码前宽高自动取偶数 - 开始 / 暂停 / 继续 / 停止录制;每 2 秒分片经 IPC 顺序写入临时 WebM,不在渲染进程内存累积 - 全局快捷键 **F8 暂停 / F9 继续 / F10 结束保存**(软件不在前台也可按);录制时弹出置顶**悬浮控制窗**(计时 + 暂停/继续/结束) - 结束录制时弹出“另存为”选择保存位置(取消则回退默认目录自动命名,绝不丢录像) - 六种捕获形式:整个屏幕 / 不含任务栏 / 矩形区域 / 固定大小区域 / 窗口 / 重复上次区域 - 应用菜单与界面全中文;应用名称**思录 / ThinkRec**,内置程序化生成的应用图标 - FFmpeg 转码 H.264 + AAC MP4;FFmpeg 缺失或失败时自动把 WebM 移入保存目录,绝不丢录像 - 设置自动记忆;状态栏、错误提示与文件日志(logs/app.log) ## 环境要求 - Windows + Node.js LTS(开发使用 v24)+ pnpm - **FFmpeg 不是必须的**:没有它照样录制完整可播放的 WebM(会自动移入保存目录并提示);有则自动转 MP4 - FFmpeg 查找优先级:界面手动指定的路径 > 应用内置(打包后 `resources/ffmpeg`,开发态 `vendor/ffmpeg`)> 系统 PATH ### 分发给朋友(内置 FFmpeg,对方零安装) 1. 把 `ffmpeg.exe`(单个文件,官网 gyan.dev 的 essential/full build 均可)放入 `vendor\ffmpeg\` 2. `pnpm dist` 打包,electron-builder 会把它一并装进 portable exe 3. 对方拿到 exe 双击即用,无需安装任何东西 注意:gyan.dev 完整版为 GPL 协议,自用/私人分享无实际障碍;若将来公开商业分发,需遵守 GPL(提供对应源码)或改用 LGPL 构建。 ## 录制手机画面(配合 scrcpy,可选) 本软件只能录制**电脑上已有的画面**(屏幕/窗口/区域)。手机的画面(如轻颜相机)需先镜像到电脑,才能被录。**scrcpy 是独立工具,未集成进本软件**,不录手机就无需安装。 1. 手机开启开发者选项与 USB 调试(设置 → 关于手机 → 连点版本号 → 开发者选项 → USB 调试) 2. 下载 scrcpy(GitHub `Genymobile/scrcpy` 的 win64 zip),解压后双击 `scrcpy.exe`,手机画面会以窗口形式出现在电脑上 3. 在手机上打开轻颜相机等应用,画面会实时显示在 scrcpy 窗口里 4. 回到本软件,用「**录制窗口**」选中那个 scrcpy 窗口即可(也可录全屏) > 首次连接若提示授权,在手机上勾选“始终允许”。scrcpy 仅负责投屏,录制/转码仍由本软件完成。 ## 安装与开发 ```powershell pnpm install pnpm dev # 开发模式:Vite + Electron 热更新 ``` ## 构建与运行 ```powershell pnpm typecheck # 类型检查 pnpm test # 单元测试(画布布局等纯逻辑) pnpm build # 生产构建(dist + dist-electron) pnpm start # 以生产构建启动应用 pnpm dist # electron-builder 打包 portable exe(可选) ``` ## 使用流程 1. 顶部选择显示器或窗口卡片(画面出现在预览区即成功) 2. 选择摄像头 / 麦克风,按需开启系统声音 3. 调整比例、分辨率、帧率与适配模式(预设一键可用) 4. 选择保存目录(默认项目 `recordings/`),点击「开始录制」 5. 停止后自动调用 FFmpeg 转换,状态栏显示最终文件完整路径 ## 目录说明 - `recordings/`:默认成片输出目录(不提交 Git) - `temp/`:录制中的临时 WebM(不提交 Git) - `logs/app.log`:运行日志(不含媒体内容) ## 已知限制 - 系统声音依赖 Electron loopback 能力,必须播放声音并试听输出文件确认,不能只看界面提示 - 录制中直接强杀进程可能丢失最后一个未落盘分片(≤ 2 秒);正常关闭窗口会先停止并保留内容 - 倒计时、背景虚化、鼠标高亮等属于 V1.1+ 路线,见 [docs/DEVELOPMENT_PLAN.md](docs/DEVELOPMENT_PLAN.md)(区域录制、全局快捷键、悬浮控制窗已完成) - 本项目为自用工具,未做安装器与自动更新