一个 Docker 容器,替代 CloudConvert + Smallpdf + TinyPNG
一、处理一个文件,要切五六个网站
上周我需要做几件事:把一张 HEIC 照片转成 JPG,把一段 MOV 视频转成 MP4,把一份 PDF 合并,再把一段音频转成文字。
我打开了 TinyPNG(图片压缩)、CloudConvert(格式转换)、Smallpdf(PDF 操作)、Otter.ai(音频转录)——四个网站,四个账号,四个上传按钮。每个网站都问我要注册、要付费、要等排队。折腾了半个多小时,文件处理完了,但整个过程很碎片化。
更重要的是:这些文件都是工作文件,我上传到了我不完全信任的第三方服务器。
后来我发现了一个叫 SnapOtter 的项目,它把这四五个工具的功能整合到了一个 Docker 容器里,数据完全不出你的服务器。
图:SnapOtter 文件处理平台界面预览(来源:GitHub 官方仓库)
二、SnapOtter 是什么?
SnapOtter 是一个开源自托管文件处理平台,GitHub 上已有 2.4k Star。
项目地址:https://github.com/snapotter-hq/snapotter
它的定位很直接:把你常用的在线文件处理工具(CloudConvert、Smallpdf、TinyPNG、TinyWow、Otter.ai)整合到一个自托管的平台里。一条 Docker 命令启动,200 多个工具,覆盖图片、视频、音频、PDF 和通用文件五种类型。
和在线工具相比,SnapOtter 的核心优势是数据不出网。文件上传到你自己的服务器,处理完之后留在你的服务器。你不需要担心隐私泄露,不需要担心文件被第三方保留。
三、200+ 工具,五种文件类型
SnapOtter 的工具数量不是虚标的。图片 107 个、视频 57 个、音频 27 个、PDF 29 个、通用文件 23 个,加起来 243 个。
图片(107 个工具)
resize、crop、compress、convert、watermark、color adjust、generate memes、vectorize、GIF 工具、duplicate detection、passport photos。支持 55+ 输入格式,包括 23 种相机 RAW 格式,17 种输出格式。HEIC 转 JPG、WebP 转 PNG、图片转 PDF 这些最常见的转换需求都覆盖了。
视频(57 个工具)
convert、compress、trim、resize、crop、merge、video-to-GIF、extract audio、stabilize、change FPS、burn/extract subtitles。MOV 转 MP4、MKV 转 MP4、MP4 转 MP3 等常见转换都有。
音频(27 个工具)
convert、trim、normalize、volume、fade、pitch shift、silence removal、noise reduction、merge/split。M4A 转 MP3、AAC 转 MP3、OGG 转 WAV。
PDF(29 个工具)
merge、split、compress、convert、protect/unlock、redact、sign、watermark、page numbers、OCR。PDF 转 JPG/PNG/TIFF 图片导出。
通用文件(23 个工具)
CSV/JSON/XML/YAML 转换、CSV merge/split、Excel to CSV、chart maker、ZIP create/extract。
四、不只是转换:本地 AI 能力
SnapOtter 最有意思的部分是本地 AI 处理。不需要调用云端 API,所有 AI 能力都在你的硬件上跑。
支持的 AI 功能:
- 背景移除:AI 自动识别人物/物体并移除背景
- 图片超分辨率:AI 放大图片,提升清晰度
- 照片修复与上色:老照片修复、黑白照片上色
- 物体擦除:AI 识别并移除图片中不需要的元素
- 人脸模糊/增强:保护隐私或提升人脸清晰度
- OCR:从图片和 PDF 中提取文字,默认引擎约 25MB,可选更高精度包
- 音频转录:把音频转成文字,替代 Otter.ai
- 视频字幕生成:自动为视频生成字幕
- 画布扩展:AI 扩展图片边界
所有 AI 处理都在本地完成,不需要联网。NVIDIA GPU 加速可用,没有 GPU 就 fallback 到 CPU。
五、上线使用
部署
一条 Docker 命令:
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest
容器内嵌了 Postgres 17 和 Redis 8,不需要额外配置数据库。启动后浏览器打开 http://localhost:1349,默认账号 admin / admin,首次登录强制改密码。
生产环境可以用 Docker Compose 部署,分离 Postgres 和 Redis 到独立容器,配持久化存储。
三种使用方式
Web UI:浏览器打开,拖入文件,选工具,点处理。和在线工具的使用体验一样,但数据留在本地。
REST API:/api/docs 有交互式文档,可以直接调用。适合集成到自己的 workflow 里。
Pipeline:最多 20 步串联成工作流,可以保存为 JSON 导入导出。比如”下载视频 → 转 MP4 → 提取音频 → 转录文字”这个流程,保存一次,以后一键执行。
六、适合谁?
适合你,如果:
- 你经常用 CloudConvert、Smallpdf、TinyPNG 这类在线工具,但担心隐私
- 你团队需要统一的文件处理入口
- 你需要批量处理文件,不想一个个网站传
- 你有 Docker 环境,想自建服务
可能不适合你,如果:
- 你不会用 Docker——目前只提供 Docker 部署方式
- 你需要特别小众的文件格式支持——200+ 工具覆盖广但不是万能的
- 你需要极高并发——单容器方案适合中小团队,大规模场景需要自行扩展
- 你的服务器没有 GPU——AI 功能在 CPU 上会很慢
七、写在最后
SnapOtter 解决的是一个很实际的问题:文件处理工具太分散了。
图片压缩去 TinyPNG,格式转换去 CloudConvert,PDF 操作去 Smallpdf,音频转录去 Otter.ai——每个工具一个网站,每个网站一个账号,每个账号可能都要付费。SnapOtter 把这些都整合到了一个 Docker 容器里,数据不出网,不用注册一堆账号。
它不是每个功能都做到极致,但胜在”一站式”。200+ 工具覆盖了日常 90% 的文件处理需求。如果你对隐私有要求,或者需要一个团队共享的文件处理平台,SnapOtter 值得部署试试。
项目信息
- 项目名称:SnapOtter
- GitHub:https://github.com/snapotter-hq/snapotter
- 官网:https://snapotter.com
- 协议:AGPLv3 + 商业许可(双许可)
- 当前 Star:2.4k+
- 工具数量:200+(图片 107、视频 57、音频 27、PDF 29、文件 23)
- 部署方式:Docker(单容器或 Compose)
- 默认端口:1349
- 支持架构:AMD64 / ARM64
- GPU 加速:NVIDIA CUDA
- 在线 Demo:https://demo.snapotter.com
互动时间:你平时用什么工具处理文件?在线工具还是本地软件?评论区聊聊你的方案。
喜欢这款工具?关注「善忘技术夹」全媒体
扫描二维码关注微信公众号与小程序,获取更多高品质开源软件推荐与效率工具测试。