Cap 录屏应用构建指南:Tauri 桌面端与 Web 端产物编译验证
【免费下载链接】CapOpen source Loom alternative. Beautiful, shareable screen recordings.项目地址: https://gitcode.com/GitHub_Trending/cap1/Cap
Cap 是开源的 Loom 替代品,核心产物是两类可验证的构建成果:Tauri v2 录屏桌面应用(Rust 媒体管线 + SolidStart 前端),以及可自托管的 Web 端(Next.js + Docker Compose 全家桶)。前者在 macOS / Windows 上完成屏幕、摄像头、麦克风录制并支持编辑导出;后者提供分享页、团队协作与对象存储接入。两者共享同一套 Rust crate 媒体管线,因此一次环境搭建可以覆盖全平台构建。
环境前置:工具链版本与原生依赖准备
Cap 是 pnpm monorepo,由 Turbo 调度。环境基线以仓库package.json的engines与rust-toolchain.toml为准:
- Node.js ≥ 20,pnpm 固定 10.5.2(
packageManager字段声明,版本漂移会导致锁文件解析异常) - Rust ≥ 1.88.0
- Docker,用于本地拉起 MySQL 与 MinIO
平台侧还有硬依赖:Windows 需要 MSVC v143(17.12 及以上)、LLVM/libclang 与 VCPKG;macOS 需要 cmake。这些是pnpm cap-setup之外的前置项,脚本不会替你安装。
获取源码并安装依赖:
git clone https://gitcode.com/GitHub_Trending/cap1/Cap cd Cap pnpm installpnpm env-setup是一个交互式 CLI(见 scripts/env-cli.js),会询问要运行哪些应用、是否用 Docker 承载 S3 与 MySQL,并据此生成根目录.env:
pnpm env-setup随后pnpm cap-setup执行 scripts/setup.js,按平台准备 Rust 编译所需的原生依赖并写入.cargo/config.toml:
- Windows:下载 FFmpeg 7.1 预编译包与 ONNX Runtime DLL,复制到
target/debug/target/release,并校验vswhere能定位到满足版本要求的 MSVC; - macOS:拉取 FFmpeg native-deps 压缩包、修剪并 codesign 框架、准备 ONNX Runtime dylib;
- Linux(交叉编译场景):按
RUST_TARGET_TRIPLE选择对应架构的 native-deps,并生成 Linux Tauri deb 打包配置。
构建与产物:本地开发栈与 Tauri 发布包两条路径
两条路径服务于不同目的,命令均在仓库根目录执行。
路径一:本地开发栈(推荐先用它跑通环境)
pnpm dev做两件事:先经 Turbo 执行docker:up拉起 MySQL/MinIO(docker-compose.yml 定义),再用turbo run dev并行启动 Web 与桌面端;退出时通过trap自动停掉容器。只想跑 Web 时用pnpm dev:web,只跑桌面端用pnpm dev:desktop。
路径二:桌面端发布包
pnpm tauri:build在 apps/desktop/package.json 中定义为串行的四步:build:sidecar编译cap-muxer、cap-exporter、cap-cli三个旁挂二进制;build:gpui构建 release 版 gpui 组件;preparescript --release做产物校验;最后tauri build使用src-tauri/tauri.prod.conf.json执行前端打包(vinxi build→.output/)与 Rust 后端编译。
产物形态由 tauri.conf.json 的bundle.targets: "all"决定:macOS 输出.app/.dmg,Windows 输出.msi/.exe安装包,bundle 内还会打包externalBin声明的三个 sidecar 二进制。workspace 的 release profile(lto = true、opt-level = "s")针对产物体积做了优化,首次构建耗时较长属正常现象。
Web 端产物
若目标是自托管,docker compose up -d直接启动 cap-web、media-server、mysql、minio 四个服务,应用落在http://localhost:3000,邮件未配置时登录链接会打印在docker compose logs cap-web的输出中。
接入与验证:三种方式确认产物可用
- 桌面端开发模式验证:
pnpm dev:desktop启动后,在 macOS 上需把屏幕录制、麦克风权限授予运行终端的那个进程(如 Terminal.app),而不是Cap - Development.app本身。录屏文件默认存放在~/Library/Application Support/so.cap.desktop.dev/recordings(macOS)或%programfiles%/so.cap.desktop.dev/recordings(Windows)。 - Web 端验证:访问
http://localhost:3000能打开首页,且用刚录制的 Cap 生成的分享链接可正常播放,说明 media-server 与 MinIO 链路已打通。 - 发布包独立验证:将 Tauri 安装包装到干净系统上安装运行,确认录屏、导出、上传全流程不依赖开发环境残留。
边界与排错:先查这些再怀疑代码
- Windows 报 MSVC 版本不足:
pnpm dev会在vswhere查不到 17.12+ 的 MSVC v143 时直接抛出安装指引。旧版本(14.42 以下)的vcruntime140_1.lib缺少 ONNX Runtime 所需的向量化符号,升级 Build Tools 后执行cargo clean -p cap-desktop再重试。 - pnpm 版本不符:
package.json声明pnpm@10.5.2,用其他版本可能出现依赖解析不一致;建议corepack enable让 Node 按声明自动取版本。 - 容器起不来:先
docker compose ps看健康检查状态,再看对应服务日志;dev的start_period给了 30–60 秒缓冲,不要过早下结论。 - Docker 之外单独跑 Web:进入
apps/web执行pnpm dev可绕过容器,但需自备 MySQL 与 S3 端点,.env里的连接串要与pnpm env-setup的选择一致。 - 平台覆盖:桌面端官方支持 macOS 与 Windows;Linux 侧
pnpm cap-setup已支持交叉编译产物打包,但完整功能未在发行版上逐台验证。
提示:Cap 的数据归属设计(自建 MinIO / S3、私有分享链接)意味着你应当只在自有实验环境部署,不要把默认密码的实例直接暴露到公网。
【免费下载链接】CapOpen source Loom alternative. Beautiful, shareable screen recordings.项目地址: https://gitcode.com/GitHub_Trending/cap1/Cap
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考