音视频

视频截取

从视频里切出一段,或者剪掉开头结尾多余的部分,不上传,也不重新编码。时间轴上会标出关键帧位置——无损复制只能从关键帧开始;这一刀必须落在两帧之间时,可以改用重编码。

  • 默认无损:直接复制数据流,不重新编码
  • 关键帧画在时间轴上,实际切点落在哪儿一目了然

把视频文件拖到这里

文件留在你的机器上,不会被上传

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

还没有选择视频

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

输出

功能简介

剪个视频不该赔上一代画质,也不该等二十分钟的编码。这个工具是围着「复制」这条路设计的,同时把复制唯一去不了的地方讲清楚。

  1. 01

    默认无损切割

    选中的片段是逐包复制出来的。不解码、不重新压缩,输出里的画面就是源文件里的那份数据。文件读进来之后,复制这一步通常几秒钟就好。

  2. 02

    时间轴上的关键帧图谱

    视频的存储方式是隔一段放一张完整帧,中间只记差异,而复制只能从完整帧开始。工具会把这些位置从文件里扫出来,画在时间轴下方,于是可选的切点是看得见的,不用猜。录像很长时,这把尺子只画其中一部分。

  3. 03

    调整是写出来的,不是偷偷做的

    流复制模式下,你选的起点原样保留在你放的位置,面板会把它和这一刀真正开始的时间——也就是它前面最近的那个关键帧——并排写出来。别的在线剪切工具会默默做同样的调整,然后给你一个比你要的长了一秒的片段。

  4. 04

    需要时可以按设定的时间切

    当这一刀必须落在某个具体时刻、而不是某个关键帧上时,重编码模式会把选段解码后重新构建,起点就落在你设定的时间上。能读到源文件帧率时,时间轴每次移动一帧。它更慢,画面也是重建出来的,所以这里把它做成一个可选项,而不是强加给所有人。

  5. 05

    切点可以直接输入

    两个输入框接受 12.5、1:23.4 和 1:02:03.4 这几种写法——从播放器或字幕稿里复制出来的时间戳通常就长这样。还在找位置就用拖的,位置已经知道了就直接填。

  6. 06

    本地处理

    FFmpeg 编译成 WebAssembly 后在标签页里运行。不上传、没有服务器强加的体积上限、不用排队、不加水印、也不用注册账号。

如何使用

四步,从一整段录像到一个剪好的片段。

  1. 01

    把视频拖到页面上,或者用文件选择器。剪切引擎从这一刻开始下载——大约 31MB,只需要下这一次——随后工具会扫描文件里的关键帧位置。

  2. 02

    定两个切点。可以拖滑块,可以直接填时间,也可以拖动预览找到位置后点「设为起点」「设为终点」。

  3. 03

    想无损就把方式保持在「流复制」。下面的面板会写明这一刀实际会落在哪儿;如果那个位置离得太远,再切到「重编码」。

  4. 04

    点「开始截取」。结果会就地播放,你要的长度和实际长度并排列出,确认无误再下载。

功能说明

这些细节决定你拿到的片段是不是你想要的那一段。

  • 无损流复制,全程不解码,不会产生二次压缩的损失
  • 关键帧位置从文件里扫出来,直接画在时间轴上
  • 流复制模式下实际起点会退到关键帧,两个时间都会显示出来
  • 这一刀必须落在两个关键帧之间时,有按设定时间下刀的重编码模式
  • 双滑块时间轴,带播放指针,选中段可以就地试播
  • 切点可按秒数、m:ss.ddd 或 h:mm:ss.ddd 输入,精度到毫秒
  • 「设为起点」「设为终点」直接采用当前播放位置
  • 音轨会一并保留,没有音轨的文件同样能处理
  • 「你要的长度」和「实际长度」并排给出
  • 流复制保持原容器,重编码输出 MP4
  • 引擎下载时显示真实字节进度,不是随便动的假进度条
  • 截取过程中可以随时取消

适合哪些场景

这些场景下,在本地做无损剪切,比传上去再剪更值得。

  1. 剪掉录像开头和结尾多余的部分

    几乎每段录屏开头都有几秒钟在找窗口,结尾都有几秒钟在找停止按钮。两头各剪一刀是最常见的编辑动作,也最不值得为它跑一遍完整编码。

  2. 从长录像里抠出一段

    两小时的会议、直播或游戏录像,通常只有一段值得发出去。写出来的只有你框选的那一段,而且一帧都不会重新编码——不过浏览器仍然要先把整份录像读进来、扫一遍关键帧,你才能开始框选。

  3. 不该上传的录屏

    内部系统的录屏里往往带着客户名、工单号或者测试环境地址。在标签页里剪完,素材就不会被交给某个你根本没读过留存条款的转换站。

  4. 满足平台的时长限制

    上传表单、广告平台和聊天软件都会限制片段时长,常见是三十秒或六十秒。剪到刚好符合要求,比跟上传校验器较劲快得多,而且流复制不会顺带把画质弄糊。

  5. 给下一道工序做准备

    先剪再转。把一小段素材交给转写服务、GIF 转换器或剪辑时间轴,比把整段录像扔过去再慢慢找,既快又省。

  6. 长素材里只留有用的部分

    行车记录仪、门铃摄像头和监控导出的文件,绝大部分时间什么都没发生。把关键的那一分钟切出来,原本大到发不出去的文件就变成能发的了,而画质完全没动过。

延伸阅读

剪好的片段通常还要送去别的地方。如果目的地是 README、缺陷单或者聊天窗口,动图往往比视频文件更通行,可以用 视频转 GIF。如果你要的是声音、画面可以不要,那就用 音频转换器。而如果一张静帧就能把事情说清楚,它比片段轻得多——压缩静图可以用 图片压缩。要是它必须保持视频格式、却大到发不出去,要解决的就是体积本身,这时候该用 视频压缩

使用建议

这些习惯能让剪出来的片段干净,也让画质停在原来的位置。

  • 先用流复制,只有当这一刀退到的那个关键帧确实早得没法接受时才换重编码——大部分剪辑并不需要这种精度
  • 起点比想要的位置稍微往前一点:反正流复制会把它退到关键帧,多留一点余量,总比把第一个字切掉强
  • 看一眼竖线的疏密:关键帧之间隔得越远,能选的切点就越少,这是录像本身的特点,工具改不了
  • 时间已经知道了就直接填,还在找那个瞬间就用拖的
  • 先剪再转——后面每一道工序拿到的是三十秒而不是两小时,快出来的时间相当可观
  • 下载前核对一下「实际长度」和「你要的长度」,有意外的话就体现在这一行
  • 长素材或高分辨率素材尽量在台式机浏览器上切,手机分给标签页的内存要少得多

边界与注意事项

这个工具刻意不做什么,以及它在哪里会吃力。

  • 它不改分辨率,也不做压缩。流复制原样保留源数据;重编码用的是接近无损的参数重建画面,而不是奔着某个体积去压。
  • 它只切一段连续的区间。把中间挖掉再把两头接上,或者把几段拼在一起,是另一件事,这里不做。
  • 无损复制只能从关键帧开始。如果录像本身把关键帧放得很稀,能选的起点也就跟着变少。
  • 重编码模式输出 MP4、视频用 H.264,所以 WebM 或 MKV 的源文件经过它之后会变成 MP4。音频本来是 AAC 或 MP3 就直接复制,否则转成 AAC。
  • 只保留第一条视频轨和第一条音频轨。字幕轨、多语言音轨和附件都会被丢掉。
  • 引擎首次使用时约 31MB。之后会走缓存,但在一个全新的浏览器配置里,第一次截取要承担这次下载。
  • WebAssembly 是 32 位的,而且源文件在读取阶段是整个压在内存里的,所以视频大到 250MB 上下就开始不可靠了。
  • 有些容器 FFmpeg 读得很顺,浏览器却播不了,比如封装 HEVC 的 MKV。这时照着时间轴和填进去的时间照样能切,缺的只是那块会动的预览。
  • 有 DRM 保护的文件读不了——任何不破解保护的工具都读不了。

常见问题

在浏览器里剪视频时常见的问题。

怎么从视频里切出一段?

把文件拖到页面上,把两个滑块拖到想保留的那一段,点「开始截取」即可。默认方式是直接复制数据流、不重新编码,所以出来的片段画质和源文件一样,通常几秒钟就好。不想拖的话,两个时间也可以直接填。

剪辑会掉画质吗?

用流复制不会。选中的数据包全程没有被解码,只是被搬进了一个新容器,所以输出里的画面数据就是源文件里的那份,不存在第二代压缩。重编码模式确实会解码并重建画面,这也正是它是第二选项而不是默认项的原因。

为什么切出来的开头比我指定的时间还早?

因为无损复制必须从关键帧开始。视频里许多画面只记录相对前面画面的变化;从别的位置开始复制,新文件开头的数据包就可能依赖没有一起带过来的画面。这个工具会把你文件里的关键帧位置读出来,把这一刀退到你指定位置之前最近的那个关键帧,并把两个时间都写给你看。如果这一刀必须落在你设定的时间上,请切换到重编码。

我的视频会被上传吗?

不会。引擎是编译成 WebAssembly 的 FFmpeg,运行在你的浏览器标签页里。文件从磁盘读进标签页内存,结果再写回成一个下载文件。整个过程没有任何文件内容经过网络——你可以在截取时打开开发者工具的网络面板自己确认。

关键帧是什么?为什么它决定了我能在哪儿下刀?

关键帧给解码器一个可以独立起步的位置。两个关键帧之间的许多画面,只记录相对前面画面发生了什么变化,视频文件能做小靠的就是这个。流复制只是把数据包原样搬进新文件,不会重建画面;要是从两帧之间开始,开头的数据包可能依赖并没有一起搬过去的画面。从关键帧开始,所需的一段数据才能完整留在新文件里。常见录像每隔一到十秒放一个关键帧,时间轴下方的竖线就是你这个文件里的实际位置。

怎么去掉视频的开头或结尾?

去掉开头,等价于「保留某个时间点之后的全部内容」:把左边的滑块拖到正片开始的位置,或者播到那儿点「设为起点」。去掉结尾就是把右边的滑块反过来做一遍。两者都是一段连续区间,而这正是无损复制最擅长的形状。

流复制和重编码,我该选哪个?

没有特别理由就选流复制:画质原样保留、几秒钟出结果、容器也不变。重编码值回票价的情况有两种——这一刀必须落在某个具体时刻上,或者退到关键帧之后会把好几秒不能出现的画面也带进来。重编码在这里是单线程跑的,所以长片段或高分辨率素材会明显慢。

剪一次要多久?

流复制基本就是写文件的时间,因为没有任何一帧被解码过——即使选段很长,通常也是秒级。重编码要把每一帧都解出来再压回去,耗时随分辨率和长度增长;一小段 720p 很快,几分钟的 4K 就得等一会儿了。

能不能把中间挖掉,再把剩下的两头接起来?

这里不行。把两段接起来要么得把两段都重编码,要么得在关键帧边界上做拼接,出问题时的表现相当难缠——一个剪切工具不该假装能顺手把它办了。这里只处理一段连续区间,覆盖的是「剪掉头尾」和「从长录像里抠一段」这两件事。

支持哪些格式?文件类型会变吗?

可读取 MP4、MOV、WebM、MKV、AVI、M4V,以及 FFmpeg 能识别的大多数格式。流复制会保持源容器,所以 MP4 出来还是 MP4,WebM 还是 WebM。重编码则一律输出 MP4,因为 H.264 视频不该被塞进 WebM 文件里。没有音轨的文件按原样处理。

更多相关工具

更多在本地、只在浏览器里处理媒体和图片的工具。