# 怎么从正好那一帧做视频封面图

封面图和截屏的差别大约是四分之一秒：眼睛睁着、球还在空中的那一帧。走到那一帧，按平台的尺寸、压在它的字节上限之下，是一条完全在浏览器里跑的三步链。

最后更新 2026年8月26日

## 简短的答案

1. **抓住那一帧。**打开[视频抽帧](https://abox.tools/zh/grab-frame/)，把视频拖进去，沿着文件自己的帧列表逐帧走到分毫不差的那个瞬间。存成 PNG：无损的副本，这样什么都还没被决定。
2. **取好景。**把 PNG 带到[图片改尺寸](https://abox.tools/zh/resize-image/)：裁成平台的形状 — YouTube 是 16:9 — 定好长边；1280 像素才是 YouTube 真正要的数字。
3. **压到上限。**最后交给[图片压缩](https://abox.tools/zh/compress-image/)，把平台的限制设成目标 — YouTube 封面图是 2 MB — JPEG 还是 WebP 让它自己挑。

这条链上没有任何一环上传任何东西——视频还没发布时这一点很要紧，而封面图之所以要做，恰恰是因为视频还没公开。

## 为什么逐帧胜过暂停

暂停播放器再截屏，输两回。暂停停在播放器停得下来的地方——最近的一处，而不是你想要的那一帧——而截屏是给播放器拍的照片：它的分辨率、它的界面、它的色彩处理，而不是文件本身的。

抽帧工具走的是文件自己的帧列表，双向都能一帧一帧走，交到你手上的是解码出的帧本身，视频的完整分辨率。在那个瞬间前后各找四分之一秒，通常就是封面图住的地方：两帧显眼画面*之间*的那一帧，动势读得出来，又没有一处糊掉。

就算最终封面图会是 JPEG 或 WebP，抓到的也先存 PNG。PNG 是那一帧的精确副本；这样一来，所有有损的决定只在最后、在字节预算之内发生一次，而不是发生两次、层层叠加。

![一段视频里时间码可见的静帧，旁边是逐帧与拖动的控件，以及它取自的精确时刻。](https://abox.tools/screens/make-a-video-thumbnail/frame.webp)

走到那一帧，而不是暂停后截屏。这两者的差别究竟在哪，上面一节说得清楚。

## 平台的算术

先裁再压，理由和[照片指南](https://abox.tools/zh/guides/get-photos-ready-for-the-web/)里的一样：像素就是预算。从 4K 帧里裁出 16:9、降到 ⁦1280×720⁩，压缩器就能把那 2 MB 花在没人需要眯起眼睛才看得清的画质上。改尺寸工具的裁剪框能锁定 16:9，所以形状是一次拖拽而不是一道算术题；文字和人脸要留在中间三分之二，因为信息流会把四角削圆，还会把时长压在右下角。

![改尺寸工具里填了宽 1280、高 720，下面是这张静帧会变成什么样的摘要。](https://abox.tools/screens/make-a-video-thumbnail/size.webp)

接下来就是算术：平台要什么，就当成两个数字填进去。

## 找不到那个瞬间时，来一张联系表

如果正确的瞬间藏在十分钟素材里的某处，抽帧工具的另一个模式每隔 N 秒存一张静帧，整批打包成 ZIP。像翻联系表一样翻这些静帧，记下最接近的那张的时间，再从那里逐帧走。这比来回搓进度条快，而且还给你留下一个候选文件夹，等哪天平台要另一种形状时用得上。

## 如果你每周都做这件事

这几步分住在三个页面上是有意为之：每个页面只做一件事，每一个都能独自证明没有任何东西离开你的电脑。但每一步都是开源的：MIT 许可证，每个工具一个文件夹，零依赖的 ES 模块，README 讲清解码器、重采样和字节目标的搜索。

如果封面图是每周的交付物，就把代码代理指向[代码仓库](https://github.com/A-Box-of-Tools/website)，让它做出单页版：逐帧走、按你的平台预设裁剪、压到它的上限，一颗按钮。这些模块就是写来被读的，把它们带走，正是许可证存在的意义。
