被在线转换网站烦够了,他写了个 100% 本地跑的 CLI 转换工具
每次要转个格式,都得打开某个不知名的在线网站,把文件传上去,还得祈祷对方不会偷偷留存你的文件,拿回来的结果也未必就是你要的那个东西。这种体验做开发的大概都不陌生。HN 上一位叫 shdwfruit 的用户干脆不再折腾了,直接写了个命令行工具 convkit,把图片、视频、文档转换全部放本地做,一个字节都不往上传。
项目挂在 GitHub(github.com/shdwfruit/convkit),是一枚标准的 Show HN。用法直白:conv in.mp4 out.gif 就能把 mp4 转成 gif,而且不是简单调 ffmpeg 一把梭。作者自己举的例子挺有意思——GIF 的 256 色调色板是从视频片段里实际挑出来的,而不是用 ffmpeg 那个通用的默认调色板,所以转出来的动图色彩更贴近原片。
另一个戳中痛点的设计是 --max-size。上传文件太大是常见老毛病,这个 flag 会在分辨率、帧率和码率之间权衡着调,最后给你一个还能看、又刚好塞进大小限制的版本。conv clip.mp4 --max-size 10mb 一敲,输出的就是最接近上限但尽量好看的成品。对常要给客户、给各种后台传素材的人来说,这个省事程度是实打实的。
工具按需装依赖这点也做得克制:视频和 GIF 只用 ffmpeg,文档(LibreOffice、pandoc、Typst)和图片互转(ImageMagick)各自独立,你只装自己用得上的那部分,不会为了转一张图拖进来一整套重量级环境。
作者很坦率,项目还处在很早期的阶段(0.3.x),会有一些毛病冒出来。这不是一个宣称自己有几百种转换格式的全能工具,就是把「别把我的文件传给人」和「想转就转、别费劲」这两件事解决好、同时欢迎你提需求的小项目。HN 上这种不求大、只求实的工具反倒常能活下来。如果你也在为某类转换找不到本地方案头疼,可以去 GitHub 提个需求,顺便看看这条路有没有你已经踩过的坑被填上了。