macOS 13+ SwiftUI · FinderSync AVFoundation 原生 App · ffmpeg

在 Finder 里右键视频
一键提取尾帧

一个轻量的原生 macOS 工具:右键视频即可生成尾帧 JPG,还能顺手提取音频 MP3、移除固定位置水印。免 Xcode 的 Quick Action 版本开箱即用。

无需打开任何软件 · 输出就在视频所在目录 · 不覆盖已有文件

提取视频尾帧 尾帧.jpg
Features

三件小事,全在右键菜单里

不打开软件、不记命令,定位到视频 → 右键 → 选菜单,结果就出现在同一目录。

🖼️

提取尾帧 JPG

右键视频即可在所在目录生成 JPG 尾帧。文件已存在时自动命名为 _2,不会覆盖。

  • 默认输出 视频名_尾帧.jpg
  • 支持 MP4 / MOV / M4V 等常见格式
Quick Action & App 双版本
🎵

提取音频为 MP3

把视频里的音轨单独抽出来,输出 视频名_音频.mp3,方便做素材或离线收听。

  • 右键「快速操作 → 提取视频音频」
  • 已有同名文件不会被覆盖
Quick Action 版

移除固定水印

弹出的原生预览窗口可播放、拖动进度,并在画面上拖框选择水印,确认后输出去水印视频。

  • 输出 视频名_去水印.mp4
  • 基于 FFmpeg delogo,适合位置不变的小水印
交互式 · 重新编码
How it works

四步,从视频到图片

1

定位视频

在 Finder 中找到任意受支持的视频文件。

2

右键唤出菜单

点击「快速操作」或 Finder 扩展菜单。

3

选择功能

尾帧 / 音频 / 去水印,点一下即可。

4

同目录出结果

生成的文件出现在视频所在文件夹,不覆盖原有文件。

Install

两种安装方式

推荐免 Xcode 的 Quick Action 版本,用 ffmpeg 实现,安装最省事。若想要带扩展管理面板的原生 App,则走完整 Xcode 版本。

0

先确认已安装 ffmpeg

Quick Action 版本依赖系统中的 ffmpeg。未安装可一键装好:

# 用 Homebrew 安装(如已安装可跳过)
brew install ffmpeg复制
1

安装「提取视频尾帧」

在终端进入项目目录,运行安装脚本,菜单会出现在 Finder 右键的「快速操作」中。

./install-quick-action.sh复制

安装后右键视频 → 选择「快速操作 → 提取视频尾帧」。

2

(可选)提取音频 / 移除水印

同样方式安装另外两个动作:

./install-audio-quick-action.sh复制
./install-watermark-quick-action.sh复制

对应菜单:「快速操作 → 提取视频音频」「快速操作 → 移除视频水印」。

3

卸载

不再需要时,运行对应的卸载脚本即可:

./uninstall-quick-action.sh复制
./uninstall-audio-quick-action.sh复制
💡 去水印功能使用 FFmpeg delogo,适合位置不变的小面积水印,不适合移动水印;处理过程会重新编码,耗时取决于视频长度和分辨率。
1

安装完整 Xcode

仅安装 Command Line Tools 不足以构建 App Extension,需要完整的 Xcode。

2

构建

终端进入本目录运行构建脚本,或用 Xcode 打开工程后运行 Scheme:

./build.sh复制

或打开 ExtractLastFrame.xcodeproj → 运行 ExtractLastFrame Scheme。

3

安装并打开 App

将生成的「提取视频尾帧.app」拖入 /Applications,并打开一次以完成注册。

4

启用 Finder 扩展

点击 App 内的「打开扩展管理并启用」,在「登录项与扩展 → Finder 扩展」中启用「提取视频尾帧」。

5

开始使用

在 Finder 中右键 MP4 / MOV / M4V 等视频,点击「提取视频尾帧」即可。

# 若启用后菜单没有立即出现,重载 Finder:
killall Finder复制
📦 输出默认 视频名_尾帧.jpg;若文件已存在,会生成 视频名_尾帧_2.jpg,不会覆盖已有图片。
Supported formats

支持的常见格式

菜单覆盖下列格式;实际能否解码取决于当前 macOS 的 AVFoundation 能力。MP4 / MOV / M4V 支持最稳定。

MP4最稳定
MOV最稳定
M4V最稳定
AVI
MKV
WebM
MPG
MPEG
TS
MTS
M2TS

🧩 技术栈

macOS 13.0+ SwiftUI FinderSync AVFoundation FFmpeg
  • Bundle ID:com.local.ExtractLastFrame
  • 发布或自签时,请在 Xcode 的 Signing & Capabilities 修改 Team 与 Bundle Identifier。

⚠️ 注意事项

  • Quick Action 版本要求系统已存在 ffmpeg,否则请先 brew install ffmpeg
  • 本地 Finder 扩展使用「文件路径临时例外」entitlement,适合本机安装,不适合直接提交 Mac App Store
  • 解码能力由当前 macOS 的 AVFoundation 决定,老格式(如部分 AVI / MKV)可能受限于系统编解码。
FAQ

常见问题

菜单安装后没出现怎么办?

Quick Action 版请确认脚本已成功运行;App 版启用扩展后若未立即出现,可在终端执行 killall Finder 让 Finder 重新加载扩展。

会覆盖我原来的视频或图片吗?

不会。尾帧已存在时自动加 _2 后缀;去水印输出为独立的 _去水印.mp4,原视频始终保持不动。

去水印功能能处理动态水印吗?

不适合。它基于 FFmpeg delogo,针对位置固定、面积较小的水印;移动水印或大面积遮挡效果有限。

必须用 Xcode 吗?

不是。推荐走免 Xcode 的 Quick Action 版本,只需 ffmpeg 即可。只有想要原生 App + 扩展管理面板时才需要 Xcode 构建。