Free tools
视频抽帧怎么做:截一张清晰的画面,或把每一帧都导出来
在浏览器、VLC 或 ffmpeg 里截取视频某一帧,或按秒、按帧率批量导出 PNG/JPG。附 2026 年 11 月 5 日实测的耗时和文件大小。
文中视频样片均在 Cicadas 真实生成,并保留模型、参数和日期。用户用这些模型生成时 Cicadas 会获得收入。我们如何实测

**简短回答:**只要一张图,就定准秒数、存成 PNG;要很多张,就按“每 N 秒一帧”抽,想要每一帧就按视频原帧率抽,并存成 JPG 控制体积。我们的免费视频抽帧工具两种都能做,在浏览器里完成,不上传文件。VLC 和 ffmpeg 在本机也能做;要抽几百帧,ffmpeg 更省事。
Cicadas 是我们做的产品,下面的工具也是我们的。2026 年 11 月 5 日,我们用同一段视频分别跑了 cicadas.ai 上的工具(Mac 上的无界面 Chrome)和同一台电脑上的 ffmpeg 6.0,并记录耗时。测试视频也是我们自己的:用 Kling 3.0 Pro 生成的咖啡杯和可颂,1920×1080,24 帧/秒,5.04 秒,1.4 MB。本文顶部那张图就是它的第一帧。
三种抽帧方式,各适合什么
| 你要的是 | 设置 | 5 秒 1080p 测试视频的结果 |
|---|---|---|
| 某个时刻的一张图 | 单个时间点,2.5 秒,PNG | 1 帧,3.1 MB,0.3 秒 |
| 每秒一张,挑图用 | 每 N 秒一帧,1,PNG | 6 帧(0–5 秒),ZIP 18.2 MB,1.3 秒 |
| 同上,但文件小 | 每 N 秒一帧,1,JPG | 6 帧,ZIP 2.0 MB,1.0 秒 |
| 每一帧 | 按帧率采样,24,JPG | 121 帧,ZIP 40.7 MB,16.5 秒 |
| 每一帧,存 PNG | 按帧率采样,24,PNG | 抽到第 44 帧停止(128 MB 上限) |
导出的图片和视频本身一样大:1080p 视频得到 1920×1080 的图,手机竖屏视频得到竖屏尺寸的图。文件名带着来源视频名和时间点,比如 2.5 秒处是 coffee-steam_00-02-500.png,一整个文件夹的帧按名字排序就是时间顺序。
截取某一秒的那一帧
- 打开视频抽帧,选择视频(MP4、MOV 或 WebM,浏览器能播放即可)。
- “抽帧方式”选“单个时间点”,填上秒数,例如 2.5。
- 格式选 PNG,点“开始抽帧”,再点“下载”。
我们核对了浏览器到底给的是哪一帧。24 帧/秒的视频,2.5 秒正好是第 60 帧,ffmpeg 用 -ss 2.5 取出的也是第 60 帧。拿浏览器导出的 PNG 和 ffmpeg 导出的这一帧比,PSNR 是 38.5 dB;和前一帧、后一帧比分别只有 35.4 和 34.9 dB。也就是说是同一帧,两种解码器的色彩换算略有差异,肉眼看不出来。
不知道准确秒数时,先用任意播放器播到附近暂停,记下时间,再把这个时间和前后各 0.1 秒都抽一次。三次都是免费的,一般就能挑到。
把视频拆成一帧一帧
“每 N 秒一帧”适合挑图:每秒一张或每 0.5 秒一张,拿来找封面、做分镜、选最好的瞬间。“按帧率采样”填视频原本的帧率(24、25、30 或 60)就是逐帧导出。浏览器读不到视频的真实帧率,知道的话要自己填;手机拍的视频一般是 30 或 60。
单次最多 600 帧,图片总量最多保留 128 MB,因为下载之前所有图片都放在浏览器内存里。我们实测 1080p 每帧 PNG 约 3 MB,所以这个尺寸逐帧存 PNG,大约 40 帧就会停。换成 JPG(工具按 92% 质量保存),或缩短一次抽的时长都可以。要把一整分钟逐帧导出,用下面的 ffmpeg。
PNG 和 JPG 怎么选
PNG 保留解码出来的每一个像素:要修图、打印、抠图、放大,或拿去当 AI 视频的首帧,选 PNG。JPG 体积约为 PNG 的九分之一(这段 1080p 视频是 0.33 MB 对 3 MB),做参考图、做之后反正要压缩的封面、做素材集都够用。两种格式都不会增加细节:截出来的图最多和视频本身一样清楚。
截图发糊的四个原因
- **画面在动。**每一帧都有曝光时间,动的东西会拖影。在目标时刻前后多看几帧,选手、头发或镜头停顿的那一帧。先按每 0.5 秒抽一遍,很快就能找到停顿点。
- **视频压缩。**视频只完整保存少数几张画面(关键帧),其余帧记录的是相对它们的变化。我们这段 5 秒视频只有 1 个关键帧,另外 120 帧都是推算出来的。码率低的视频,在动作多的帧里最容易发软、出色块。
- **用的是二次压缩的副本。**从聊天软件或短视频平台另存回来的视频,往往已被平台用更低的码率重新压缩过。有原始文件就从原始文件抽。
- **截的是屏幕而不是视频。**暂停后截屏,得到的是屏幕上那一块的像素:4K 视频放在小窗口里播放,截出来就是小而发虚的图,还带着播放器按钮。抽帧工具读的是视频自己的像素。
其他办法:手机、VLC、ffmpeg
**手机上。**最通用的是暂停后截屏,但受上面说的屏幕尺寸限制。安卓上的 Google 相册在视频编辑里有“导出帧”(Export frame)功能(2026 年 11 月 5 日查阅 Google 相册帮助)。Cicadas 抽帧工具在手机浏览器里也能用,不过长视频全分辨率逐帧抽,通常超过手机浏览器标签页能用的内存。
**VLC。**暂停在目标帧,菜单“视频 → 截图”(Take Snapshot),默认存 PNG。要隔一段抽一张,可以开 VLC 的场景视频滤镜(偏好设置 → 视频 → 滤镜 → 场景滤镜),按“录制比例”每 N 帧存一张,默认 50(2026 年 11 月 5 日查阅 VideoLAN wiki)。缩放、裁剪、字幕等设置会影响截图,先关掉。
**ffmpeg。**下表是我们在测试视频上实际跑过的命令(ffmpeg 6.0):
| 命令 | 结果 |
|---|---|
ffmpeg -ss 2.5 -i in.mp4 -frames:v 1 frame.png | 第 60 帧,和浏览器取的同一帧 |
ffmpeg -i in.mp4 -vf fps=1 frame_%04d.png | 5 张 PNG,0.57 秒 |
ffmpeg -i in.mp4 frame_%04d.png | 全部 121 帧,PNG 共 367 MB,8.1 秒 |
ffmpeg -i in.mp4 -q:v 2 frame_%04d.jpg | 全部 121 帧,JPG 共 28 MB,1.5 秒 |
fps=1 得到 5 张,而我们的工具得到 6 张:ffmpeg 在每一秒的中间取样,工具从第 0 秒开始,并且包含第 5 秒那一帧。需要精确时间点,就用 -ss 逐个指定,或者用工具的间隔模式,每个文件名都写着自己的时间。
抽出来的帧,可以直接做 AI 视频
干净的单帧也是大多数 AI 视频模型想要的输入。抽出你满意的开头和结尾两帧,交给首尾帧生成视频补出中间的运动;只有一帧就用图片转视频,或者走更简单的照片动起来。这里请用全尺寸 PNG。本次测试用的咖啡视频,是怎么从一张产品图做出来的,见咖啡产品视频教程。
要先把视频里的人脸或车牌遮住再抽帧,见视频局部打码教程。
想要的是一小段动图而不是静帧,视频转 GIF同样在你的设备上把一段视频做成循环 GIF。
常见问题
怎么从视频里截取某一帧?
把视频放进抽帧工具,选“单个时间点”,填上秒数(两秒半就填 2.5),格式选 PNG 再导出。我们实测时,浏览器工具给出的正是 ffmpeg 在同一时间点给出的那一帧,1920×1080 的 PNG,用时 0.3 秒。
抽出来的帧存 PNG 还是 JPG?
要修图、打印,或拿去做 AI 视频的首帧,用 PNG;要导出大量帧,用 JPG。我们的 1080p 测试视频里,一帧 PNG 约 3 MB,一帧 JPG 约 0.33 MB,正常尺寸下肉眼看不出差别。
怎么把视频的每一帧都导出来?
按视频本身的帧率采样。我们 5 秒、24 帧/秒的测试视频共 121 帧:存 JPG 时在浏览器里打成一个 40.7 MB 的 ZIP;存 PNG 时,浏览器工具在第 44 帧停下,因为单次最多保留 128 MB 图片。长视频逐帧导出,用 ffmpeg 直接写到硬盘更合适。
为什么从视频里截出来的图是糊的?
多半是那一帧里镜头或人物正在动,或者你手上的视频是别处另存的副本、已经被二次压缩。尽量从原始文件里抽帧,并在目标时刻前后各看几帧,挑动作停顿的那一帧。
在线抽帧会上传我的视频吗?
Cicadas 不会:视频由你的浏览器解码,画面在你自己的设备上生成。实测中,页面从同一段视频里抽了 165 帧,没有发出任何上传请求。
我们怎么测的
2026 年 11 月 5 日,我们在一台 Apple 芯片的 Mac 上,用 Playwright 驱动 Chrome for Testing 1234(无界面模式)打开 cicadas.ai/video-to-frames,载入测试视频,依次跑了第一张表里的设置;计时从点击“开始抽帧”到最后一帧完成,并保存每个 ZIP。我们数了每个 ZIP 里的文件数,记录了页面发出的全部请求,没有一个带着视频。ffmpeg 用的是同一个文件、同一台电脑,帧的比对用 ffmpeg 的 PSNR 滤镜。耗时取决于你的电脑和浏览器,帧数和文件大小不会变。
2026 年 11 月 5 日查阅的页面:Google 相册帮助、VLC 场景滤镜(VideoLAN wiki)。