# 视频裁剪 在线裁画面

把片子切到只剩要紧的那块。

> 把 MP4、MOV 或 WebM 裁成任意形状，方图、9:16 竖屏，或者精确到像素的一个框。在浏览器里跑，不上传，声音留着，断网也能用。

这是一个浏览器交互工具，地址是 https://abox.tools/zh/crop-video/。文件在运行该浏览器的设备上处理。主动分享和可选联网功能都在页面上说明。下文是它的文字说明；使用工具请打开该地址。

## 你的视频**在浏览器里处理**，无须上传处理。

每一帧的解码、裁剪、编码，都是你自己的浏览器用你自己的硬件做的。这里没有任何东西能取数据或者发数据，这个工具压根没有联网功能。就算真有，这个页面的另一头也没有服务器能接住一段视频。

- ✗ 不上传
- ✗ 不注册
- ✗ 没有水印
- ✓ 声音留着
- ✓ 断网能用

## 视频画面怎么裁

1. **选一段视频。** 把 MP4、MOV、M4V 或者 WebM 拖到下面的方框里，或者点开自己挑。浏览器直接从你的硬盘上读，这期间没有东西发出去。
2. **拉个框，框住你要留下的那块。** 在框里拖是移动，拖四角是缩放。也可以先锁定形状，方图发帖用 1:1，手机上看用 9:16，宽幅用 16:9，或者在下面四个输入框里填一个精确到像素的框。播放片子，或拖下面的滑块，挑一帧来对齐这个框。
3. **决定画质花多少。** 画面必须重新编码，因为裁过的一帧已经是另一张图了。“均衡”大致维持原文件在这块区域上原本花的码率，“最好画质”花得更多。声音默认留着，你也可以关掉。
4. **裁完就下载。** 活在你自己的硬件上干，所以快慢取决于你这台机器，不取决于排队。裁好的视频直接交给浏览器的下载。

## 说得更细的版本

[怎么把视频画面裁成另一个形状](https://abox.tools/zh/guides/crop-a-video/): 把片子裁成方图、9:16 竖屏，或者精确到像素的一个框。各家平台要哪个比例，为什么剪时长不用重编而裁画面非重编不可，以及这一下的代价。

## 工具箱里还有

- [视频倒放](https://abox.tools/zh/reverse-video/): 最后一帧排在最前，连声音一起。
- [延时视频](https://abox.tools/zh/timelapse-video/): 一小时的素材，二十秒看完。
- [视频截帧](https://abox.tools/zh/grab-frame/): 任意位置，一张原画质静帧。
- [GIF 转 MP4](https://abox.tools/zh/gif-to-mp4/): 每一帧都带着 GIF 给它的延时，变成 MP4 里的 H.264。在你的机器上转，文件从不上传。

## 常见问题

### 我的视频会传到什么地方去吗？

不会。读取、解码、裁剪、编码，全由你自己的浏览器在你自己的硬件上完成。这个工具没有服务器那一半，页面的 `Content-Security-Policy` 把它可能联的地址全列了出来，没有一个是本站的。与其听我们说，不如拔掉网线，照裁一段试试。

### 能裁哪些格式？

MP4、M4V 和 MOV 直接读，里面装的是 H.264、HEVC、AV1 还是 VP9 都行，只要你的浏览器解得了那个编码。其他浏览器能播的格式，最典型的是 WebM，改成一边播一边录来裁，能用，但片子多长就得花多长时间。浏览器既读不了也播不了的文件，实际上就是 AVI、WMV、FLV 和大多数 MKV，会被直接拒收并说明原因，不会干到一半才崩。

### 视频的大小和长度有限制吗？

工具里没设上限，文件也不是一口气读进内存的，而是一次几兆地走过去。真正的天花板是成品，它要在内存里拼好你才能下载，再就是你这台机器编码要花多久。

### 声音会保住吗？

走 MP4 这条路是分毫不差的：音频逐个采样复制过去，全程不解码，跟原文件里的字节一模一样。走录制那条路，声音是从播放里采下来再编一遍的，会掉一点质量。两条路都有个勾选框，可以干脆不要声音。

### 裁剪会掉画质吗？

画面要重新编码，因为裁过的一帧已经是另一张图，不把像素重写一遍就存不下来。工具不肯做的是在同一块区域上花得比原来还多，超过那个数只会让文件变大，看着并不会更好。

### 能顺便剪时长吗？

这里不行，隔壁可以。这个工具只改画面的形状，别的都不动，出来的片子跟进去的一样长，时间轴和声音原封不动。剪时长是另一件活，也是另一个工具，[视频剪切](https://abox.tools/zh/trim-video/)把片子里值得留的段落标出来，存成一个文件，而且一帧都不重编。

### 宽和高为什么只能按 2 跳？

MP4 里的 H.264 把画面按块存，根本没办法描述一条边是奇数像素的帧。与其等你设完再悄悄替你取整，不如这个框从一开始就只给偶数。

### 免费吗？要注册吗？

免费，没有账号，不用登录，没有试用期，也没有水印。本站带广告，经费就是这么来的，广告拿不到关于你视频的任何信息。

## 这条隐私承诺怎么核实

- **处理在这个浏览器里完成。** 本工具在浏览器里处理输入和结果，处理代码不把它们上传去处理。Content-Security-Policy 限制可用资源和连接目的地，但已允许的主机仍可接收请求。策略不检查载荷，不能单独证明什么都没有发出。请把具体操作的请求与源码核对，或断网完成该本地操作。
- **这里没有任何东西会去联网取数据。** 这个工具完全没有联网功能。没有网址可以粘，没有东西要下载，第一次用也不去取什么引擎。碰过你视频的每一个字节，都是页面加载时从本站来的。
- **解码和编码都在本地。** 画面帧走的是你自己浏览器里的 WebCodecs，或者走那个本来就负责放这段片子的播放引擎。成品在这台机器的内存里拼好，直接交给下载。
- **声音只是搬过去，没人听。** 走 MP4 这条路时，音频采样整块搬过去，根本不解码。这里没有任何东西会把它们还原成声音，就算还原了，也没地方可送。
- **Google 加载了什么，又拿不到什么。** 广告脚本和统计脚本来自 Google。关于你视频的信息，一条都没给它们，文件不给，画面帧不给，文件名、大小、时长、你裁成什么形状，也都不给。读文件、解码、裁剪、编码的每一行代码都从本站发出，也都摆在仓库里。
- **捐助按钮加载了什么，又拿不到什么。** 页头那个“Buy me a coffee”按钮，由 cdnjs.buymeacoffee.com 的脚本画出来，字体取自 Google Fonts。它就是个链接，仅此而已，不上报访问，也拿不到关于你或者你视频的任何东西。
- **断网照样能用。** 断开网络，这个页面上的一切照常工作。这是最省事的一条证明。

**你可以自己核对。**上面这些不用你信。这个页面是仓库里的模板和配置生成出来的，构建脚本你能读，也能自己跑一遍，跑出来的结果就提交在 `dist` 分支上。拿实际发给你的内容，跟你自己从源码构建出来的结果对一遍就知道了： https://github.com/A-Box-of-Tools/website

最值得先读的几个文件：`config/site.toml` 里是 Content-Security-Policy，`src/shared/mp4-reader.js` 里是在 MP4 里找出帧的那个读取器，`src/transcode.js` 里是解码、裁剪、编码的那个循环。两个都没有引入任何能发请求的东西。
