compresso
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesecompresso — Offline Batch Video & Image Compression
compressO — 离线批量视频与图片压缩
Free, open-source, fully offline desktop compression powered by FFmpeg, pngquant, jpegoptim, and gifski.
CompressO由FFmpeg、pngquant、jpegoptim和gifski提供支持的免费、开源、完全离线的桌面压缩工具。
CompressOInstallation
安装方式
Plugin (Claude Code)
插件(Claude Code)
bash
claude plugin marketplace add codeforreal1/compressObash
claude plugin marketplace add codeforreal1/compressOHomebrew (macOS)
Homebrew(macOS)
bash
brew install --cask codeforreal1/tap/compressobash
brew install --cask codeforreal1/tap/compressoInstaller (all platforms)
安装包(全平台)
Download from github.com/codeforreal1/compressO/releases:
| Platform | Installer |
|---|---|
| Debian/Ubuntu | |
| Universal Linux | |
| Apple Silicon | |
| Intel Mac | |
| Windows 64-bit | |
| 平台 | 安装包 |
|---|---|
| Debian/Ubuntu | |
| 通用Linux | |
| Apple Silicon | |
| Intel Mac | |
| Windows 64位 | |
Skill (any platform)
技能(任意平台)
bash
npx skills add https://github.com/akillness/oh-my-skills --skill compressobash
npx skills add https://github.com/akillness/oh-my-skills --skill compressoWhen to use
使用场景
- Compress a single video or batch of videos without uploading to a third-party service
- Reduce image file sizes (PNG → pngquant, JPEG → jpegoptim, GIF → gifski)
- Trim or split video content without a full video editor
- Convert between video/image formats via the FFmpeg pipeline
- Embed subtitles into video files locally
- Manage file metadata (title, author, date) during compression
- 无需上传至第三方服务,压缩单个或批量视频
- 减小图片文件体积(PNG → pngquant,JPEG → jpegoptim,GIF → gifski)
- 无需完整视频编辑器,即可裁剪或分割视频内容
- 通过FFmpeg流程在视频/图片格式间转换
- 在本地为视频文件嵌入字幕
- 压缩过程中管理文件元数据(标题、作者、日期)
Do not use when
不适用场景
- You need cloud-based transcoding or CDN delivery → route to a managed video service
- You need programmatic FFmpeg scripting in CI/CD → call CLI directly
ffmpeg - You need advanced NLE editing (multi-track, color grading) → route to a full video editor
- You need streaming video packaging (HLS, DASH) → route to a dedicated packaging tool
- 需要云端转码或CDN分发 → 转向托管视频服务
- 需要在CI/CD中编写FFmpeg程序化脚本 → 直接调用命令行工具
ffmpeg - 需要专业非线性编辑(多轨道、调色) → 转向完整视频编辑器
- 需要流媒体封装(HLS、DASH) → 转向专用封装工具
Key features
核心功能
| Feature | Detail |
|---|---|
| Batch compression | Process multiple video and image files simultaneously |
| Video trimming | Trim start/end or split video into segments |
| Format conversion | Convert between common video and image formats |
| Metadata management | Update title, author, date metadata during compression |
| Subtitle embedding | Embed SRT/ASS subtitles into video files |
| Advanced config | Fine-grained video codec, bitrate, and audio settings |
| 100% offline | No network calls; all processing is local |
| Cross-platform | Linux, macOS, Windows via Tauri |
| 功能 | 详情 |
|---|---|
| 批量压缩 | 同时处理多个视频和图片文件 |
| 视频裁剪 | 裁剪起始/结束部分或分割视频为多个片段 |
| 格式转换 | 在常见视频和图片格式间转换 |
| 元数据管理 | 压缩过程中更新标题、作者、日期元数据 |
| 字幕嵌入 | 将SRT/ASS字幕嵌入视频文件 |
| 高级配置 | 精细调整视频编解码器、比特率和音频设置 |
| 100%离线 | 无网络调用;所有处理均在本地完成 |
| 跨平台 | 基于Tauri支持Linux、macOS、Windows |
Technology stack
技术栈
| Layer | Tech |
|---|---|
| Desktop shell | Tauri (Rust) |
| Frontend | React + Vite |
| Video compression | FFmpeg |
| PNG compression | pngquant |
| JPEG compression | jpegoptim |
| GIF compression | gifski |
| 层级 | 技术 |
|---|---|
| 桌面外壳 | Tauri (Rust) |
| 前端 | React + Vite |
| 视频压缩 | FFmpeg |
| PNG压缩 | pngquant |
| JPEG压缩 | jpegoptim |
| GIF压缩 | gifski |
Build from source
从源码构建
Prerequisites: Rust toolchain + Node.js + pnpm
bash
git clone https://github.com/codeforreal1/compressO.git
cd compressO
pnpm install前置要求:Rust工具链 + Node.js + pnpm
bash
git clone https://github.com/codeforreal1/compressO.git
cd compressO
pnpm installDevelopment
开发模式
pnpm tauri:dev # full Tauri + React dev mode
pnpm vite:dev # frontend only
pnpm tauri:dev # 完整Tauri + React开发模式
pnpm vite:dev # 仅前端开发模式
Production build
生产构建
pnpm tauri:build # output: src-tauri/target/release/bundle/
undefinedpnpm tauri:build # 输出目录: src-tauri/target/release/bundle/
undefinedOperating rules
操作规范
- Always prefer a pre-built installer for end-user machines; build from source only when the user needs a custom Tauri/Rust configuration
- Confirm FFmpeg, pngquant, jpegoptim, and gifski are available on the system PATH before CLI-based compression workflows
- Use batch mode for ≥ 3 files to avoid per-file startup overhead
- Route subtitle embedding through CompressO's built-in flow rather than raw for consistent output naming
ffmpeg -vf subtitles=… - Check the releases page for the latest DMG/MSI/AppImage before building from source
- 对于终端用户设备,优先使用预构建安装包;仅当用户需要自定义Tauri/Rust配置时,才从源码构建
- 在基于命令行的压缩流程开始前,确认FFmpeg、pngquant、jpegoptim和gifski已在系统PATH中可用
- 处理≥3个文件时使用批量模式,以避免逐个文件启动的开销
- 通过CompressO内置流程完成字幕嵌入,而非直接使用,以保证输出命名的一致性
ffmpeg -vf subtitles=… - 构建源码前,先查看发布页面获取最新的DMG/MSI/AppImage安装包
Examples
使用示例
bash
undefinedbash
undefinedmacOS install
macOS安装
brew install --cask codeforreal1/tap/compresso
brew install --cask codeforreal1/tap/compresso
Linux install (AppImage)
Linux安装(AppImage)
chmod +x CompressO_amd64.AppImage && ./CompressO_amd64.AppImage
chmod +x CompressO_amd64.AppImage && ./CompressO_amd64.AppImage
Build from source (all platforms)
从源码构建(全平台)
git clone https://github.com/codeforreal1/compressO.git
cd compressO && pnpm install && pnpm tauri:build
Source: [codeforreal1/compressO](https://github.com/codeforreal1/compressO) — AGPL-3.0 Licensegit clone https://github.com/codeforreal1/compressO.git
cd compressO && pnpm install && pnpm tauri:build
来源: [codeforreal1/compressO](https://github.com/codeforreal1/compressO) — AGPL-3.0 许可证