音视频

视频抽帧

从视频里取出一帧存成图片:给片子挑一张封面,或者按固定间隔批量抽帧。FFmpeg 在浏览器里按指定时刻定位并解码,图像按源分辨率保存;每张结果都会显示实际落到的时间。

  • 按指定时刻定位,并显示实际落到的帧时间
  • 在标签页内按源分辨率解码,文件不上传

把视频文件拖到这里

文件留在你的电脑上,不会被上传

可读取 MP4、MOV、WebM、MKV、AVI、M4V,以及 FFmpeg 认识的大多数其他格式。

还没有选择视频

先选一个视频文件。抽帧引擎要等你选完文件才会开始下载。

截帧

功能简介

从视频里取一张图看着简单,做砸也很容易。这个工具关心的是:你存下来的这张图,实际落在哪个时间点。

  1. 01

    指定时间和实际落点都看得见

    每一张都会从指定位置单独定位并解码。视频帧不一定恰好落在任意一个毫秒上,所以工具会取该位置及其之后的第一张可用帧,并标出它真正的时间。你能据此判断是否就是要的画面,而不是只看一个四舍五入后的输入值。

  2. 02

    出图按源分辨率,不是按屏幕上的尺寸

    浏览器里常见的做法是把 video 元素定位好再画进 canvas,拿到的是播放器解出来的画面、以及元素当时恰好多大就多大。这里的一帧由 FFmpeg 直接从文件解出来,4K 的素材就给你 4K 的图,除非你主动要更小的。

  3. 03

    单张也行,扫一整段也行

    可以只取一帧做封面,可以在一段范围内每隔几秒取一张,也可以让它在范围里均匀取固定张数。均匀模式取的是每个等分区间的中点,这样第一张不会落在多数录像开头那一片黑屏上。

  4. 04

    每张图来自几秒几毫秒,都写出来

    每一张都标着它真正携带的时间戳;单张抽取时,如果落点那一帧比你设的时刻稍晚,界面会明说这件事。不会有任何东西被悄悄四舍五入掉。

  5. 05

    PNG、JPEG 或 WebP,宽度自己定

    PNG 是无损的,解码出来的那一帧原样存下来;JPEG 和 WebP 则用一点画质换来小得多的体积。要做缩略图可以指定输出宽度,设得比源还宽会被忽略而不是硬放大。

  6. 06

    全程在本地处理

    FFmpeg 被编译成 WebAssembly,直接跑在标签页里。文件不上传,没有服务端的体积上限,不排队,不打水印,也不用注册账号。

如何使用

四步,从一段录像到一叠静帧。

  1. 01

    把视频拖到页面上,或者用文件选择器打开。这时抽帧引擎开始下载,大约 31MB,只需要一次;随后工具会读出分辨率、帧率和时长。

  2. 02

    选好抽哪些帧:单张、每隔几秒一张,或者在一段范围里均匀取固定张数。单帧模式下左右箭头会按帧间隔移动,时间也可以直接输入。

  3. 03

    定好格式;如果要的是缩略图而不是原尺寸大图,再设一个输出宽度。PNG 是无损的,JPEG 和 WebP 体积要小得多。

  4. 04

    点抽帧。结果出现在右侧,每张都标着来自哪个时间点,可以单张保存,也可以打包成 ZIP 一起下载。

功能说明

决定你存下来的到底是不是那一帧的那些细节。

  • 按指定时刻定位,单张结果会标出实际落到的帧时间
  • 支持单张、固定张数,以及在选定范围内每隔 N 秒取一张
  • 均匀模式取每个等分区间的中点,避开开头那一片黑屏
  • 读得到源帧率时,单帧模式下箭头按帧间隔移动
  • 时间可以按秒、m:ss.ddd 或 h:mm:ss.ddd 输入
  • 每张图的真实源时间戳都会显示出来,并写进文件名
  • 输出 PNG、JPEG 或 WebP,两种有损格式带质量调节
  • 可选输出宽度用于做缩略图,且不会把图放大到超过源尺寸
  • 按源分辨率解码,而不是按预览播放器的显示尺寸
  • 可以单张保存,也可以打包成 ZIP 一次拿走
  • 引擎下载时显示真实字节进度,不是一条假动画
  • 批量抽取中途可以停止,已经抽出来的会保留

适合哪些场景

这些场合下,本地抽一帧真图比截个屏管用。

  1. 给视频挑一张封面

    上传页、动态、商品页都要一张封面图。在这里一帧一帧挪到没人眨眼的那一格只要几秒,而且拿到的是原分辨率的画面,不是播放器的截屏。

  2. 把录屏改写成文档

    一段操作录屏想变成图文教程,最费事的就是配图。在你当时讲解的每个节点各抽一张,丢进文档再标注,整件事会快很多。

  3. 分镜表和缩略图墙

    在范围内均匀取固定张数,一屏就能看清一段片子的走向。想快速摸清一段陌生录像里有什么,这比从头拖到尾快得多。

  4. 给缺陷报告配帧

    录下来的异常,只有能指到发生的那一刻才有用。把出问题前后两帧抽出来贴上去,比丢一段没人会去拖的视频说明得多。

  5. 不该上传的素材

    访谈素材、医疗影像、内部系统的录屏,都带着不该交给转换网站的东西。在标签页里抽帧,录像始终留在它本来就在的这台机器上。

  6. 做参考图和图像集

    色彩参考、姿态参考,或者从素材里攒一批训练用图,起手都是按固定间隔往外抽帧。放在本地做,既不用等上传,也没有素材总量的限制。

延伸阅读

抽帧往往只是整件事里的一步。一段长录像只有其中一截有用时,先把它裁出来,扫描要读的东西就少得多,这件事交给 视频截取。如果那一刻靠一张静帧说不清、需要动起来,动图更合适,可以用 视频转 GIF。而图抽出来之后,把一批图统一改成同一个宽度又是另一件事,那要用 图片尺寸调整

使用建议

一次就取到对的那一帧的几个习惯。

  • 先用播放器把位置大致找到,再用左右箭头微调;最后看结果旁的实际时间,确认落点
  • 后面还要裁剪、标注、取色的用 PNG;直接进缩略图墙的用 JPEG 或 WebP
  • 大批量之前先把输出宽度定下来,别等抽完再说,4K 素材的原尺寸静帧在一个标签页里堆得很快
  • 面对陌生录像,先均匀抽十来张,比从头拖到尾快,也更容易看出该盯哪一段
  • 单张抽取后看一眼标出来的时间;如果落点比你想要的晚了,那行字会直接告诉你
  • 很长的素材先裁一段再扫,免得为了取其中一分钟而把整个文件读进内存
  • 长视频或高分辨率素材尽量在桌面浏览器上抽,手机给标签页的内存要少得多

边界与注意事项

这个工具刻意不做的事,以及它会吃力的地方。

  • 它只负责抽静帧,不会把这些帧拼成 GIF 或动图,也不做视频剪辑和导出。
  • 它不替你挑帧。没有场景检测,也没有所谓的最佳帧打分,选哪一刻是你的事,所以逐帧挪动和整段扫描都做得很快。
  • PNG 是无损的,但它没法撤销视频原本就有的压缩。你抽出来的每一帧,都已经带着录制时那次编码留下的痕迹。
  • 单次最多 200 张,因为每一张在你下载之前都占着内存。要扫更长的范围就得分几次跑。
  • 解码任何一帧之前都要先把整个视频读进内存,所以哪怕只取一张,两小时的文件也要整份加载。
  • 引擎首次使用约 31MB。之后会走缓存,但在一个全新的浏览器配置里,第一次抽帧要承担这次下载。
  • WebAssembly 是 32 位的,读取期间源文件整份留在内存里,所以超过大约四分之一 GB 的视频会开始不可靠。
  • 有些 FFmpeg 读得好好的容器,比如装着 HEVC 的 MKV,浏览器预览放不出来。抽帧照常可用,靠时间轴和手输时间定位,只是少了会动的预览。

常见问题

在浏览器里从视频抽图时常遇到的问题。

怎么从视频里取出某一帧?

把文件拖到页面上,用滑块或者左右箭头挪到想要的时刻,点抽帧就行。会返回一张按源分辨率解码出来的图,可以存成 PNG、JPEG 或 WebP。文件不会上传,整个过程都在标签页里完成。

抽出来的图是我设定那个时间点的帧吗?

工具会从指定位置开始定位和解码,保存该位置及其之后的第一张可用帧,并把实际时间标出来。视频帧并不一定刚好落在每一个毫秒上,所以结果可能落在相邻的一帧;如果比你设定的时间稍晚,界面会直接显示,方便你往前或往后微调。

这比直接对着视频截屏好在哪?

截屏截的是播放器,不是文件。你拿到的是视频当时被显示成多大就多大,中间还叠着浏览器做的缩放和色彩处理,画面上可能还压着播放控件。这里的一帧直接从文件解出来,4K 的录像就给你一张 4K 的图,上面什么都没盖。

怎么每秒抽一帧?

切到按间隔的模式,把间隔设成 1。工具会在选定范围内逐步推进,每一步取一张,并标出各自的时间戳。单次上限是 200 张,所以很长的录像更适合分段抽,或者把间隔调大一点。

格式该选哪个?

后面还要编辑、裁剪或取色的选 PNG,它是无损的,解码出来的那一帧原样存下来。只是做缩略图或预览图的选 JPEG 或 WebP,在视频原有压缩之上再叠一层有损压缩,换来小得多的体积是划算的。同等档位下 WebP 比 JPEG 再小一点,当前主流浏览器都能读。

我的视频会被上传吗?

不会。引擎是编译成 WebAssembly 的 FFmpeg,跑在你的浏览器标签页里。文件从磁盘读进标签页内存,抽出来的图再作为下载写回去。整个过程没有任何数据经过网络,抽帧时打开网络面板就能自己确认。

一次最多能抽多少张,要花多久?

单次上限 200 张。每张都要单独定位和解码,耗时会受编码方式、分辨率、视频长度和设备性能影响。文件越大,先读入内存的等待越明显;高分辨率或长视频也更适合先缩小范围或输出宽度。

能按帧号取帧吗?

不能直接按帧号,输入和结果都以时间为准。读取到源帧率时,滑块和箭头会按一个帧间隔移动,方便在附近微调;变帧率视频尤其应该看每张图旁的实际时间。

为什么抽出来的图和预览里看到的不太一样?

预览是浏览器自己在解码和显示这段视频,被缩进一个小播放器里,还带着它自己的色彩处理。而那张图是 FFmpeg 另外按源分辨率解出来的。预览的职责是帮你找位置,不是充当最终成品。

它能自动挑出最适合当封面的一帧吗?

不能,这是有意不做的。自动场景检测挑的是与前后差异大的帧,这和挑一张好封面并不是一回事,而且要做到还得把整段视频完整解码一遍。均匀抽十来张再自己挑,只要几秒钟,拿到的也是你真正想要的那一帧。

更多相关工具

更多在浏览器本地处理视频与图片的工具。