工具介绍
目标大小视频压缩工具会以恰好能落在(或略低于)指定文件大小所需的码率重新编码视频,而不是用一个笼统的"画质"滑块去产生一个不可预测的大小。当限制是由别人定下的固定值时——比如 Discord 免费版的附件上限是 8 MB,大多数邮件服务商(包括 Gmail)的附件上限是 25 MB——而不是由视频观感决定,这种区别就很重要。
这个工具会测量视频时长,为目标大小计算总码率预算,将这份预算在视频流和音频流之间分配,然后用 ffmpeg.wasm——开源 FFmpeg 编码器的 WebAssembly 版本——完全在你的浏览器标签页内重新编码。没有任何内容被上传,编码过程发生在你自己的设备上。
为什么使用它?
- 100% 本地运行:视频文件不会离开你的设备——不需要服务器上传,也不受任何主机存储配额的大小限制。
- 针对真实场景的限制而设计:8 MB(Discord 免费版)和 25 MB(Gmail/大多数邮件服务商)都是一键预设,另外还有自定义大小输入框,适配任何其他限制。
- 使用标准的"码率-来自-时长"公式,而不是凭猜测,并内置了安全余量,让实际输出很少超过你设定的目标。
- 编码过程中有实时进度条——对较长的视频,ffmpeg.wasm 的处理可能需要一段时间,进度条能让你随时确认它在正常工作,而不是卡住了。
- 压缩完成后会显示确切的输出大小,方便你在上传或添加到其他地方之前先确认是否满足限制。
使用方法
- 点击拖放区域(或直接把文件拖进去)加载你的视频——工具会先读取它的大小和时长。
- 选择一个目标:Discord 用 8 MB,邮件/Gmail 用 25 MB,或者输入以 MB 为单位的自定义大小。
- 点击"压缩视频"并观察进度条——编码在浏览器中进行,根据视频长度和设备性能,可能需要几秒到几分钟不等。
- 完成后,查看显示出来的输出大小,然后点击"下载"。
示例
输入
clip.mp4 — 42 MB,时长 0:35输出
clip-8MB.mp4 — 7.6 MB目标设为 8 MB(Discord);工具为这段 35 秒的片段计算出约 1.5 Mbps 的视频码率,加上 10% 的安全余量进行编码,最终结果稳稳落在限制以内。
目标码率是如何计算的
核心公式很简单:总码率(kbps)= 目标文件大小(千比特)÷ 时长(秒)。工具会先给字节预算加上大约 10% 的安全余量,再减去预留给音频的码率(通常是 128 kbps,对于非常小的目标会降到 96 或 64 kbps,避免音频占用过多本就紧张的预算),从而得出视频码率。这个视频码率会同时以硬性上限(`-maxrate`)和缓冲区大小(`-bufsize`)的形式传给 ffmpeg 的编码器,防止短时间的复杂运动画面让码率突破目标。
有一个单位换算的细节,对精确使用这些预设的人很重要:Discord "8 MB" 这类平台上传限制,一般指的是二进制兆字节(1 MB = 1,048,576 字节,有时也称 MiB),与存储和传输限制通常的表示方式一致。这个工具的字节预算计算刻意偏保守——目标预算采用更小、更严格的 1000 进制兆字节,并在此基础上再叠加安全余量——因此无论按哪种"MB"的理解方式,结果都能落在限制以内。
常见平台的目标大小怎么选
如果不确定该套用哪个限制,可以查看平台给出的错误提示——大多数附件大小相关的拒绝提示都会写明确切的上限,你可以直接把它输入到自定义目标里。
| 目标平台 | 常见限制 | 推荐目标 |
|---|---|---|
| Discord(免费版) | 每个附件 8 MB | 8 MB 预设 |
| Discord Nitro | 根据等级 50–100 MB | 自定义大小 |
| Gmail / 大多数邮件服务商 | 每封邮件 25 MB | 25 MB 预设 |
| Slack(免费工作区) | 1 GB(但大文件会拖慢上传速度) | 如果确实需要,可用自定义大小 |
来自我们自己的测试
我们用命令行 FFmpeg 生成了一段合成测试片段(12 秒、1280×720、带音调音频,以约 800 kbps 编码,生成一个真实大小的多兆字节源文件),然后用这个工具以 8 MB 的 Discord 预设进行了压缩。输出结果如预期落在 8 MB 以内,证明了码率计算和安全余量在真实编码中同样成立,而不只是纸面公式。
常见问题
我的视频会被上传到什么地方吗?
不会。压缩过程使用 ffmpeg.wasm——FFmpeg 的 WebAssembly 构建版本,在你的浏览器标签页内执行。视频文件只在本地读取,从不发送到服务器——只要页面和它的引擎加载过一次,你甚至可以断网继续使用。
为什么第一次压缩要等一会儿才开始?
这是因为工具需要在你本次会话中第一次运行压缩时加载 ffmpeg.wasm 引擎(大约 30 MB)。加载完成后,同一页面上后续的压缩会立即开始。
输出结果一定会小于我设定的目标大小吗?
工具预留了安全余量(实际的码率预算大约瞄准你选定大小的 90%),因为真实编码器不可能让每一帧都精确命中同一个码率。极少数情况下,如果输出仍然略微超出,可以选一个更小的自定义目标来增加余量——如果发生这种情况,工具会给出提示。
为什么 Discord 用的是 8 MB?
Discord 的免费(非 Nitro)版本把每个附件的上传上限设为 8 MB;Nitro 订阅用户根据等级不同可以获得更高的上限(50 MB 或 100 MB)。8 MB 预设瞄准的正是大多数人会遇到的免费版限制。
为什么邮件用的是 25 MB?
25 MB 是 Gmail 的附件上限,也是其他主流邮件服务商普遍采用的上限值。如果你的服务商限制不同,用自定义大小输入框即可。
压缩会损害视频画质吗?
会,而且是必然的——把文件压缩到远小于原始大小,意味着更低的码率,这会减少细节,并可能在快速运动或高细节场景中出现明显的压缩伪影。工具会自动选择视频与音频之间的码率分配方案,尽量在目标大小允许的范围内保持最高画质,但一段 42 MB 的片段硬压到 8 MB,看起来肯定会比原片明显发糊。
输出的是什么视频和音频格式?
输出始终是 MP4 容器,配 H.264 视频编码和 AAC 音频编码——这是 Discord、邮件客户端和大多数社交平台都能广泛兼容的组合。