Media Converter

工具

常见问题

加载中

如何在不重新编码的情况下修剪、分割和合并视频

更新于

从视频中剪掉几秒钟,听起来应该是瞬间完成且无损的,有时确实如此。但有时工具会解码并重新压缩整个片段,这样耗时更长,还会损失一点画质。区别在于两种技术——流复制和重新编码——以及压缩视频是如何由关键帧构成的。

本指南会解释这两种技术,说明什么时候可以无损剪切,并坦白告诉你我们的哪些工具会复制流、哪些会重新编码。

流复制与重新编码

流复制(也称为重新封装或直通)会把已经压缩好的视频和音频数据包直接写入新文件,而不对它们进行解码。它速度非常快,因为不涉及压缩;而且它是无损的,因为数据包与原始数据逐位相同。它的局限在于你只能保留或丢弃整个数据包,无法改变编码格式、分辨率、码率或像素的方向。

重新编码会把视频解码成一帧帧画面,再重新压缩。它速度较慢,而且使用有损编码格式时,每次重新编码都会多丢弃一点细节,但它可以在任意一帧开始和结束,还可以更改视频的任何属性。

为什么无损剪切会对齐到关键帧

现代编码格式并不会把每一帧都存储为完整的画面。关键帧(I 帧)是一幅完整的图像;它之后的帧大多只存储变化的部分,并参照前面的帧。以关键帧开头的一组帧称为 GOP(图像组),在手机和相机拍摄的素材中,通常每隔一到几秒就会出现一个关键帧。

GOP 中间的帧离开它所依赖的帧就无法显示。因此,流复制剪切只能干净利落地从关键帧开始。进行无损剪切的工具要么把你的起点移到最近的关键帧上——这就是为什么剪切点可能与你要求的位置相差一两秒;要么把前面的帧也包含进来再将其隐藏,而有些播放器会无视这种隐藏。结束片段则容易得多,因为可以在任意一帧之后停止。

有些剪辑软件采用智能渲染:只重新编码剪切点与下一个关键帧之间的少数几帧,其余部分则采用流复制。这样既能精确到帧,又几乎没有画质损失,但需要让编码器设置与原始视频仔细匹配。

不重新编码的合并

只有当每个片段的编码格式、分辨率、帧率、像素格式和音频格式都相同时,才能通过流复制来拼接文件,例如用同一台相机连续录制的几个片段。只要有任何不同,比如把手机片段和录屏拼在一起,各部分就必须重新编码为统一的格式,而且工具必须决定如何处理不同的尺寸,通常是加上黑边。

我们的工具是怎么做的

以下工具都在你的浏览器中运行,因此文件不会被上传。下面介绍每个工具在其主引擎上如何处理重新编码,主引擎使用的是浏览器内置的 WebCodecs 支持。当浏览器无法以这种方式处理某个文件时,这些工具会改用 WebAssembly 版本的 ffmpeg,它会重新编码视频。

  • 视频剪切工具的“修剪”模式:当你保留的部分从视频的最开头开始,且输出格式支持源视频的编码格式时,视频和音频会采用流复制。当保留的部分从后面开始时,视频会被重新编码,这让剪切能精确到帧,而不是对齐到关键帧;音频也会被重新编码。
  • 视频剪切工具的“剪切”模式(删除中间的一段):剩下的两部分都会以相同的设置重新编码,然后在不再次重新编码的情况下拼接起来。如果删除的部分紧挨着开头或结尾,其效果就与修剪相同。
  • 视频分割工具:每个部分都作为一次单独的修剪来生成,因此第一部分可以采用流复制,之后的每个部分都会被重新编码。你可以按段数、按时长或在自定义分割点进行分割,输出为 MP4、MOV、MKV 或 WebM。
  • 合并:视频合并工具会打开视频编辑器,你可以在时间线上排列片段。导出时总会按你选择的分辨率、帧率和码率渲染出一个新视频,因此尺寸或编码格式不同的片段也可以合并。
  • 视频旋转工具:在经典旋转工具中,如果 MP4 或 MOV 的编码格式受该容器支持,旋转时不会重新编码,而是设置播放器会读取的旋转标记。翻转、输出为 MKV 或 WebM 的旋转,以及 AI 助手进行的每一次旋转,都会重新编码像素。

无法避免重新编码时如何保持画质

以合理的码率重新编码一次,几乎看不出差别。画质问题来自于反复重新编码,或者把码率压得太低。

  • 从原始文件剪切,而不是从导出文件的导出文件剪切。
  • 尽可能一次完成所有修剪,而不是先修剪、再分割、然后又修剪。
  • 保持输出分辨率与源文件相同,除非你也想要更小的文件。
  • 如果不需要换容器,就选择与源文件相同的容器;这样工具就最有可能在条件允许时直接复制流。

需要完全无损的关键帧剪切时

如果你有一段很长的录像,想砍掉开头而不动其余部分,那么完全通过流复制工作的桌面工具才是正确的选择。开源应用 LosslessCut 正是为此而生,ffmpeg 命令行也可以借助其复制选项做到,例如:ffmpeg -ss 00:01:00 -i input.mp4 -t 30 -c copy output.mp4。预计起点会对齐到你所给时间之前最近的关键帧。

对于日常片段,精确到帧比避免一次重新编码更重要,这时视频剪切工具用起来更快捷,而且无需安装。如果还想同时减小文件大小,最后再用视频压缩器处理一下即可。

本指南使用的工具

常见问题

01

修剪视频会降低画质吗?

如果工具使用流复制,就不会,因为流复制是无损的。如果工具重新编码,就会有少许损失,在合理的码率下很难看出来,换来的是精确到帧的剪切。

02

为什么我的无损剪切起点会稍微提前?

流复制剪切只能从关键帧开始,因此工具会把起点往前移到你所选位置之前最近的关键帧。

03

可以合并分辨率不同的视频吗?

可以,但它们必须重新编码为统一的格式。在视频编辑器中,导出时会以你选择的分辨率渲染每个片段。