CompressO 是一款免费、开源且完全离线的桌面视频与图片压缩工具,定位为在本地完成压缩、裁剪、转换与字幕嵌入的一体化应用,无需将文件上传至任何第三方服务。
用途 CompressO 面向需要对视频和图片进行体积压缩与基础处理的桌面用户。它可以在不依赖云端转码服务的前提下,于本机完成常见媒体处理任务,适合注重隐私、网络受限或希望避免上传文件的场景。
主要能力
- 批量压缩:可同时处理多个视频与图片文件。
- 视频裁剪:支持裁剪视频的起始与结束位置,或将视频分割为多段。
- 格式转换:通过 FFmpeg 管线在常见视频与图片格式之间转换。
- 元数据管理:在压缩过程中更新标题、作者、日期等元数据。
- 字幕嵌入:支持将 SRT/ASS 字幕嵌入视频文件。
- 高级配置:可对视频编解码器、码率及音频参数进行细粒度设置。
- 完全离线:不进行网络调用,所有处理均在本地完成。
- 跨平台:借助 Tauri 支持 Linux、macOS 与 Windows。
技术栈 桌面外壳使用 Tauri(Rust);前端使用 React + Vite;视频压缩依赖 FFmpeg;PNG 压缩使用 pngquant;JPEG 压缩使用 jpegoptim;GIF 压缩使用 gifski。
安装方式
- Claude Code 插件:claude plugin marketplace add codeforreal1/compressO
- Homebrew(macOS):brew install --cask codeforreal1/tap/compresso
- 安装包:从 github.com/codeforreal1/compressO/releases 下载,包括 Debian/Ubuntu 的 CompressO_amd64.deb、通用 Linux 的 CompressO_amd64.AppImage、Apple Silicon 的 CompressO_aarch64.dmg、Intel Mac 的 CompressO_x64.dmg、Windows 64 位的 CompressO_x64.msi。
- 技能(任意平台):npx skills add https://github.com/akillness/jeo-skills --skill compresso
从源码构建 前置条件为 Rust 工具链 + Node.js + pnpm。步骤: git clone https://github.com/codeforreal1/compressO.git cd compressO pnpm install 开发模式:pnpm tauri:dev(完整 Tauri + React),pnpm vite:dev(仅前端)。生产构建:pnpm tauri:build,输出位于 src-tauri/target/release/bundle/。
使用示例 macOS 安装:brew install --cask codeforreal1/tap/compresso Linux 安装(AppImage):chmod +x CompressO_amd64.AppImage && ./CompressO_amd64.AppImage 从源码构建(全平台):git clone https://github.com/codeforreal1/compressO.git && cd compressO && pnpm install && pnpm tauri:build
适用场景
- 在不将视频上传第三方服务的情况下压缩单个或批量视频。
- 减小图片体积(PNG 使用 pngquant、JPEG 使用 jpegoptim、GIF 使用 gifski)。
- 无需完整视频编辑器即可裁剪或分割视频内容。
- 通过 FFmpeg 管线进行视频/图片格式转换。
- 在本地将字幕嵌入视频文件。
- 在压缩过程中管理文件元数据。
限制与不适用场景
- 需要云端转码或 CDN 分发时,应改用托管视频服务。
- 需要在 CI/CD 中进行程序化 FFmpeg 脚本处理时,应直接调用 ffmpeg CLI。
- 需要高级 NLE 编辑(多轨、调色)时,应改用完整视频编辑器。
- 需要进行流媒体打包(HLS、DASH)时,应改用专用打包工具。
操作规则
- 面向终端用户机器时优先使用预构建安装包;仅在用户需要自定义 Tauri/Rust 配置时才从源码构建。
- 在基于 CLI 的压缩工作流中,需先确认系统 PATH 中已有 FFmpeg、pngquant、jpegoptim 和 gifski。
- 处理 3 个及以上文件时使用批量模式,以避免逐文件启动开销。
- 字幕嵌入应通过 CompressO 内置流程完成,而非直接使用 ffmpeg -vf subtitles=…,以保证输出命名一致。
- 从源码构建前,先查看 releases 页面获取最新的 DMG/MSI/AppImage。
许可证 项目源码位于 codeforreal1/compressO,采用 AGPL-3.0 许可证。