一位客户曾经要求我提供一个错误的简短屏幕录制。 捕获时间为 212 MB 四分钟,这是 60 帧每秒花费您的视网膜,他们的邮件服务器在我确定错误消息中的 25 MB 限制不是我必须击败的数字之前将其反弹了两次。 附件是 base64 编码的,因此文件到达的位置比剩余的大三分之一。 我需要在大约18 MB以下,而不是25。 录音以 6 MB、720p、没有音频的速度进行,并且看起来非常清晰,因为一个错误的屏幕录制主要是一个静态页面,光标在它的移动中移动并且压缩得很漂亮。 有用的教训不是一个环境。 就是这些工作中的每一项都是相同的三行计算,一旦你能做到,你就停止猜测。
TL;博士: 质量级别不会给您一个文件大小,因为恒定速率因子是质量目标,而生成的大小取决于素材的运动量。 要达到一个硬限制,从中向后工作:目标比特率是以字节数为单位的大小,以字节乘以 8,除以秒的持续时间,除以 1000。 然后选择正常比特率位于该数字下的分辨率。 将 1080p 降至 720p 的速度比任何质量滑块都节省更多,并且删除您不需要的音频比人们预期的节省更多。 那个 视频压缩器 在 Toolz.dev 上,通过编译为 WebAssembly 的 WebAssembly 的 ffmpeg 运行编码,在开始之前显示估计值,并且从不上传文件。
为什么质量设置永远不会向您保证尺寸?
因为压缩视频的两种最常见的方法回答不同的问题,而产生更好结果的一种是无法提前告诉您大小的一种。
目标比特率 模式说:每秒使用 2 兆比特,无论需要什么。 然后,大小是算术的,完全可以预测,质量会剧烈波动。 一张静止的标题卡和一张手持的雨水都得到了 2 Mbps,所以标题卡浪费了大部分,雨水看起来像湿砾石。
恒定速率因子 模式说:保持这种品质,花掉需要的任何部分。 简单的帧得到很少的位,硬帧得到很多,即使从头到尾,画面也保持直观。 大小是什么。
每个现代编码器都推荐第二种,用于任何未实时流式传输的内容,这是压缩器使用的。 成本是按下按钮之前页面上的数字是一个估计值,源自该分辨率和质量的典型比特率,并且真实数字随镜头移动。 静态屏幕记录通常以估计值的一半落地。 移动水的手持镜头可以降落在它上面。 五彩纸屑、雪、风和相机颗粒中的叶子是四点超过任何估计的东西,因为它们都接近随机噪声,而噪音是压缩无法做任何事情的一件事。
选择一个关卡时,CRF 会选择什么?
8 位 H.264 的比例为 0 到 51,其中 0 是无损的,51 是不可观看的,并且 FFMPEG H.264 编码指南 将默认值设置为 23,而 SANE 工作范围约为 17 至 28。 值得记住的属性是比例是对数的:6 的变化大约是一半或两倍于比特率。 这个事实告诉你每个级别在尝试之前做了什么。
压缩机提供三个而不是滑块,因为 CRF 26 和 27 之间的差异是不可见的,而 23 和 33 之间的差异是整个点。
| 水平 | H.264 CRF | VP9 CRF | 音频 | 它是为了什么 |
|---|---|---|---|---|
| 光 | 23绔 涔诲芥澶澧 | 31 | 160 kbps | 存档副本和素材将再次编辑。 足够接近无损。 |
| 平衡 | 28绔 涔诲芥澶澧 | 36 | 128 kbps | 普通的回答。 大约是光的比特率的一半,在笔记本电脑屏幕上,您必须寻找差异。 |
| 坚强 | 33绔 涔诲芥澶澧 | 42绔 涔诲芥澶澧 | 96 kbps | 达到一个硬极限。 人工制品开始显示在详细的镜头上,没有人介意聊天上传。 |
VP9 数字是一个单独的比例,这就是它们看起来不相关的原因。 光电平31正是谷歌的 VP9 对视频点播的编码推荐 列出 1080p 的目标质量,该表的其余部分值得收藏:720p 为 32,480p 为 34,4k 为 15。
哪个节省更多空间、更低质量或更少像素?
较少的像素,宽裕,而且不接近。
分辨率是二维量。 从 1080p 到 720p 并不是三分之一,它是 207 万像素,降至 92 万像素,因此编码器在做出单一质量决定之前要描述的像素少 56%。 文件大致如下。 从 4K 到 1080p 删除了其中的四分之三。
这是一分钟的剪辑按源高度和水平,使用工具估计的典型比特率。 包括音频。
| 来源 | 光 | 平衡 | 坚强 |
|---|---|---|---|
| 4K (2160p) | 106 兆 | 61 兆 | 35 兆 |
| 1080P | 35 兆 | 20兆字节 | 11 兆 |
| 720P | 20兆字节 | 12 兆 | 7 兆 |
| 480P | 10 兆 | 6 兆 | 4 兆 |
跨读它。 向下移动一级质量列可节省约 43%。 向下移动一步分辨率列也节省了大约 42%,这看起来像是平手,直到您注意到质量步骤在三分之一后耗尽并花费您可见的伪影,而分辨率步骤在屏幕上的任何成本都不会在大多数人会观看的情况下花费任何费用。 显示在宽松消息中的 1080p 剪辑显示在大约 400 像素宽的盒子中。
然后尝试的顺序:将分辨率降低到观众实际使用的任何内容,保持质量平衡,只有在您还没有完成的情况下才会达到强大的水平。
您如何在 8 MB 之类的硬限制下着陆?
倒退。 整个计算是一行,是唯一值得学习的视频算法。
# total bitrate (kbps) = target size (bytes) x 8 / duration (s) / 1000
#
# 8 MB, 45-second clip:
# 8,000,000 x 8 / 45 / 1000 = 1,422 kbps total
# minus 96 kbps of audio = 1,326 kbps for video
#
# 1080p strong is ~1,400 kbps video -> about 8.4 MB. Just over.
# 720p strong is ~800 kbps video -> about 5.0 MB. Comfortable.
#
# the equivalent single pass, if you have ffmpeg installed:
ffmpeg -i input.mp4 -c:v libx264 -crf 33 -preset fast \
-vf scale=-2:720 -c:a aac -b:a 96k \
-movflags +faststart -pix_fmt yuv420p output.mp4
三件事使这在实践中可靠。
- 留下头部空间。 以 80% 的限制为目标。 CRF 没有达到大小目标,它一次超调是您发送文件的时间。
- 如果通过电子邮件发送编码开销,请计算它。 base64 表示每 24 位输入 4 个字符,按 2045,所以附件在电线上膨胀了三分之一。 25 MB 邮箱限制约为 18 MB 的实际文件。
- 不要相信你记得的数字。 截至2026年8月,Discord的免费上传限额为8 MB,然后为25 MB,然后为10 MB,然后为20 MB。 Gmail 的规模已在 25 MB 的时间内。 WhatsApp 会重新压缩您发送的任何内容。 检查你需要的日期的限制,然后做算术。
如果剪辑比您想要显示的内容长,则更好的方法是将其剪切而不是挤压它。 将持续时间减半将尺寸减半,这是没有任何设置可以与之匹配的。 那个 视频修剪器 当切割在关键帧附近落地时,将在不重新编码的情况下将范围取出,结果是大小一半的字节相同的素材。
降低帧速率有帮助吗?
比你想象的要少,而且它看起来比列表中的任何其他东西都要糟糕。
原因是连续帧已经相互压缩。 视频编解码器存储一整帧,然后描述差异,因此60 fps剪辑中的第31帧几乎是免费的,因为它几乎与第30帧相同。 扔掉它并不会保存您想象的保存的位。 以典型的速率,节省的比免费的更接近线性,因此 60 fps 到 30 fps 可能会起飞三分之一而不是一半,30 fps 到 15 fps 让您在任何相机移动中都能看到明显的抖动。
有两种情况是正确的呼叫。 大多数静态内容的屏幕录制在 15 fps 时不会损失任何清晰的内容,而这正是您通常最努力地达到限制的情况。 和你正在转换为页面动画的素材,观众并没有看到它,而是在观看运动,而是在12到15fps的情况下保持不变。
对于所有有人或相机的东西都在其中移动,请不要使用帧速率并降低分辨率。
音频应该存活吗?
询问音频是干什么用的,因为它不是免费的。
10 分钟的音频录制速度为 128 kbps,在图像获得一点点之前,可携带 9.6 MB 的声音。 如果该音频是带有房间嗡嗡声的无声屏幕捕获,或者您将要替换的音乐,或者您已经转录的语音轨道,删除它是最简单的节省,并且它不会花费观众任何费用。 压缩机有一个开关,它通过 -an 并完全省略音频流。
当声音很重要时,电平从 160 下降到 128 到 96 kbps,这是传统的点。 96 kbps AAC 足以用于语音和音乐上的声音薄。 如果您希望单独的音频作为转录或编辑的文件, 音频提取器 不触摸视频就拉出轨道, 音频转换器 将根据自己的条件重新编码。
一个细节吸引人们。 没有音轨的视频在大多数播放器中静默播放,并且无法在一些期望轨道静音的旧移动浏览器中自动播放。 如果剪辑进入网页,静音 8 kbps 的轨道有时比没有安全,尽管今天发货的每个浏览器都能正确处理仅视频的 MP4。
WebM 值得额外等待吗?
这完全取决于谁打开文件。
WebM 容器中的 VP9 以可比的可见质量降落大约比 H.264 小四分之一。 这是一个真正的收获,在你自己的网站上,唯一的要求是浏览器可以播放它,WebM通常是更好的文件。 Chrome、Firefox 和 Edge 支持 VP9 十年,Safari 自第 14 版以来一直支持 VP9。
费用出现两次。 VP9 编码比 X264 慢,在浏览器中基本上是这样,一个细节会使任何人工运行命令的人跳闸:VP9 仅在比特率明确为零时才尊重质量目标。 关 -crf 36 单独使用和编码器悄悄地使用默认比特率并忽略您。 它需要 -crf 36 -b:v 0,这是工具发送的内容。
第二个成本是不是浏览器的一切。 聊天应用程序、CMS 上传字段、视频编辑器、PowerPoint、文件管理器中的预览窗格、您的客户的手机:其中许多接受 MP4 和 Brug 的 WebM 如果文件要发送给某个人,请使用 H.264 发送 MP4。 如果它进入你控制的页面,WebM.同样的分割贯穿整个格式问题, 雷蒙斯指南 从转换侧覆盖。
为什么压缩的 MP4 有时会拒绝开始播放?
因为索引的结尾,它是你永远不应该离开的一面旗帜。
MP4 保存一个描述每个帧开始位置的目录。 写入正常的编码器会在文件的末尾发现所有这些内容并写入表的末尾。 从磁盘播放,很好。 通过 HTTP 提供服务,这意味着播放器在拥有整个文件之前无法开始,因此聊天应用程序中的 40 MB 视频或 CMS 坐在那里无所事事,然后开始。
-movflags +faststart 第二次传递完成的文件并将该表移动到前面。 编码需要更长的时间,视频在一秒后开始播放。 压缩机产生的每个 MP4 都有它。
该命令中的另外两个标志是兼容性而不是大小。 -pix_fmt yuv420p 强制 4:2:0 色度子采样,因为 4:2:2 或 4:4:4 MP4 是有效的,并且拒绝在一长串硬件解码器上播放。 并写入比例过滤器 scale=-2:720 而不是 scale=-1:720,因为 H.264 需要均匀的像素尺寸和 -2 将计算出的宽度四舍五入为偶数。 请求奇数宽度,编码失败的“宽度不能被 2”整除,而不是缩放到接近的东西。
为什么两次压缩看起来更糟?
代际损失,而且比人们预期的要陡峭,因为有损压缩不是幂等的。
第一个编码抛弃了它判断眼睛不会错过和留下自己的伪影的细节:边缘的轻微阻塞,平滑的渐变,高对比度。 第二个编码无法知道那些人工制品不是图片。 它将它们视为值得保存的内容,花一些时间来描述它们,并在顶部添加自己的内容。 同一个夹子上的三轮平衡压缩看起来比一轮强的文件更差,文件较大。
所以实用规则很短。 每次都从原件压缩,永远不要从你已经制作的副本中压缩。 如果您需要发送轻型归档版本和小版本,请从源中进行两者。 如果一个文件已经通过一个在上传时重新压缩的平台,这就是其中的大多数,请将您下载的内容视为第二代。
这是统治的相同的算术 图像压缩 而JPEG保存的原因反复变成泥浆,同样的原因 PDF压缩机 适用于文档中的图像,而不是整个文档。
文件是否离开您的机器?
不,以及更改该工具可用的视频。
编码贯穿 编译为 WebAssembly 的 ffmpeg,在浏览器选项卡中执行。 文件从您的磁盘读取到页面内存中,在那里编码,并作为下载返回。 打开 DevTools,切换到网络面板,压缩一些东西,然后观看:没有请求携带视频。
三种后果随之而来。
没有上传,因此没有保留任何内容。 没有副本位于等待保留策略删除的服务器上,因为没有进行副本。 对于未发布的产品演示、NDA 下的素材或任何与其中不同意第三方上传的人的内容,这就是可用和不之间的区别。
限制是浏览器,而不是计划。 整个文件进入标签内存,因此页面最多接受 500 MB 的容量,并在 30 分钟内一次通过,它会在您选择文件而不是在 4 兆字节引擎下载和 2 分钟的编码之后检查两者。 没有队列,没有水印,没有帐户,也没有要购买的大小层。
第一次运行较慢。 ffmpeg WebAssembly 捆绑包下载一次,需要几秒钟,然后缓存。 该工具将其加载到第一次压缩而不是页面打开时,因此页面本身保持快速。
桌面编码器什么时候是正确的工具?
当上面的数字不再是约束时。 浏览器选项卡是一个合理的编码器和一个糟糕的视频管道,值得清楚这条线的落在哪里。
为超过 500 MB 的文件或超过半小时的剪辑本地化,其中 tab 内存是真正的限制。 一批的原生,因为通过一个外壳的循环中的40个剪辑通过任何界面跳过40次跳闸。 当您需要两遍编码以达到精确大小时,请转到本地,单个 CRF 传递无法保证。 并在硬件编码原生,GPU将在20秒内完成WebAssembly 4分钟的工作。
对于一个需要在接下来的五分钟内达到限制的剪辑,在笔记本电脑上,无需安装任何东西或将镜头交给陌生人,浏览器就是更快的路径。 那是工作 压缩机 是为,旁边 转换器 用于更改格式和 图像压缩机 对于同一问题,一维。



