博客

如何从视频中截取一帧静帧

发布于 · 视频, 截帧, 截图, 缩略图

如何从视频中截取一帧静帧

为缩略图、报错或文档截一张干净的画面:精确暂停、只框播放器区域,以及什么时候用命令行截帧更合适。

从视频里截一帧,做缩略图、写文档、报告问题或放进幻灯片都用得上。InSnap 没有专门的「导出帧」命令,但暂停的播放器加截图工具能覆盖大多数情况,剩下的一行命令就能搞定。

先停在想要的那一帧

第一步是找到那一帧;在有时间轴的编辑器里找,比在只有细进度条的播放器里容易。

  • 在 InSnap 的视频编辑器里,拖动时间轴上的播放头。预览会逐帧更新,你能停在准确的那一刻。
  • 在播放器里,如果它支持,用方向键一帧一帧地走;或者暂停后用进度条微调。

画面定住后别再让它播放。对正在播放的视频截图,抓到的是屏幕冻结那一刻正在显示的那帧,可能比你选的那帧晚一格。

框出视频区域

  1. 在 Mac 上按 Command-1,在 Windows 上按 Ctrl+1。
  2. 在视频周围拖出选区,避开播放控件、标题栏和周围的页面。
  3. 看一眼尺寸标签:它显示选区的像素尺寸,也就是静帧会包含的内容。
  4. 复制、保存或贴图。

视频有黑边时,直接在选区里裁掉黑边,别事后再来一遍。这一帧要用在文档里的话,在图片编辑页加个背景和统一的圆角,让它和其它插图一致。

在视频编辑器里找一帧 · 1280 × 800

屏幕截图不够用时

屏幕截图受显示器限制:在 Retina 屏上截 1080p 视频,抓到的是屏幕像素,而不是视频的原生分辨率,播放器的缩放还可能让它变软。做缩略图或放进文档通常够用。要像素级准确,就从文件本身抽帧。

装了 FFmpeg 的话,一条命令就行:

ffmpeg -ss 00:00:12 -i recording.mp4 -frames:v 1 frame.png
  • -ss 是你要的那一帧的时间戳;放在 -i 前面能让定位更快。
  • -frames:v 1 只写出一帧。
  • 要无损输出用 .png;要更小的文件用 .jpg 加 -q:v 2。

这样读的是源视频的原生分辨率,做缩略图或印刷插图都该这么做。

收拾一下这张静帧

原始的一帧往往和截图一样需要处理:

  • 裁剪到主体;播放器界面不属于要讲的内容。
  • 标注这一刻:用箭头指向相关控件,或者在这一帧属于一组序列时加个序号。
  • 打码任何私密内容,再让这一帧离开你的电脑。
  • 贴图,如果你写关于这段视频的内容时需要把它当参考放在旁边。
修剪录像

快速检查清单

检查原因
这一帧就是你选的那帧吗?晚暂停一帧,表情和光标就变了
播放控件排除了吗?它们会给静帧打上时间印记,也分散注意力
分辨率够吗?屏幕截图受显示器限制
比例干净吗?裁掉黑边,而不是加上黑边
有没有私密内容露出来?画面里的东西往往不止主体

常见问题

InSnap 能直接从视频导出某一帧吗?

没有专门的「导出帧」命令。在编辑器或播放器里暂停,用截图工具框住那块区域;需要原生分辨率时用 FFmpeg。

为什么截下来的画面比视频本身糊?

截图受显示器限制:4K 视频放在小窗口里播放,截到的就是屏幕像素。需要源分辨率就用 FFmpeg 抽帧。

截下来的帧能标注吗?

能。截图会在熟悉的覆盖层里打开,所有标注工具都在,复制或保存前可以加箭头、文字、序号或模糊。

下一张截图,只需一个快捷键。

macOS 14.4+(Apple 芯片和 Intel)· Windows 10+(64 位)