实战#文件管理

别再把文件交给在线转换器:HEIC、WebP、MOV 本地转换实操

把 HEIC、WebP、MOV 就地转成 JPG 和 MP4:sips 与 ffmpeg 命令本机实测,配合 convt 右键批量,文件不上传。

深蓝底色的极简插画:照片、视频、文档三张文件卡经弧线箭头汇入右侧一个打开的文件夹,右上角一个带上传箭头的云朵图标被斜线划掉(编辑部生成图)

iPhone 拍的照片是 HEIC,网页存下来的图是 WebP,相机出来的素材是 MOV——想把它们转成通用的 JPG 和 MP4,多数人的第一反应是搜一个在线转换器,然后把合同、证件照和没发布的素材先传到别人的服务器上。这篇实操文给出另一条路:在 Mac 上就地转换,文件一步都不出你的硬盘。

读完你将得到三个能直接粘进终端的命令:单张 HEIC 转 JPG、整个文件夹批量转、MOV 转 MP4。格式需求再杂一些,文末还有一个把 40 种格式装进右键菜单的常驻方案。

要点

  • macOS 自带的 sips 能直接读 HEIC 和 WebP 并转出 JPEG:单文件与批量命令各一行,本文全部命令于 2026-10-10 在 macOS(Apple Silicon)实测通过。
  • MOV 转 MP4 用 ffmpeg 一条命令完成(-c:v libx264 -crf 23 -c:a aac),2 秒测试片段实测输出正常。
  • convt 把 40 种格式的转换装进右键菜单,无直达路线时自动多跳;打包版自首次转换起 7 天试用,源码构建不受限。

交付结果与前提

跑完全部步骤后,你的文件夹里会是这个样子:photo.heic 旁边多出 photo.jpg,整目录的 HEIC 一次全转完,clip.mov 变成发微信不被二次压缩的 clip.mp4,而这一切的日志里没有一次网络请求。

前提只有两样:macOS 自带的 sips(在 /usr/bin/sips,什么都不用装)覆盖图片;ffmpeg 管视频,没有的话 brew install ffmpeg。文中第四步的 convt 是可选的常驻方案。编辑部原本把 sips 当缩图工具,实测才发现它连 HEIC 解码和 WebP 导入都直接吃——一半需求,系统自带的工具就够。

还有一个从源头减负的开关:iPhone 上把「设置 › 相机 › 格式」切到「兼容性」,之后直接拍 JPEG,连转换这步都省了。已经拍好的 HEIC 才需要下面的步骤。

HEIC 转 JPG

单张转换,输出写在当前目录:

sips -s format jpeg photo.heic --out photo.jpg

整个文件夹批量(实测两个 HEIC 一次转完):

for f in *.heic; do sips -s format jpeg "$f" --out "${f%.heic}.jpg"; done

两条命令都在本机跑通过:sips 读 1456×816 的 HEIC,输出保持原分辨率的 JPEG。想顺手缩体积,给单文件命令加 --resampleWidth 2048 即可;批量输出想换目录,把 ${f%.heic}.jpg 换成 ~/Desktop/"${f%.heic}.jpg" 这类目标路径就行。

WebP 与 MOV

网页上另存为的 WebP 同样一条命令:

sips -s format jpeg shot.webp --out shot.jpg

MOV 转 MP4 用 ffmpeg。-crf 23 是视觉无损附近的常用质量档(数字越小画质越高、文件越大),-preset medium 平衡速度与压缩率:

ffmpeg -i clip.mov -c:v libx264 -crf 23 -preset medium -c:a aac clip.mp4

编辑部用一段 2 秒的测试视频跑通,输出时长与画质正常。这三类转换的速查表:

目标命令验证方式
HEIC 转 JPG(单张)sips -s format jpeg photo.heic --out photo.jpg本机实测 2026-10-10
HEIC 转 JPG(批量)for f in *.heic; do … done本机实测 2026-10-10
WebP 转 JPGsips -s format jpeg shot.webp --out shot.jpg本机实测 2026-10-10
MOV 转 MP4ffmpeg -i clip.mov -c:v libx264 -crf 23 …本机实测 2026-10-10
40 种格式任意互转装 convt,右键选择目标格式官方格式页,由转换器生成

右键方案:convt

命令行适合一次性需求;经常在格式之间倒腾文件,值得装一个 convt(本站条目有完整介绍):Rust 编写,AGPL-3.0 开源。图片、音视频、PDF、Office 共 40 种格式走 FFmpeg、PDFium、LibreOffice 等本机引擎,右键菜单直接选目标格式,文件不上传。两种格式之间没有直达路线时,它自动规划最多三步的中转——HEIC 转 DOCX 这种组合也能到。质量、尺寸、页码都有对应参数,convt presets 和 convt --help 列出全部可调项。

brew tap opencoredev/convt https://github.com/opencoredev/convt
brew install --cask convt

授权条款值得读一眼:打包版自第一次转换起算 7 天试用,自己从源码构建则不受限;Office 格式依赖本机装有 LibreOffice。它对 AI agent 也很友好——convt --skill 直接输出一份技能文档,编码智能体读了就会查格式、跑转换。

常见翻车

  • 批量循环照抄 bash 教程会报错。for f in (*.heic) 的括号写法在 zsh 里直接抛 unknown file attribute——编辑部第一次跑批量就撞上。去掉括号,写 for f in *.heic,两种 shell 都认。
  • HEIC 转 JPG 后透明没了。JPEG 没有 alpha 通道,带透明层的图请转 PNG(sips -s format png),别疑惑”背景怎么变黑了”。
  • MOV 那条命令报 command not found: ffmpeg。说明机器上还没有 ffmpeg,先 brew install ffmpeg(首次安装要拉不少依赖,几分钟);装完再跑,报错即消失。
  • 在线转换器的隐性成本。上传本身就是要付的价:大文件排队、免费档的大小上限、导出水印都是常见门槛,而合同和证件照是否被服务器留存,取决于各家的隐私政策——这正是本地方案存在的理由。
  • convt 的两个边界:Windows 右键菜单已写好但还没进发布安装包;超大 PDF 或冷门编码在转换前先跑 convt engines 和 convt targets 文件名,确认本机引擎真的覆盖。

往前一步

把这套流程固化:常用的三条命令可以做成 finder 快捷动作或 shell 别名;格式需求一旦杂起来(HEIC、OpenEXR、DOCX、PDF 互转),直接交给 convt 的右键菜单和 convt targets 先探路。文件既然不想上传,传输环节同理——croc 和 Syncthing 把”点对点、不过服务器”补齐,本地转换加上直连传输,整条链路都不经过第三方。